Skip to content

IfcRelNests decomposition and validation rule SPS007 - Spatial Containment #497

@fg55b

Description

@fg55b

Hello everyone,

When working with decompositions in IFC, there are some questions regarding the validity of using IfcRelNests to decompose physical elements.

When attempting to use IfcRelNests for ordered decompositions, the resulting file fails validation with the rule SPS007 - Spatial Containment. This rule references the Concept Template for Spatial Containment, which states:

The subtypes of IfcElement may be aggregated into an element assembly using the objectified relationship IfcRelAggregates, referring to it by its inverse attribute SELF\IfcObjectDefinition.Decomposes. Any subtype of IfcElement can be an element assembly, with IfcElementAssembly as a special focus subtype. In this case it should not be additionally contained in the project spatial hierarchy, i.e. SELF\IfcElement.ContainedInStructure should be NIL.

The definition of the IfcRelNests relationship is:

  • In IFC4:

The nesting relationship IfcRelNests is a special type of the general composition/decomposition (or whole/part) relationship IfcRelDecomposes. The nesting relationship can be applied to all non physical subtypes of object and object types, namely processes, controls (like cost items), and resources. It can also be applied to physical subtypes of object and object types, namely elements having ports. The nesting implies an order among the nested parts.

  • In IFC4X3:

The nesting relationship IfcRelNests is a special type of the general composition/decomposition (or whole/part) relationship IfcRelDecomposes. The nesting relationship can be applied to all subtypes of object and object types. For example, processes, controls (like cost items), and resources. It can also be applied to alignment, nesting its different layouts; and to physical subtypes of object and object types, such as elements having ports. The nesting implies an order among the nested parts.

The change from "namely" (an exhaustive, restrictive list) to "such as" (an illustrative, non-exhaustive list) suggests a broader scope for IfcRelNests in IFC4X3, potentially including physical elements beyond those with ports.

Furthermore, the documentation for IfcRelDecomposes states:

The differentiation between the aggregation and nesting is determined to be a non-ordered or an ordered collection of parts.

If the distinction is strictly regarding ordering, it implies that nesting should function similarly to aggregation regarding spatial containment, differing only in the ordering of parts. If not, this statement may be misleading, since it contradicts the Spatial Containment concept, which explicitly mentions only IfcRelAggregates for decomposition that implies spatial containment.

Considering the above, should IfcRelNests be considered a valid relationship for decomposing IfcElement subtypes in cases where an ordered decomposition is logically required?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions