Skip to content

Conditional PartOf specifications #379

Description

@atomczak

Discussed in #341

Originally posted by andyward September 12, 2024
I'd like to write a specification that implements the requirement that All spaces belonging to a BuildingStorey '01' should have their space names matching '01-.*' (or the converse requirement: Spaces named like '01-.*' must be part of a BuildingStorey with Name '01' )

I'm struggling to see how I could do this in IDS1.0. I was hoping to be able to do this with the partOf facet and using RelAggregates but there's no obvious way to apply a requirement to the 'child' side of the relationship.

e.g.

<specification name="Spaces on level '01' must be named based on the level" ifcVersion="IFC2X3">
  <applicability maxOccurs="unbounded">
    <entity>
      <name>
        <simpleValue>IFCBUILDINGSTOREY</simpleValue>
      </name>
    </entity>
    <ids:attribute>
      <ids:name>
        <simpleValue>Name</simpleValue>
      </ids:name>
      <ids:value>
        <simpleValue>01</simpleValue>
      </ids:value>
    </ids:attribute>
  </applicability>
  <requirements>
    <partOf relation="IFCRELAGGREGATES">
      <entity>
        <name>
          <simpleValue>IFCSPACE</simpleValue>
        </name>
      </entity>
      <!-- and these spaces should have Name attribute matching pattern '01-.*' -->
    </partOf>
  </requirements>
</specification>

Any ideas? or is this a usecase to consider for a future IDS? I'd imagine similar use cases for things like ensuring components are in the correct IfcSystem (by classification, name etc).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    discuss & decideplease contributeA PR is welcome for this issue. Please target the `development` branch.schemaIssues that impact the schema file

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions