Class Ifc4x2::IfcSlab

Nested Relationships

This class is a nested type of Struct Ifc4x2.

Inheritance Relationships

Base Type

Derived Types

Class Documentation

class Ifc4x2::IfcSlab : public Ifc4x2::IfcBuildingElement

A slab is a component of the construction that normally encloses a space vertically. The slab may provide the lower support (floor) or upper construction (roof slab) in any space in a building. It shall be noted, that only the core or constructional part of this construction is considered to be a slap. The upper finish (flooring, roofing) and the lower finish (ceiling, suspended ceiling) are considered to be coverings. A special type of slab is the landing, described as a floor section to which one or more stair flights or ramp flights connect. NOTE There is a representation of slabs for structural analysis provided by a proper subtype of IfcStructuralMember being part of the IfcStructuralAnalysisModel.

NOTE An arbitrary planar element to which this semantic information is not applicable or irrelevant shall be modeled as IfcPlate. A slab may have openings, such as floor openings, or recesses. They are defined by an IfcOpeningElement attached to the slab using the inverse relationship HasOpenings pointing to IfcRelVoidsElement. The IFC specification provides three entities for slab occurrences:

IfcSlabStandardCase used for all occurrences of slabs, that are prismatic and where the thickness parameter can be fully described by the IfcMaterialLayerSetUsage. These slabs are always represented geometrically by a ‘SweptSolid’ geometry (or by a ‘Clipping’ geometry based on ‘SweptSolid’), if a 3D geometric representation is assigned. In addition they have to have a corresponding IfcMaterialLayerSetUsage assigned. IfcSlabElementedCase used for occurrences of slabs which are aggregated from subordinate elements, following specific decomposition rules expressed by the mandatory use of IfcRelAggregates relationship. IfcSlab used for all other occurrences of slabs, particularly for slabs with changing thickness, or slabs with non planar surfaces, and slabs having only ‘SweptSolid’ or ‘Brep’ geometry.

HISTORY New entity in IFC Release 2.0, it is a merger of the two previous entities IfcFloor, IfcRoofSlab, introduced in IFC Release 1.0

Type Use Definition The IfcSlab defines the occurrence of any slab, common information about slab types (or styles) is handled by IfcSlabType. The IfcSlabType (if present) may establish the commontype name, usage (or predefined) type, common set of properties, common material layer set, and common shape representations (using IfcRepresentationMap). The IfcSlabType is attached using the IfcRelDefinedByType.RelatingType objectified relationship and is accessible by the inverse IsTypedBy attribute. If no IfcSlabType is attached(i.e. if only occurrence information is given) the PredefinedType should be provided. Values of the enumeration are .FLOOR. (the default), .ROOF., .LANDING., .BASESLAB. If set to .USERDEFINED. a user defined value can be provided by the ObjectType attribute. Material Use Definition The material of the IfcSlab is defined by IfcMaterialLayerSet, or IfcMaterial and attached by the IfcRelAssociatesMaterial.RelatingMaterial. It is accessible by the inverse HasAssociations relationship. Multi-layer slabs can be represented by referring to several IfcMaterialLayer’s within the IfcMaterialLayerSet. NOTE It is illegal to assign an IfcMaterialLayerSetUsage to an IfcSlab. Only the subtype IfcSlabStandardCase supports this concept. NOTE Prismatic slabs, where the main face of the slab is extruded along the slab thickness, are exchanged as IfcSlabStandardCase, The material for IfcSlabStandardCase shall be defined byIfcMaterialLayerSetUsage. Multi-layer slabs can be represented by referring to several IfcMaterialLayer’s within the IfcMaterialLayerSet. Material information can also be given at the IfcSlabType, defining the common attribute data for all occurrences of the same type.It is then accessible by the inverse IsTypedBy relationship pointing to IfcSlabType.HasAssociations and via IfcRelAssociatesMaterial.RelatingMaterial. Property Set Use Definition: The property sets relating to the IfcSlab are defined by the IfcPropertySet and attached by the IfcRelDefinesByProperties relationship. It is accessible by the inverse IsDefinedBy relationship. The following property set definitions specific to the IfcSlab are part of this IFC release:

