Class Ifc4::IfcMaterialLayerSetUsage

Nested Relationships

This class is a nested type of Struct Ifc4.

Inheritance Relationships

Base Type

Class Documentation

class Ifc4::IfcMaterialLayerSetUsage : public Ifc4::IfcMaterialUsageDefinition

IfcMaterialLayerSetUsage determines the usage of IfcMaterialLayerSet in terms of its location and orientation relative to the associated element geometry. The location of material layer set shall be compatible with the building element geometry (that is, material layers shall fit inside the element geometry). The rules to ensure the compatibility depend on the type of the building element.

EXAMPLE For a cavity brick wall with shape representation SweptSolid, the IfcMaterialLayerSet.TotalThickness shall be equal to the wall thickness. Also the OffsetFromReferenceLine shall match the exact positions between the two shape representations of IfcWallStandardCase, i.e. the IfcShapeRepresentation’s with RepresentationIdentifier=”Axis” and RepresentationIdentifier=”Body”.

NOTE Refer to the implementation guide and agreements for more information on matching between building element geometry and material layer set usage.

The IfcMaterialLayerSetUsage is always assigned to an individual occurrence object only (i.e. to relevant subtypes of IfcElement). The IfcMaterialLayerSet, referenced by ForLayerSet can however be shared among several occurrence objects. If the element type is available (i.e. the relevant subtype of IfcElementType, then the IfcMaterialLayerSet can be assigned to the type object. The assignment between asubtype of IfcElement and the IfcMaterialLayerSetUsage is handled by IfcRelAssociatesMaterial.

Use definition The IfcMaterialLayerSetUsage is primarily intended to be associated with planar building elements having a constant thickness. With further agreements on the interpretation of LayerSetDirection, the usage can be extended also to other cases, e.g. to curved building elements, provided that the material layer thicknesses are constant. Generally, an element may be layered in any of its primary directions, denoted by its x, y or z axis. The geometry use definitions at eachspecific types of building element will determine the applicableLayerSetDirection.

The following examples illustrate how the IfcMaterialLayerSetUsage attributes (LayerSetDirection, DirectionSense, OffsetFromReferenceLine) can be used in different cases. The normative material use definitions are documented at each element (how these shall be used).

Figure 286 shows an example of the use of IfcMaterialLayerSetUsage aligned to the axis of a wall.

EXAMPLE For a standard wall with extruded geometric representation (vertical extrusion), the layer set direction will be perpendicular to extrusion direction, andcan be derived from the direction of the wall axis. With the DirectionSense(positive in this example) the individual IfcMaterialLayers are assigned consecutively right-to-left or left-to-right. For a curved wall, “direction denoting the wall thickness” can be derived from the direction of the wall axis, and it will remain perpendicular to the wall path. The DirectionSenseapplies as well.

NOTE According to the IfcWallStandardCase material use definition the LayerSetDirection for IfcWallStandardCase is always AXIS2 (i.e. along the y-axis), as shown in this example.

Figure 286 — Material layer set usage for wall

Figure 287 shows an example of the use of IfcMaterialLayerSetUsage aligned to a slab.

EXAMPLEFor a slab with perpendicular extruded geometric representation, the LayerSetDirection will coincide with the extrusion direction (in positive or negative sense). In this example, the material layer set base is the extruded profile and consistent with the IfcExtrudedAreaSolid.Position,with the DirectionSensebeing positive, the individual IfcMaterialLayers are built up from the base towards positive z direction in this case.

NOTE According to the IfcSlabStandardCase material use definition the LayerSetDirection for IfcSlabStandardCase is always AXIS3 (i.e. along the z-axis).

Figure 287 — Material layer set usage for slab

Figure 288 shows an example of the use of IfcMaterialLayerSetUsage aligned to a roof slab with non-perpendicular extrusion.

EXAMPLEFor a slab with non-perpendicular extruded geometric representation, the guidelines above apply as well. The material layer thickness and the OffsetFromReferenceLine is always measured perpendicularly, even if the extrusion direction is not perpendicular. Therefore the total material layer thickness is not equal to the extrusion depth of the geometry.

Figure 288 — Material layer set usage for roof slab

Public Functions

::Ifc4::IfcMaterialLayerSet *ForLayerSet() const

The IfcMaterialLayerSet set to which the usage is applied.

void setForLayerSet(::Ifc4::IfcMaterialLayerSet *v)
::Ifc4::IfcLayerSetDirectionEnum::Value LayerSetDirection() const

Orientation of the material layer set relative to element reference geometry. The meaning of the value of this attribute shall be specified in the geometry use section for each element. For extruded shape representation, direction can be given along the extrusion path (e.g. for slabs) or perpendicular to it (e.g. for walls).

NOTE the LayerSetDirection for IfcWallStandardCase shall be AXIS2 (i.e. the y-axis) and for IfcSlabStandardCase and IfcPlateStandardCase it shall be AXIS3 (i.e. the z-axis).

Whether the material layers of the set being used shall ‘grow’ into the positive or negative direction of the given axis, shall be deifned by DirectionSense attribute.

void setLayerSetDirection(::Ifc4::IfcLayerSetDirectionEnum::Value v)
::Ifc4::IfcDirectionSenseEnum::Value DirectionSense() const

Denotion whether the material layer set is oriented in positive or negative sense along the specified axis (defined by LayerSetDirection). “Positive” means that the consecutive layers (the IfcMaterialLayer instances in the list of IfcMaterialLayerSet.MaterialLayers) are placed face-by-face in the direction of the positive axis as established by LayerSetDirection: for AXIS2 it would be in +y, for AXIS3 it would be +z. “Negative” means that the layers are placed face-by-face in the direction of the negative LayerSetDirection. In both cases, starting at the material layer set base line. NOTE the material layer set base line (MlsBase) is located by OffsetFromReferenceLine, and may be on the positive or negative side of the element reference line (or plane); positive or negative for MlsBase placement does not depend on the DirectionSense attribute, but on the relevant element axis.

void setDirectionSense(::Ifc4::IfcDirectionSenseEnum::Value v)
double OffsetFromReferenceLine() const

Offset of the material layer set base line (MlsBase) from reference geometry (line or plane) of element. The offset can be positive or negative, unless restricted for a particular building element type in its use definition or by implementer agreement. A positive value means, that the MlsBase is placed on the positive side of the reference line or plane, on the axis established by LayerSetDirection (in case of AXIS2 into the direction of +y, or in case of AXIS2 into the direction of +z). A negative value means that the MlsBase is placed on the negative side, as established by LayerSetDirection (in case of AXIS2 into the direction of -y). NOTE the positive or negative sign in the offset only affects the MlsBase placement, it does not have any effect on the application of DirectionSense for orientation of the material layers; also DirectionSense does not change the MlsBase placement.

void setOffsetFromReferenceLine(double v)
bool hasReferenceExtent() const

Whether the optional attribute ReferenceExtent is defined for this IfcMaterialLayerSetUsage.

double ReferenceExtent() const

EPM-HTML> Extent of the extrusion of the elements body shape representation to which the IfcMaterialLayerSetUsage applies. It is used as the reference value for the upper OffsetValues[2] provided by the IfcMaterialLayerSetWithOffsets subtype for included material layers.

IFC2x4 CHANGE New attribute added to the end of attribute list.

NOTE 1 The attribute ReferenceExtent shall be asserted, if an IfcMaterialLayerSetWithOffsets is included in the ForLayerSet.MaterialLayers list of maerial layers.

NOTE 2 The ReferenceExtent for IfcWallStandardCase is the reference height starting at z=0 being the XY plane of the object coordinate system.

void setReferenceExtent(double v)
const IfcParse::entity &declaration() const
IfcMaterialLayerSetUsage(IfcEntityInstanceData *e)
IfcMaterialLayerSetUsage(::Ifc4::IfcMaterialLayerSet *v1_ForLayerSet, ::Ifc4::IfcLayerSetDirectionEnum::Value v2_LayerSetDirection, ::Ifc4::IfcDirectionSenseEnum::Value v3_DirectionSense, double v4_OffsetFromReferenceLine, boost::optional<double> v5_ReferenceExtent)

Public Static Functions

const IfcParse::entity &Class()