Provision of a spatial structure of the project by aggregating spatial elements. The spatial structure is a hierarchical tree of spatial elements ultimately assigned to the project. Decomposition refers to the relationship to a lower level element (e.g. this storey has spaces).
NOTE The link between the project and the highest level spatial element is provided by this concept through IfcRelContainedInSpatialStructure and not through declaration using IfcRelDeclares. This is a known anomaly intruduced to maintain compatibility with earlier versions of this standard.
The order of spatial structure elements being included in the concept for builing projects are from low to high level: IfcSpace, IfcBuildingStorey, IfcBuilding, IfcSite and IfcProject with IfcSite, IfcBuildingStorey and IfcSpace being optional levels. Therefore an spatial structure element can only be part of an element at the same or higher level.
In addition a more general hierarchical tree of spatial elements can be created by using IfcSpatialZone, from low to high: IfcSpatialZone, IfcSite, and IfcProject, with IfcSite being an optional level.
NOTE The more general hiearchical tree has been introduced as an intermediate solution and stub for further extensions to support infrastructure works.
Figure 30 illustrates an instance diagram.
Figure 30 — Spatial Decomposition |
<?xml version="1.0"?>
<ConceptTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" uuid="667f8443-ecce-4a8d-a63f-931fab0453e0" name="Spatial Decomposition" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
<Rules>
<AttributeRule AttributeName="IsDecomposedBy">
<EntityRules>
<EntityRule EntityName="IfcRelAggregates">
<AttributeRules>
<AttributeRule RuleID="RelatedObjects" AttributeName="RelatedObjects">
<EntityRules>
<EntityRule EntityName="IfcSpatialElement">
<AttributeRules>
<AttributeRule RuleID="SpatialElementName" AttributeName="Name">
<EntityRules>
<EntityRule EntityName="IfcLabel" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</Rules>
</ConceptTemplate>