Pset_SlabCommon: common property set for all slab occurrences

Property sets can also be given at the IfcSlabType, defining the common property data for all occurrences of the same type.It is then accessible by the inverse IsTypedBy relationship pointing to IfcSlabType.HasPropertySets. If both are given, then the properties directly assigned to IfcSlab overrides the properties assigned to IfcSlabType. Quantity Use Definition The quantities relating to the IfcSlab and IfcSlabStandardCase are defined by the IfcElementQuantity and attached by the IfcRelDefinesByProperties relationship. It is accessible by the inverse IsDefinedBy relationship. The following base quantities are defined and should be exchanged with the IfcElementQuantity.Name = ‘BaseQuantities’. Other quantities can be defined being subjected to local standard of measurement with another string value assigned to Name and a value provided for MethodOfMeasurement. Quantities shall never be assigned to the IfcSlabType.

Qto_SlabBaseQuantities: base quantities for all slab occurrences.

Containment Use Definition The IfcSlab, as any subtype of IfcBuildingElement, may participate in two different containment relationships. The first (and in most implementation scenarios mandatory) relationship is the hierarchical spatial containment, the second (optional) relationship is the aggregation within anelement assembly.

TheIfcSlab is places within the project spatial hierarchy using the objectified relationship IfcRelContainedInSpatialStructure, referring to it by its inverse attribute SELF\IfcElement.ContainedInStructure. Subtypes ofIfcSpatialStructureElement are valid spatial containers, with IfcBuildingStorey being the default container. TheIfcSlab may be aggregated into an element assembly using the objectified relationship IfcRelAggregates, referring to it by its inverse attribute SELF\IfcObjectDefinition.Decomposes. Any subtype of IfcElement can be an element assembly, with IfcElementAssembly as a special focus subtype. In this case it should not be additionally contained in the project spatial hierarchy, i.e.SELF\IfcElement.ContainedInStructure should be NIL.

The IfcSlabmay also be an aggregate i.e. being composed by other elements and acting as an assembly using the objectified relationship IfcRelAggregates, referring to it by its inverse attribute SELF\IfcObjectDefinition.IsDecomposedBy. Components of a slab are described by instances of subtypes of IfcBuildingElement, with IfcBuildingElementPart as a special focus subtype that are aggregated to form a complex slab. In this case, the contained elements should not be additionally contained in the project spatial hierarchy, i.e. the inverse attribute SELF\IfcElement.ContainedInStructure of IfcBuildingElementPart (or other subtypes of IfcBuildingElement) should be NIL. Geometry Use Definition The geometric representation of IfcSlab is given by the IfcProductDefinitionShape, allowing multiple geometric representation. Included are: NOTE. If the IfcSlab is of type Landing and is used within an IfcStair or IfcRamp, the special agreements to handle stair and ramp geometry will also affect the geometric representation of the IfcSlab. Local Placement The local placement for IfcSlab is defined in its supertype IfcProduct. It is defined by the IfcLocalPlacement, which defines the local coordinate system that is referenced by all geometric representations.

The PlacementRelTo relationship of IfcLocalPlacement shall point (if given) to the placement of the local placement of the same IfcSpatialStructureElement that is used in the ContainedInStructure inverse attribute or to a referenced spatial structure element at a higher level. If the IfcSlab is of type Landing and is used by an IfcStair or IfcRamp, and this container class defines its own local placement, then the PlacementRelTo relationship of IfcLocalPlacement shall point (if given) to the local placement of the aggregate. If the relative placement is not used, the absolute placement is defined within the world coordinate system.

