Class Ifc2x3::IfcRelDecomposes

Nested Relationships

This class is a nested type of Struct Ifc2x3.

Inheritance Relationships

Base Type

Derived Types

Class Documentation

class Ifc2x3::IfcRelDecomposes : public Ifc2x3::IfcRelationship

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 constrained 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 generalisation of the IFC2.0 entity IfcRelNests.

IFC2x4 CHANGE The differentiation between the aggregation and nesting is determined to be a non-ordered or an ordered collection of parts. The attributes RelatingObject and RelatedObjects have been demoted to the subtypes.

Subclassed by Ifc2x3::IfcRelAggregates, Ifc2x3::IfcRelNests

Public Types

typedef IfcTemplatedEntityList<IfcRelDecomposes> list

Public Functions

::Ifc2x3::IfcObjectDefinition *RelatingObject() const
void setRelatingObject(::Ifc2x3::IfcObjectDefinition *v)
IfcTemplatedEntityList<::Ifc2x3::IfcObjectDefinition>::ptr RelatedObjects() const
void setRelatedObjects(IfcTemplatedEntityList<::Ifc2x3::IfcObjectDefinition>::ptr v)
const IfcParse::entity &declaration() const
IfcRelDecomposes(IfcEntityInstanceData *e)
IfcRelDecomposes(std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, ::Ifc2x3::IfcObjectDefinition *v5_RelatingObject, IfcTemplatedEntityList<::Ifc2x3::IfcObjectDefinition>::ptr v6_RelatedObjects)

Public Static Functions

const IfcParse::entity &Class()