Defined in File Ifc2x3.h
IfcFeatureElement: public Ifc2x3::IfcElement¶
Definition from IAI: Generalization of all existence dependent elements which modify the shape and appearance of the associated master element. The IfcFeatureElement offers the ability to handle shape modifiers as semantic objects within the IFC object model.
NOTE The term “feature” has a predefined meaning in a context of “feature-based modeling” and within steel construction work. It is introduced here in a broader sense to cover all existence dependent, but semantically described, modifiers of an element’s shape and appearance. It is envisioned that future releases enhance the feature-based capabilities of the IFC model.
In contrary to the aggregation, as used in IfcElementAssembly, that defines the aggregate as a container element, that has equally treated parts, the feature concept introduced by IfcFeatureElement defines the master element with subordinate parts as additions, or with voids or cut-outs as subtractions.
HISTORY New entity in Release IFC2x Edition 2. NOTE The entity is introduced as an upward compatible extension of the IFC2x platform. It is an intermediate abstract supertype without defining its own explicit attributes.
Containment Use Definition As a subordinate part being fully dependent on the master element the IfcFeatureElement shall have no independent containment relationship to the spatial structure.
The SELF\IfcElement.ContainedInStructure relationship shall be NIL.
Geometry Use Definition The geometric representation of IfcFeatureElement is given by the IfcProductDefinitionShape, allowing multiple geometric representation. Local Placement The local placement for IfcFeatureElement 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 local placement of the master IfcElement (its relevant subtypes), which is associated to the IfcFeatureElement by the appropriate relationship object. If the relative placement is not used, the absolute placement is defined within the world coordinate system.
Geometric Representations Any IfcFeatureElement can be represented by one or several geometric representations. A detailed specification is introduced at the level of subtypes. Only the general representation identifier ‘Box’ with representation type ‘BoundingBox’, and representation identifier ‘Body’ with representation type ‘Brep’ are defined here. Box Representation Any IfcFeatureElement may be represented as a bounding box, which shows the maximum extend of the body within the coordinated system established by the IfcLocalPlacement. The bounding box representation is the simplest geometric representation available. The following attribute values for the IfcShapeRepresentation holding this geometric representation shall be used:
RepresentationIdentifier : ‘Box’ RepresentationType : ‘BoundingBox’
Body Representation The body representation of any IfcFeatureElement can have the following representation types: ‘Brep’. Other representation types might be specified at the level of subtypes. Brep Representation Type Any IfcFeatureElement (so far no further constraints are defined at the level of its subtypes) may be represented as a single or multiple Boundary Representation elements (which are restricted to faceted Brep with or without voids). The Brep representation allows for the representation of complex element shape. The following attribute values for the IfcShapeRepresentation holding this geometric representation shall be used:
RepresentationIdentifier : ‘Body’ RepresentationType : ‘Brep’
In some cases it may be useful to also expose a simple representation as a bounding box representation of the same complex shape.
IfcFeatureElement(std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, ::Ifc2x3::IfcObjectPlacement *v6_ObjectPlacement, ::Ifc2x3::IfcProductRepresentation *v7_Representation, boost::optional<std::string> v8_Tag)¶