Geometric Representation Currently, the ‘Surface’, ‘FootPrint’, ‘Body’, and ‘Box’ representations are supported. The ‘Box’ representation includes the representation type ‘BoundingBox’ and is explained at IfcBuildingElement. Surface Representation The surfacic geometric representation of IfcSlab is defined using the ‘Surface’ representation.

RepresentationIdentifier : ‘Surface’ RepresentationType : ‘Surface3D’

NOTE The ‘Surface’ can be used to define a surfacic model of the building (e.g. for analytical purposes, or for reduced Level of Detail representation). Body Representation The body representation of IfcSlab can be represented using the representation types ‘SweptSolid’, ‘Clipping’, ‘SurfaceModel’, and ‘Brep’. The representation types ‘SurfaceModel’ and ‘Brep’ are explained at IfcBuildingElement. SweptSolid Representation Type The following attribute values for the IfcShapeRepresentation holding this geometric representation shall be used: If a corresponding material definition using IfcMaterialLayerSetUsage can be assigned, the subtype IfcSlabStandardCase shall be used.

RepresentationIdentifier : ‘Body’ RepresentationType : ‘SweptSolid’

The following additional constraints apply to the swept solid representation:

Solid: IfcExtrudedAreaSolid is required, Profile: IfcArbitraryClosedProfileDef, IfcRectangleProfileDef, IfcCircleProfileDef, IfcEllipseProfileDef shall be supported. Extrusion: The profile can be extruded perpendicularly or non-perpendicularly to the plane of the swept profile.

Figure 120 illustrates a ‘SweptSolid’ geometric representation. NOTE The following interpretation of dimension parameter applies for polygonal slabs (in ground floor view):

IfcArbitraryClosedProfileDef.OuterCurve: closed bounded curve interpreted as area (or foot print) of the slab.

Figure 120 — Slab body extrusion

Clipping Representation Type The following attribute values for the IfcShapeRepresentation holding this geometric representation shall be used:

RepresentationIdentifier : ‘Body’ RepresentationType : ‘Clipping’

The following constraints apply to the ‘Clipping’ representation:

Solid: see ‘SweptSolid’ shape representation, Profile:see ‘SweptSolid’ shape representation, Extrusion:see ‘SweptSolid’ shape representation, Boolean result: The IfcBooleanClippingResult shall be supported, allowing for Boolean differences between the swept solid (here IfcExtrudedAreaSolid) and one or several IfcHalfSpaceSolid.

Figure 121 illustrates a ‘Clipping’ geometric representation with definition of a roof slab using advanced geometric representation. The profile is extruded non-perpendicular and the slab body is clipped at the eave.

Figure 121 — Slab body clipping

Subclassed by Ifc4x2::IfcSlabElementedCase, Ifc4x2::IfcSlabStandardCase

Public Types

typedef IfcTemplatedEntityList<IfcSlab> list

Public Functions

bool hasPredefinedType() const

Whether the optional attribute PredefinedType is defined for this IfcSlab.

::Ifc4x2::IfcSlabTypeEnum::Value PredefinedType() const

Predefined generic type for a slab that is specified in an enumeration. There may be a property set given specifically for the predefined types. NOTE The PredefinedType shall only be used, if no type object IfcSlabType is assigned, providing its own IfcSlabType.PredefinedType.

FC2x PLATFORM CHANGE: The attribute has been changed into an OPTIONAL attribute.

void setPredefinedType(::Ifc4x2::IfcSlabTypeEnum::Value v)
const IfcParse::entity &declaration() const
IfcSlab(IfcEntityInstanceData *e)
IfcSlab(std::string v1_GlobalId, ::Ifc4x2::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, ::Ifc4x2::IfcObjectPlacement *v6_ObjectPlacement, ::Ifc4x2::IfcProductRepresentation *v7_Representation, boost::optional<std::string> v8_Tag, boost::optional<::Ifc4x2::IfcSlabTypeEnum::Value> v9_PredefinedType)

Public Static Functions

const IfcParse::entity &Class()