Class Ifc4x2::IfcOpeningElement

Nested Relationships

This class is a nested type of Struct Ifc4x2.

Inheritance Relationships

Base Type

Derived Type

Class Documentation

class Ifc4x2::IfcOpeningElement : public Ifc4x2::IfcFeatureElementSubtraction

The opening element stands for opening, recess or chase, all reflecting voids. It represents a void within any element that has physical manifestation. Openings can be inserted into walls, slabs, beams, columns, or other elements. The IFC specification provides two entities for opening elements:

IfcOpeningStandardCase is used for all openings that have a constant profile along a linear extrusion. They are placed relative to the voided elements and the extrusion direction is perpendicular to the plane of the element (horizontally for walls, vertically for slabs). Only a single extrusion body is allowed. It cuts through the whole thickness of the voided element, i.e. it reflects a true opening. IfcOpeningElement is used for all other occurrences of openings and in particular also for niches or recesses.

NOTE View definitions or implementer agreements may restrict the types of elements which can be voided by an IfcOpeningElement or IfcOpeningStandardCase There are two different types of opening elements:

an opening, where the thickness of the opening is greater or equal to the thickness of the element; a recess or niche, where the thickness of the recess is smaller than the thickness of the element.

The attribute PredefinedType should be used to capture the differences,

the attribute is set to OPENING for an opening or the attribute is set to RECESS for a recess or niche. If the value for PredefinedType is omitted, or the value is set to NOTDEFINED, no specific information of whether it is an opening or recess shall be assumed.

NOTE Until IFC2x3 the information had been provided by the inherited attribute ObjectType. An IfcOpeningElement has to be inserted into an IfcElement by using the IfcRelVoidsElement relationship. The relationship implies a Boolean subtraction operation between the volume of the voided element and the volume of the opening. It may be filled by an IfcDoor, IfcWindow, or another filling element by using the relationship IfcRelFillsElements. HISTORY New entity in IFC Release 1.0 IFC2x CHANGE The intermediate ABSTRACT supertypes IfcFeatureElement and IfcFeatureSubtraction have been added. IFC2x4 CHANGE The attribute PredefinedType has been added at the end of attribute list. Property Set Use Definition: The property sets relating to the IfcOpeningElement 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 IfcOpeningElement are part of this IFC release:

Pset_OpeningElementCommon: common property set for all opening occurrences

Quantity Use Definition: The quantities relating to the IfcOpeningElement 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, being subjected to local standard of measurement, can be defined with another string value assigned to Name. In this case a valid value for MethodOfMeasurement has to be provided.

Qto_OpeningElementBaseQuantities: base quantities for all opening occurrences.

Containment Use Definition The IfcOpeningElement shall not participate in the containment relationship, i.e. it is not linked directly to the spatial structure of the project. It has a mandatory VoidsElements inverse relationship pointing to the IfcElement that is contained in the spatial structure.

The inverse relationship ContainedInStructure shall be NIL.

NOTE See IfcRelVoidsElement for a diagram on how to apply spatial containment and the voiding relationship. Geometry Use Definitions The geometric representation of IfcOpeningElement is given by the IfcProductDefinitionShape and IfcLocalPlacement allowing multiple geometric representations. Local Placement The local placement for IfcOpeningElement 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 should point to the local placement of the same element, which is voided by the opening, i.e. referred to by VoidsElement.RelatingBuildingElement.

Geometric Representation Currently, the ‘Body’, and ‘Box’ representations are supported. The ‘Box’ representation includes the representation type ‘BoundingBox’ and is explained at IfcFeatureElement. Body Representation The ‘Body’ representation of IfcOpeningElement can be represented using the representation types ‘SweptSolid’, and ‘Brep’. The representation type ‘Brep’ is explained at IfcFeatureElement Swept Solid Representation Type with Horizontal Extrusion The ‘SweptSolid’ geometric representation of IfcOpeningElement, using horizontal extrusion direction (for walls), is defined using the swept area solid geometry. The following attribute values for the IfcShapeRepresentation holding this geometric representation shall be used:

