Objects may be composed into parts to indicate levels of detail, such as a building having multiple storeys, a framed wall having studs, or a task having subtasks. Composition may form a hierarchy of multiple levels, where an object must have a single parent, or if a top-level object then declared within the single project or a project library.
<?xml version="1.0"?>
<ConceptTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" uuid="5098cd13-bf4b-473a-a846-a60f69e9b738" name="Object Composition" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
<SubTemplates>
<ConceptTemplate uuid="02eefcc6-b26c-4f20-9c7c-c30ae74eb9a9" name="Aggregation" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
<SubTemplates>
<ConceptTemplate uuid="ca0f65e2-3913-4fdb-8a09-0c5c7a0d5421" name="Element Composition" applicableSchema="IFC4" applicableEntity="IfcElement">
<Rules>
<AttributeRule RuleID="Decomposes" AttributeName="Decomposes">
<EntityRules>
<EntityRule EntityName="IfcRelAggregates">
<AttributeRules>
<AttributeRule RuleID="RelatingObject" AttributeName="RelatingObject">
<EntityRules>
<EntityRule EntityName="IfcElement">
<AttributeRules>
<AttributeRule RuleID="ElementName" AttributeName="Name">
<EntityRules>
<EntityRule EntityName="IfcLabel" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</Rules>
</ConceptTemplate>
<ConceptTemplate uuid="8a27c15a-c4ea-4ca9-8cce-7fbba1c9bce0" name="Element Decomposition" applicableSchema="IFC4" applicableEntity="IfcElement">
<Rules>
<AttributeRule RuleID="IsDecomposedBy" AttributeName="IsDecomposedBy">
<EntityRules>
<EntityRule EntityName="IfcRelAggregates">
<AttributeRules>
<AttributeRule RuleID="RelatedObjects" AttributeName="RelatedObjects">
<EntityRules>
<EntityRule EntityName="IfcElement">
<AttributeRules>
<AttributeRule RuleID="PartName" AttributeName="Name">
<EntityRules>
<EntityRule EntityName="IfcLabel" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</Rules>
</ConceptTemplate>
<ConceptTemplate uuid="8c0fd2f7-71bb-4e6e-8fdb-0c02b352f14a" name="Spatial Composition" applicableSchema="IFC4" applicableEntity="IfcSpatialElement">
<Rules>
<AttributeRule AttributeName="Decomposes">
<EntityRules>
<EntityRule EntityName="IfcRelAggregates">
<AttributeRules>
<AttributeRule RuleID="RelatingObject" AttributeName="RelatingObject">
<EntityRules>
<EntityRule EntityName="IfcProject">
<AttributeRules>
<AttributeRule RuleID="ProjectName" AttributeName="Name" />
</AttributeRules>
</EntityRule>
<EntityRule EntityName="IfcSpatialElement">
<AttributeRules>
<AttributeRule RuleID="SpatialElementName" AttributeName="Name" />
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</Rules>
</ConceptTemplate>
<ConceptTemplate 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>
</SubTemplates>
</ConceptTemplate>
<ConceptTemplate uuid="14891e19-2eaa-4641-8913-629bb9a60801" name="Element Projecting" applicableSchema="IFC4" applicableEntity="IfcElement">
<Rules>
<AttributeRule AttributeName="HasProjections">
<EntityRules>
<EntityRule EntityName="IfcRelProjectsElement">
<AttributeRules>
<AttributeRule AttributeName="RelatedFeatureElement">
<EntityRules>
<EntityRule EntityName="IfcProjectionElement">
<AttributeRules>
<AttributeRule AttributeName="PredefinedType">
<EntityRules>
<EntityRule EntityName="IfcProjectionElementTypeEnum" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</Rules>
</ConceptTemplate>
<ConceptTemplate uuid="b9005e79-b5c5-4c0b-9d86-046c21ad420d" name="Element Voiding" applicableSchema="IFC4" applicableEntity="IfcElement">
<Rules>
<AttributeRule RuleID="HasOpenings" AttributeName="HasOpenings">
<EntityRules>
<EntityRule EntityName="IfcRelVoidsElement">
<AttributeRules>
<AttributeRule AttributeName="RelatedOpeningElement">
<EntityRules>
<EntityRule EntityName="IfcOpeningElement">
<AttributeRules>
<AttributeRule AttributeName="PredefinedType">
<EntityRules>
<EntityRule EntityName="IfcOpeningElementTypeEnum" />
</EntityRules>
</AttributeRule>
<AttributeRule RuleID="HasFillings" AttributeName="HasFillings">
<EntityRules>
<EntityRule EntityName="IfcRelFillsElement">
<AttributeRules>
<AttributeRule RuleID="RelatedFillings" AttributeName="RelatedBuildingElement">
<EntityRules>
<EntityRule RuleID="ElementName" EntityName="IfcDoor" />
<EntityRule RuleID="ElementName" EntityName="IfcWindow" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</Rules>
</ConceptTemplate>
<ConceptTemplate uuid="d1e6b86e-7658-443c-b708-86b7dd8b12f4" name="Nesting" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
<Rules>
<AttributeRule AttributeName="IsNestedBy">
<EntityRules>
<EntityRule EntityName="IfcRelNests" />
</EntityRules>
</AttributeRule>
</Rules>
<SubTemplates>
<ConceptTemplate uuid="fbf23658-a429-4480-9b41-5e805944781b" name="Element Nesting" applicableSchema="IFC4" applicableEntity="IfcElement">
<Rules>
<AttributeRule AttributeName="IsNestedBy">
<EntityRules>
<EntityRule EntityName="IfcRelNests">
<AttributeRules>
<AttributeRule RuleID="Type" AttributeName="RelatedObjects">
<EntityRules>
<EntityRule EntityName="IfcElement">
<AttributeRules>
<AttributeRule AttributeName="ObjectPlacement">
<EntityRules>
<EntityRule EntityName="IfcLocalPlacement" />
</EntityRules>
</AttributeRule>
<AttributeRule RuleID="PredefinedType" AttributeName="PredefinedType" />
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</Rules>
</ConceptTemplate>
<ConceptTemplate uuid="38ca8788-5e47-411c-8294-d56f9e9a5691" name="Object Nesting" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
<Rules>
<AttributeRule AttributeName="IsNestedBy">
<EntityRules>
<EntityRule EntityName="IfcRelNests">
<AttributeRules>
<AttributeRule RuleID="Type" AttributeName="RelatedObjects">
<EntityRules>
<EntityRule EntityName="IfcObject" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</Rules>
</ConceptTemplate>
<ConceptTemplate uuid="bafc93b7-d0e2-42d8-84cf-5da20ee1480a" name="Port Nesting" applicableSchema="IFC4" applicableEntity="IfcDistributionElement">
<Rules>
<AttributeRule RuleID="PredefinedType" AttributeName="PredefinedType" />
<AttributeRule AttributeName="IsNestedBy">
<EntityRules>
<EntityRule EntityName="IfcRelNests">
<AttributeRules>
<AttributeRule AttributeName="RelatedObjects">
<EntityRules>
<EntityRule EntityName="IfcDistributionPort">
<AttributeRules>
<AttributeRule RuleID="PortName" AttributeName="Name">
<EntityRules>
<EntityRule EntityName="IfcLabel" />
</EntityRules>
</AttributeRule>
<AttributeRule RuleID="Flow" AttributeName="FlowDirection">
<EntityRules>
<EntityRule EntityName="IfcFlowDirectionEnum" />
</EntityRules>
</AttributeRule>
<AttributeRule RuleID="SystemType" AttributeName="SystemType">
<EntityRules>
<EntityRule EntityName="IfcDistributionSystemEnum" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="ObjectPlacement">
<EntityRules>
<EntityRule EntityName="IfcLocalPlacement">
<AttributeRules>
<AttributeRule AttributeName="RelativePlacement">
<EntityRules>
<EntityRule EntityName="IfcAxis2Placement3D">
<AttributeRules>
<AttributeRule AttributeName="Location">
<EntityRules>
<EntityRule EntityName="IfcCartesianPoint" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Axis">
<EntityRules>
<EntityRule EntityName="IfcDirection" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="RefDirection">
<EntityRules>
<EntityRule EntityName="IfcDirection" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="IsDeclaredBy" />
<AttributeRule AttributeName="PredefinedType">
<EntityRules>
<EntityRule EntityName="IfcDistributionPortTypeEnum" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</Rules>
</ConceptTemplate>
</SubTemplates>
</ConceptTemplate>
</SubTemplates>
</ConceptTemplate>