Class Ifc4::IfcSpatialStructureElement

Nested Relationships

This class is a nested type of Struct Ifc4.

Inheritance Relationships

Base Type

Derived Types

Class Documentation

class Ifc4::IfcSpatialStructureElement : public Ifc4::IfcSpatialElement

A spatial structure element (IfcSpatialStructureElement) is the generalization of all spatial elements that might be used to define a spatial structure. That spatial structure is often used to provide a project structure to organize a building project. A spatial project structure might define as many levels of decomposition as necessary for the building project. Elements within the spatial project structure are:

site as IfcSite building as IfcBuilding storey as IfcBuildingStorey space as IfcSpace

or aggregations or parts thereof. The composition type declares an element to be either an element itself, or an aggregation (complex) or a decomposition (part). The interpretation of these types is given at each subtype of IfcSpatialStructureElement. The IfcRelAggregates is defined as an 1-to-many relationship and used to establish the relationship between exactly two levels within the spatial project structure. Finally the highest level of the spatial structure is assigned to IfcProject using the IfcRelAggregates. Informal proposition:

The spatial project structure, established by the IfcRelAggregates, shall be acyclic. A site should not be (directly or indirectly) associated to a building, storey or space. A building should not be (directly or indirectly) associated to a storey or space. A storey should not be (directly or indirectly) associated to a space.

HISTORY New entity in IFC Release 2x.

Relationship Use Definition The subtypes of IfcSpatialStructureElement relate to other elements and systems by establishing the following relationships:

Containment of elements : IfcRelContainedInSpatialStructure by inverse attribute ContainsElements, used to assign any element, like building elements, MEP elements, etc. to the spatial structure element in which they are primarily contained.

NOTE This relationship is mandatory for elements in several view definitions and implementer agreements.

Reference of elements : IfcRelReferencedInSpatialStructure by inverse attribute ReferencesElements, used to reference any element, like building elements, MEP elements, etc. in spatial structure elements, other then the one, where it is contained. Reference of systems : IfcRelServicesBuildings by inverse attribute ServicedBySystems, used to reference a sytem, like a building service or electrical distribution system, a zonal system, or a structural analysis system, that is assigned to this spatial structure element.

NOTE Elements within the referenced system may be directly contained (or referenced) by other spatial structure elements.

The subtypes of IfcSpatialStructureElement relate to each other by using the IfcRelAggregates relationship to build the project spatial structure.

Figure 62 shows the use of IfcRelAggregates to establish a spatial structure including site, building, building section and storey. More information is provided at the level of the subtypes.

Figure 62 — Spatial structure element composition

Subclassed by Ifc4::IfcBuilding, Ifc4::IfcBuildingStorey, Ifc4::IfcSite, Ifc4::IfcSpace

Public Functions

bool hasCompositionType() const

Whether the optional attribute CompositionType is defined for this IfcSpatialStructureElement.

::Ifc4::IfcElementCompositionEnum::Value CompositionType() const

Denotes, whether the predefined spatial structure element represents itself, or an aggregate (complex) or a part (part). The interpretation is given separately for each subtype of spatial structure element. If no CompositionType is asserted, the dafault value ‘ELEMENT’ applies.

IFC2x4 CHANGE&nbsp Attribute made optional.

void setCompositionType(::Ifc4::IfcElementCompositionEnum::Value v)
const IfcParse::entity &declaration() const
IfcSpatialStructureElement(IfcEntityInstanceData *e)
IfcSpatialStructureElement(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, ::Ifc4::IfcObjectPlacement *v6_ObjectPlacement, ::Ifc4::IfcProductRepresentation *v7_Representation, boost::optional<std::string> v8_LongName, boost::optional<::Ifc4::IfcElementCompositionEnum::Value> v9_CompositionType)

Public Static Functions

const IfcParse::entity &Class()