user: IDS Version: IFC4
filename: row-0024.ids

To confirm quantity takeoff calculation for a new box culvert construction in a river improvement project, please create an IDS to check the concrete volume.
The targets are the elements of the base slab, side walls, and top slab that make up each span of the box culvert in the BIM/CIM model.

[Check items]
For each element, confirm that the following items are entered:
- Part classification (Base slab / Side wall / Top slab)
- Volume [m³]
- Span number

assistant: <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ids:ids xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://standards.buildingsmart.org/IDS http://standards.buildingsmart.org/IDS/1.0/ids.xsd" xmlns:ids="http://standards.buildingsmart.org/IDS">
  <!--edit with ONESTRUCTION Inc.-->
  <ids:info>
    <ids:title>Box culvert_concrete volume check by span</ids:title>
    <ids:version>1.0.0</ids:version>
    <ids:description>Require part classification/span number/concrete volume for elements (base slab, side wall, top slab).      Give the span (IfcGroup, etc.) aggregated values and a volume difference ratio, and check within ±2%.</ids:description>
  </ids:info>
  <ids:specifications>
    <ids:specification name="Box culvert_slab" ifcVersion="IFC4">
      <ids:applicability minOccurs="1" maxOccurs="unbounded">
        <ids:entity>
          <ids:name>
            <xs:restriction base="xs:string">
              <xs:enumeration value="IFCSLAB"/>
              <xs:enumeration value="IFCWALL"/>
            </xs:restriction>
          </ids:name>
        </ids:entity>
      </ids:applicability>
      <ids:requirements>
        <ids:property cardinality="required" dataType="IFCLABEL">
          <ids:propertySet>
            <xs:restriction base="xs:string">
              <xs:pattern value="^(?!(Pset_|Qto_)).+"/>
            </xs:restriction>
          </ids:propertySet>
          <ids:baseName>
            <ids:simpleValue>Part classification</ids:simpleValue>
          </ids:baseName>
          <ids:value>
            <xs:restriction base="xs:string">
              <xs:enumeration value="Base slab"/>
              <xs:enumeration value="Side wall"/>
              <xs:enumeration value="Top slab"/>
            </xs:restriction>
          </ids:value>
        </ids:property>
        <ids:property cardinality="required" dataType="IFCVOLUMEMEASURE">
          <ids:propertySet>
            <xs:restriction base="xs:string">
              <xs:pattern value="^(?!(Pset_|Qto_)).+"/>
            </xs:restriction>
          </ids:propertySet>
          <ids:baseName>
            <ids:simpleValue>Volume</ids:simpleValue>
          </ids:baseName>
        </ids:property>
        <ids:property cardinality="required" dataType="IFCIDENTIFIER">
          <ids:propertySet>
            <xs:restriction base="xs:string">
              <xs:pattern value="^(?!(Pset_|Qto_)).+"/>
            </xs:restriction>
          </ids:propertySet>
          <ids:baseName>
            <ids:simpleValue>Span number</ids:simpleValue>
          </ids:baseName>
        </ids:property>
      </ids:requirements>
    </ids:specification>
  </ids:specifications>
</ids:ids>

user: Because IFCSLAB / IFCWALL other than the box culvert are also being targeted, please target only elements whose Applicability Name includes "Box culvert".

assistant: <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ids:ids xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://standards.buildingsmart.org/IDS http://standards.buildingsmart.org/IDS/1.0/ids.xsd" xmlns:ids="http://standards.buildingsmart.org/IDS">
  <!--edit with ONESTRUCTION Inc.-->
  <ids:info>
    <ids:title>Box culvert_concrete volume check by span</ids:title>
    <ids:version>1.0.0</ids:version>
    <ids:description>Require part classification/span number/concrete volume for elements (base slab, side wall, top slab).      Give the span (IfcGroup, etc.) aggregated values and a volume difference ratio, and check within ±2%.</ids:description>
  </ids:info>
  <ids:specifications>
    <ids:specification name="Box culvert_slab" ifcVersion="IFC4">
      <ids:applicability minOccurs="1" maxOccurs="unbounded">
        <ids:entity>
          <ids:name>
            <xs:restriction base="xs:string">
              <xs:enumeration value="IFCSLAB"/>
              <xs:enumeration value="IFCWALL"/>
            </xs:restriction>
          </ids:name>
        </ids:entity>
        <ids:attribute>
          <ids:name>
            <ids:simpleValue>Name</ids:simpleValue>
          </ids:name>
          <ids:value>
            <xs:restriction base="xs:string">
              <xs:pattern value=".*Box culvert.*"/>
            </xs:restriction>
          </ids:value>
        </ids:attribute>
      </ids:applicability>
      <ids:requirements>
        <ids:property cardinality="required" dataType="IFCLABEL">
          <ids:propertySet>
            <xs:restriction base="xs:string">
              <xs:pattern value="^(?!(Pset_|Qto_)).+"/>
            </xs:restriction>
          </ids:propertySet>
          <ids:baseName>
            <ids:simpleValue>Part classification</ids:simpleValue>
          </ids:baseName>
          <ids:value>
            <xs:restriction base="xs:string">
              <xs:enumeration value="Base slab"/>
              <xs:enumeration value="Side wall"/>
              <xs:enumeration value="Top slab"/>
            </xs:restriction>
          </ids:value>
        </ids:property>
        <ids:property cardinality="required" dataType="IFCVOLUMEMEASURE">
          <ids:propertySet>
            <xs:restriction base="xs:string">
              <xs:pattern value="^(?!(Pset_|Qto_)).+"/>
            </xs:restriction>
          </ids:propertySet>
          <ids:baseName>
            <ids:simpleValue>Volume</ids:simpleValue>
          </ids:baseName>
        </ids:property>
        <ids:property cardinality="required" dataType="IFCIDENTIFIER">
          <ids:propertySet>
            <xs:restriction base="xs:string">
              <xs:pattern value="^(?!(Pset_|Qto_)).+"/>
            </xs:restriction>
          </ids:propertySet>
          <ids:baseName>
            <ids:simpleValue>Span number</ids:simpleValue>
          </ids:baseName>
        </ids:property>
      </ids:requirements>
    </ids:specification>
  </ids:specifications>
</ids:ids>