#### IfcRelDecomposes

Natural language names

##### Semantic definitions at the entity

Entity definition

The decomposition relationship, IfcRelDecomposes, defines the general concept of elements being composed or decomposed. The decomposition relationship denotes a whole/part hierarchy with the ability to navigate from the whole (the composition) to the parts and vice versa.

Decompositions may be constraint by requiring both, the whole and its parts, to be of the same type - thus establishing a nesting relationship. Or they may require some form of physical containment, thus establishing special types of aggregation relationships.

> NOTE: There are two special names for decomposition, which are linguistically distinguished, nesting and aggregation. The subtypes of IfcRelDecomposes will introduce either the nesting or aggregation convention (see IfcRelNests and IfcRelAggregates).

> EXAMPLE: A cost element is a nest of other cost elements. Or a structural frame is an aggregation of beams and columns. Both are applications of decomposition relationship.

Decompositions imply a dependency, i.e. the definition of the whole depends on the definition of the parts and the parts depend on the existence of the whole. The decomposition relationship can be applied in a recursive manner, i.e. a decomposed element can be part in another decomposition. Cyclic references have to be prevented at application level.

> HISTORY: New entity in IFC Release 1.5, it is a generalization of the IFC2.0 entity IfcRelNests.

Attribute definitions

# | Attribute | Type | Cardinality | Description | A
--- | --- | --- | --- | --- | ---
5 | RelatingObject | IfcObjectDefinition | [1:1] | The object that represents the nest or aggregation. | X
6 | RelatedObjects | IfcObjectDefinition | S[1:?] | The objects being nested or aggregated. | X

Formal Propositions

Rule | Description
--- | ---
WR31 | The instance to which the relation RelatingObject points shall not be contained in the List of RelatedObjects.

##### Inherited definitions from supertypes

Entity inheritance
Attribute inheritance

# | Attribute | Type | Cardinality | Description | A
--- | --- | --- | --- | --- | ---
IfcRoot
1 | GlobalId | IfcGloballyUniqueId | [1:1] | Assignment of a globally unique identifier within the entire software world. | X
2 | OwnerHistory | IfcOwnerHistory | [1:1] | Assignment of the information about the current ownership of that object, including owning actor, application, local identification and information captured about the recent changes of the object, NOTE: only the last modification in stored. | X
3 | Name | IfcLabel | [0:1] | Optional name for use by the participating software systems or users. For some subtypes of IfcRoot the insertion of the Name attribute may be required. This would be enforced by a where rule. | X
4 | Description | IfcText | [0:1] | Optional description, provided for exchanging informative comments. | X
IfcRelationship
IfcRelDecomposes
5 | RelatingObject | IfcObjectDefinition | [1:1] | The object that represents the nest or aggregation. | X
6 | RelatedObjects | IfcObjectDefinition | S[1:?] | The objects being nested or aggregated. | X

##### Formal representations

XSD Specification
`<xs:element name="IfcRelDecomposes" type="ifc:IfcRelDecomposes" abstract="true" substitutionGroup="ifc:IfcRelationship" nillable="true"/>
<xs:complexType name="IfcRelDecomposes" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcRelationship">
<xs:sequence>
<xs:element name="RelatingObject" type="ifc:IfcObjectDefinition" nillable="true"/>
<xs:element name="RelatedObjects">
<xs:complexType>
<xs:sequence>
<xs:element ref="ifc:IfcObjectDefinition" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcObjectDefinition"/>
<xs:attribute ref="ifc:cType" fixed="set"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
`
EXPRESS Specification
`ENTITY IfcRelDecomposes
ABSTRACT SUPERTYPE OF(IfcRelAggregates)
SUBTYPE OF (IfcRelationship);
RelatingObject : IfcObjectDefinition;
RelatedObjects : SET [1:?] OF IfcObjectDefinition;
WHERE
WR31 : SIZEOF(QUERY(Temp <* RelatedObjects | RelatingObject :=: Temp)) = 0;
END_ENTITY;

EXPRESS-G diagram

`

Link to this page