SPS007 Spatial containment - v6

001 | @implementer-agreement
002 | @SPS
003 | @version6
004 |
005 | Feature: SPS007 - Spatial Containment
006 | The rule verifies that spatial containment via IfcRelContainedInSpatialStructure is utilised in accordance with Concept Template for Spatial Containment
007 |
008 |
009 |     Scenario: Instances of IfcGrid must be contained within a spatial structure
010 |
011 |         Given an .IfcGrid.
012 |         Then a relationship .IfcRelContainedInSpatialStructure. ^must exist^ to .IfcGrid. from .IfcSpatialStructureElement.
013 |
014 |
015 |     Scenario: Instances of IfcAnnotation must be contained within a spatial structure, except when the annotation is nested under another annotation
016 |
017 |         Given an .IfcAnnotation.
018 |         Given A relationship .IfcRelNests. ^does not exist^ to .IfcAnnotation. from .IfcAnnotation.
019 |
020 |         Then a relationship .IfcRelContainedInSpatialStructure. ^must exist^ to .IfcAnnotation. from .IfcSpatialStructureElement.
021 |
022 |
023 |     Scenario: Instances of IfcElement must be part of a spatial structure, with certain exceptions
024 |
025 |         Given an .IfcElement.
026 |         Given [Its Type] ^is not^ 'IfcFeatureElement' ^including subtypes^
027 |         Given .Decomposes. ^is^ empty
028 |
029 |         Then a *required* relationship .IfcRelContainedInSpatialStructure. to .IfcElement. from .IfcSpatialStructureElement.
030 |
031 |
032 |     Scenario: Entities that are an aggregated part of another element must not also be part of a spatial structure
033 |         Given an .IfcElement.
034 |         Given a relationship .IfcRelAggregates. to .IfcElement. from .IfcElement.
035 |
036 |         Then .ContainedInStructure. ^is^ empty
037 |
038 |
039 |     Scenario: All other IFC entities must not be contained within a spatial structure
040 |         Given An .IfcProduct.
041 |         Given [Its Type] ^is not^ 'IfcElement' ^including subtypes^
042 |         Given [Its Type] ^is not^ 'IfcGrid'
043 |         Given [Its Type] ^is not^ 'IfcAnnotation'
044 |
045 |         Then .ContainedInStructure. ^is^ empty

Version history

Version

Tag

Date

Commit

Rule link

v1

v0.6.6

2024-06-07

c51e52d5

view

v2

v0.6.6

2024-06-12

0c778ff7

view

v3

v0.6.8

2024-10-23

eeaf1ecb

view

v4

v0.7.1

2025-03-11

c750a478

view

v5

v0.7.3

2025-03-21

93e51d68

view

v6

v0.7.9

2025-08-17

197ffba5

view