RepresentationIdentifier : ‘Body’ RepresentationType : ‘SweptSolid’

The following additional constraints apply to the swept solid representation:

Solid: IfcExtrudedAreaSolid is required, the set of IfcShapeRepresentation.Items may include a single, or multiple, instances of IfcExtrudedAreaSolid. Profile: IfcRectangleProfileDef, IfcCircleProfileDef and IfcArbitraryClosedProfileDef shall be supported. Extrusion: The profile shall be extruded horizontally (i.e. perpendicular to the extrusion direction of the voided element), e.g. for wall openings, or vertically (i.e. in the extrusion direction of the voided element), e.g., for floor openings. If multiple instances of IfcExtrudedAreaSolid are used, the extrusion direction of each extrusion should be equal.

NOTE In case of non-parallel jambs, the shape representation shall be a ‘SweptSolid’ representation with vertical extrusion.

Figure 34 illustrates an opening with horizontal extrusion. NOTE The local placement directions for the IfcOpeningElement are only given as an example, other directions are valid as well.

Figure 34 — Opening with full extrusion

Figure 35 illustrates an opening for a recess. NOTE The local placement directions for the IfcOpeningElement are only given as an example, other directions are valid as well. NOTE Rectangles are now defined centric, the placement location has to be set:

IfcCartesianPoint(XDim/2,YDim/2)

Figure 35 — Opening with recess extrusion

Swept Solid Representation with Vertical Extrusion The ‘SweptSolid’ geometric representation of IfcOpeningElement, using vertical extrusion direction (for walls), is defined using the swept area solid geometry, however the extrusion direction may be vertical, i.e. in case of a wall opening, the extrusion would be in the direction of the wall height. The following attribute values for the IfcShapeRepresentation holding this geometric representation shall be used:

RepresentationIdentifier : ‘Body’ RepresentationType : ‘SweptSolid’

The following additional constraints apply to the swept solid representation:

Solid: IfcExtrudedAreaSolid is required, the set of IfcShapeRepresentation.Items may include a single, or multiple, instances of IfcExtrudedAreaSolid. Profile: IfcRectangleProfileDef, IfcCircleProfileDef and IfcArbitraryClosedProfileDef shall be supported. Extrusion: The profile shall be extruded vertically, i.e. for wall openings along the extrusion direction of the voided element. If multiple instances of IfcExtrudedAreaSolid are used, the extrusion direction should be equal.

Vertical extrusions shall be used when an opening or recess has a non rectangular foot print geometry that does not change along the height of the opening or recess. Figure 36 shows a vertical extrusion with multiple extrusion bodies for the opening. Each extrusion body has a different extrusion lenght. NOTE The local placement directions for the IfcOpeningElement are only given as an example, other directions are valid as well.

Figure 36 — Opening with multiple extrusions

Subclassed by Ifc4x2::IfcOpeningStandardCase

Public Types

typedef IfcTemplatedEntityList<IfcOpeningElement> list

Public Functions

bool hasPredefinedType() const

Whether the optional attribute PredefinedType is defined for this IfcOpeningElement.

::Ifc4x2::IfcOpeningElementTypeEnum::Value PredefinedType() const

Predefined generic type for an opening that is specified in an enumeration. There may be a property set given specificly for the predefined types.

IFC2x4 CHANGE The attribute has been added at the end of the entity definition.

void setPredefinedType(::Ifc4x2::IfcOpeningElementTypeEnum::Value v)
IfcTemplatedEntityList<IfcRelFillsElement>::ptr HasFillings() const
const IfcParse::entity &declaration() const
IfcOpeningElement(IfcEntityInstanceData *e)
IfcOpeningElement(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::IfcOpeningElementTypeEnum::Value> v9_PredefinedType)

Public Static Functions

const IfcParse::entity &Class()