Class Ifc4::IfcMaterialLayer

Nested Relationships

This class is a nested type of Struct Ifc4.

Inheritance Relationships

Base Type

Derived Type

Class Documentation

class Ifc4::IfcMaterialLayer : public Ifc4::IfcMaterialDefinition

IfcMaterialLayer is a single and identifiable part of an element which is constructed of a number of layers (one or more). Each IfcMaterialLayer has a constant thickness and is located relative to the referencing IfcMaterialLayerSet along the MlsBase.

EXAMPLE A cavity wall with brick masonry used with an air gap in between would be modeled using three IfcMaterialLayer’s: [1] Brick, [2] Air gap, [3] Brick. The inner layer “Brick” would have a Name = “Brick”, an individual LayerThickness, and potentially a Category indicating it as “load bearing”, and a Priority that controls how this material layer interacts with other material layers in wall connections.

The IfcMaterialLayer may have a material layer name, that might be different to the IfcMaterial name referenced.

EXAMPLE The IfcMaterialLayer name of an insulation layer can be “Insulation”, whereas the IfcMaterial

name is “polystyrene insulating


HISTORY New entity in IFC 1.5

IFC2x4 CHANGE The attributes Name, Description, Category, Priority have been added at the end of attribute list. Data type of LayerThickness relaxed to IfcNonNegativeLengthMeasure.

Subclassed by Ifc4::IfcMaterialLayerWithOffsets

Public Types

typedef IfcTemplatedEntityList<IfcMaterialLayer> list

Public Functions

bool hasMaterial() const

Whether the optional attribute Material is defined for this IfcMaterialLayer.

::Ifc4::IfcMaterial *Material() const

Optional reference to the material from which the layer is constructed. Note that if this value is not given, it does not denote a layer with no material (an air gap), it only means that the material is not specified at that point.

void setMaterial(::Ifc4::IfcMaterial *v)
double LayerThickness() const

The thickness of the material layer. The dimension is measured along the positive MlsDirection as specified in IfcMaterialLayerSet (that is mapped to AXIS-2, as specified in IfcMaterialLayerSetUsage for element occurrences supporting IfcMaterialLayerSetUsage.

NOTE The attribute value can be 0. for material thicknesses very close to zero, such as for a membrane. Material layers with thickess 0. shall not be rendered in the geometric representation.

IFC2x4 CHANGE The attribute datatype has been changed to IfcNonNegativeLengthMeasure allowing for 0. as thickness.

void setLayerThickness(double v)
bool hasIsVentilated() const

Whether the optional attribute IsVentilated is defined for this IfcMaterialLayer.

bool IsVentilated() const

Indication of whether the material layer represents an air layer (or cavity).

set to TRUE if the material layer is an air gap and provides air exchange from the layer to the outside air. set to UNKNOWN if the material layer is an air gap and does not provide air exchange (or when this information about air exchange of the air gap is not available). set to FALSE if the material layer is a solid material layer (the default).

void setIsVentilated(bool v)
bool hasName() const

Whether the optional attribute Name is defined for this IfcMaterialLayer.

std::string Name() const

The name by which the material layer is known.

void setName(std::string v)
bool hasDescription() const

Whether the optional attribute Description is defined for this IfcMaterialLayer.

std::string Description() const

Definition of the material layer in more descriptive terms than given by attributes Name or Category.

void setDescription(std::string v)
bool hasCategory() const

Whether the optional attribute Category is defined for this IfcMaterialLayer.

std::string Category() const

Category of the material layer, e.g. the role it has in the layer set it belongs to (such as ‘load bearing’, ‘thermal insulation’ etc.).

void setCategory(std::string v)
bool hasPriority() const

Whether the optional attribute Priority is defined for this IfcMaterialLayer.

int Priority() const

The relative priority of the layer, expressed as ratio measure, normalised to 0..1. Controls how layers intersect in connections and corners of building elements: a layer from one element protrudes into (i.e. displaces) a layer from another element in a joint of these elements if the former element’s layer has higher priority than the latter. The priorty value for a material layer in an element has to be set and maintained by software applications, in relation to the material layers in connected elements. The usage has to be further specified for each element, especially to avoid simultanious use with IfcLayerOffset.

void setPriority(int v)
IfcTemplatedEntityList<IfcMaterialLayerSet>::ptr ToMaterialLayerSet() const
const IfcParse::entity &declaration() const
IfcMaterialLayer(IfcEntityInstanceData *e)
IfcMaterialLayer(::Ifc4::IfcMaterial *v1_Material, double v2_LayerThickness, boost::optional<bool> v3_IsVentilated, boost::optional<std::string> v4_Name, boost::optional<std::string> v5_Description, boost::optional<std::string> v6_Category, boost::optional<int> v7_Priority)

Public Static Functions

const IfcParse::entity &Class()