IFC 4.3.0.1 (IFC4X3) development

4.4.4.6 Type Element Nesting

Hosted components may be specified on types, following the same rules as defined for corresponding occurrences.

On type objects, hosted components do not have types defined, but serve as placeholders indicating that occurrences of the enclosing type object shall use a duplicate list of hosted components, where the types are defined at each occurrence.

This relationship differs from IfcRelAggregates, which is used to define explicit decomposition of elements at specified placement; this nesting relationship indicates an arbitrary composition of elements, where placement is defined parametrically -- either implicitly (material profile, layer, or constituent association) or explicitly (constraint association).

The order and naming of components may be significant based on parameterized material association. For example, if the IfcElementType has an associated IfcMaterialLayerSet, then layers are constructed according to material associations of each nested IfcElement, and the Name of each IfcMaterialLayer must correspond to the Name of each IfcElement.

The following diagram shows the generic classes and relationships used when applying this concept. In addition, concepts may have particular importance to common or standardised industry practices and scenarios. For these specific usage scenarios, the tables below shows a recommended list of general usage patterns that users may adopt.

G IfcElementType IfcElementType 1. GlobalId [1:1] 2. OwnerHistory [0:1] 3. Name [0:1] 4. Description [0:1]      HasAssignments [0:?]      Nests [0:1]      IsNestedBy [0:?]      HasContext [0:1]      IsDecomposedBy [0:?]      Decomposes [0:1]      HasAssociations [0:?] 5. ApplicableOccurrence [0:1] 6. HasPropertySets [1:?]      Types [0:1] 7. RepresentationMaps [1:?] 8. Tag [0:1]      ReferencedBy [0:?] 9. ElementType [0:1] IfcRelNests IfcRelNests 1. GlobalId [1:1] 2. OwnerHistory [0:1] 3. Name [0:1] 4. Description [0:1] 5. RelatingObject [1:1] Elements 6. RelatedObjects [1:?] IfcElementType:IsNestedBy1->IfcRelNests:RelatingObject0 IfcElement IfcElement 1. GlobalId [1:1] 2. OwnerHistory [0:1] Name 3. Name [0:1] 4. Description [0:1]      HasAssignments [0:?]      Nests [0:1]      IsNestedBy [0:?]      HasContext [0:1]      IsDecomposedBy [0:?]      Decomposes [0:1]      HasAssociations [0:?] 5. ObjectType [0:1]      IsDeclaredBy [0:1]      Declares [0:?]      IsTypedBy [0:1]      IsDefinedBy [0:?] 6. ObjectPlacement [0:1] 7. Representation [0:1]      ReferencedBy [0:?]      PositionedRelativeTo [0:?]      ReferencedInStructures [0:?] 8. Tag [0:1]      FillsVoids [0:1]      ConnectedTo [0:?]      IsInterferedByElements [0:?]      InterferesElements [0:?]      HasProjections [0:?]      HasOpenings [0:?]      IsConnectionRealization [0:?]      ProvidesBoundaries [0:?]      ConnectedFrom [0:?]      ContainedInStructure [0:1]      HasCoverings [0:?]      HasSurfaceFeatures [0:?] IfcRelNests:RelatedObjects1->IfcElement:IfcElement0 IfcLabel IfcLabel IfcElement:Name1->IfcLabel:IfcLabel0
Figure 4.4.4.6.A

General Usage

ApplicableEntity
IfcElementType
Table 4.4.4.6.B

Edit on Github


Is this page difficult to understand? Let us know!