user: IDS Version: IFC4X3_ADD2
filename: row-0027.ids

道路改良工事の舗装工事における数量積算確認のため、舗装情報をチェックするIDSを作成してください。
対象は、BIM/CIMモデル内の車道および歩道の舗装要素です。
積算システムへ連携する前提として、舗装種類別の面積および厚さ情報が漏れなく入力されているかを確認したいです。

【チェック項目】
- 舗装種別 以下のいずれかが入力されていること
  - 密粒度アスファルト舗装
  - 排水性舗装
  - インターロッキングブロック舗装
- 舗装面積[㎡] 値が入力されており、0.1㎡以上であること  
- 舗装厚さ[m] 値が入力されており、0.03m以上0.4m以下の範囲にあること

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>道路改良_舗装工事_積算連携前_舗装情報チェック</ids:title>
    <ids:version>1.0.0</ids:version>
  </ids:info>
  <ids:specifications>
    <ids:specification name="舗装要素_舗装情報チェック" ifcVersion="IFC4X3_ADD2" description="舗装種別・面積・厚さ（cm）を必須とし、範囲をチェックする（IFC2X3）">
      <ids:applicability minOccurs="1" maxOccurs="unbounded">
        <ids:entity>
          <ids:name>
            <ids:simpleValue>IFCPAVEMENT</ids:simpleValue>
          </ids:name>
        </ids:entity>
      </ids:applicability>
      <ids:requirements>
        <ids:property dataType="IFCLABEL">
          <ids:propertySet>
            <xs:restriction base="xs:string">
              <xs:pattern value="^(?!(Pset_|Qto_)).+"/>
            </xs:restriction>
          </ids:propertySet>
          <ids:baseName>
            <ids:simpleValue>舗装種別</ids:simpleValue>
          </ids:baseName>
          <ids:value>
            <xs:restriction base="xs:string">
              <xs:enumeration value="密粒度アスファルト舗装"/>
              <xs:enumeration value="排水性舗装"/>
              <xs:enumeration value="インターロッキングブロック舗装"/>
            </xs:restriction>
          </ids:value>
        </ids:property>
        <ids:property cardinality="required" dataType="IFCAREAMEASURE">
          <ids:propertySet>
            <xs:restriction base="xs:string">
              <xs:pattern value="^(?!(Pset_|Qto_)).+"/>
            </xs:restriction>
          </ids:propertySet>
          <ids:baseName>
            <ids:simpleValue>舗装面積</ids:simpleValue>
          </ids:baseName>
          <ids:value>
            <xs:restriction base="xs:double">
              <xs:minInclusive value="0.1"/>
            </xs:restriction>
          </ids:value>
        </ids:property>
        <ids:property cardinality="required" dataType="IFCLENGTHMEASURE">
          <ids:propertySet>
            <xs:restriction base="xs:string">
              <xs:pattern value="^(?!(Pset_|Qto_)).+"/>
            </xs:restriction>
          </ids:propertySet>
          <ids:baseName>
            <ids:simpleValue>舗装厚さ</ids:simpleValue>
          </ids:baseName>
          <ids:value>
            <xs:restriction base="xs:double">
              <xs:minInclusive value="0.03"/>
              <xs:maxInclusive value="0.4"/>
            </xs:restriction>
          </ids:value>
        </ids:property>
      </ids:requirements>
    </ids:specification>
  </ids:specifications>
</ids:ids>

user: 車道／歩道以外の舗装要素も対象になるため、Applicability Name に「車道」または「歩道」を含む要素のみを対象としてください。

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>道路改良_舗装工事_積算連携前_舗装情報チェック</ids:title>
    <ids:version>1.0.0</ids:version>
  </ids:info>
  <ids:specifications>
    <ids:specification name="舗装要素_舗装情報チェック" ifcVersion="IFC4X3_ADD2" description="舗装種別・面積・厚さ（cm）を必須とし、範囲をチェックする（IFC2X3）">
      <ids:applicability minOccurs="1" maxOccurs="unbounded">
        <ids:entity>
          <ids:name>
            <ids:simpleValue>IFCPAVEMENT</ids:simpleValue>
          </ids:name>
        </ids:entity>
        <ids:attribute>
          <ids:name>
            <ids:simpleValue>Name</ids:simpleValue>
          </ids:name>
          <ids:value>
            <xs:restriction base="xs:string">
              <xs:enumeration value="車道"/>
              <xs:enumeration value="歩道"/>
            </xs:restriction>
          </ids:value>
        </ids:attribute>
      </ids:applicability>
      <ids:requirements>
        <ids:property dataType="IFCLABEL">
          <ids:propertySet>
            <xs:restriction base="xs:string">
              <xs:pattern value="^(?!(Pset_|Qto_)).+"/>
            </xs:restriction>
          </ids:propertySet>
          <ids:baseName>
            <ids:simpleValue>舗装種別</ids:simpleValue>
          </ids:baseName>
          <ids:value>
            <xs:restriction base="xs:string">
              <xs:enumeration value="密粒度アスファルト舗装"/>
              <xs:enumeration value="排水性舗装"/>
              <xs:enumeration value="インターロッキングブロック舗装"/>
            </xs:restriction>
          </ids:value>
        </ids:property>
        <ids:property cardinality="required" dataType="IFCAREAMEASURE">
          <ids:propertySet>
            <xs:restriction base="xs:string">
              <xs:pattern value="^(?!(Pset_|Qto_)).+"/>
            </xs:restriction>
          </ids:propertySet>
          <ids:baseName>
            <ids:simpleValue>舗装面積</ids:simpleValue>
          </ids:baseName>
          <ids:value>
            <xs:restriction base="xs:double">
              <xs:minInclusive value="0.1"/>
            </xs:restriction>
          </ids:value>
        </ids:property>
        <ids:property cardinality="required" dataType="IFCLENGTHMEASURE">
          <ids:propertySet>
            <xs:restriction base="xs:string">
              <xs:pattern value="^(?!(Pset_|Qto_)).+"/>
            </xs:restriction>
          </ids:propertySet>
          <ids:baseName>
            <ids:simpleValue>舗装厚さ</ids:simpleValue>
          </ids:baseName>
          <ids:value>
            <xs:restriction base="xs:double">
              <xs:minInclusive value="0.03"/>
              <xs:maxInclusive value="0.4"/>
            </xs:restriction>
          </ids:value>
        </ids:property>
      </ids:requirements>
    </ids:specification>
  </ids:specifications>
</ids:ids>

user: 正規表現で車道と歩道の指定をするように微調整して

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>道路改良_舗装工事_積算連携前_舗装情報チェック</ids:title>
    <ids:version>1.0.0</ids:version>
  </ids:info>
  <ids:specifications>
    <ids:specification name="舗装要素_舗装情報チェック" ifcVersion="IFC4X3_ADD2" description="舗装種別・面積・厚さ（cm）を必須とし、範囲をチェックする（IFC2X3）">
      <ids:applicability minOccurs="1" maxOccurs="unbounded">
        <ids:entity>
          <ids:name>
            <ids:simpleValue>IFCPAVEMENT</ids:simpleValue>
          </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="(車道|歩道)"/>
            </xs:restriction>
          </ids:value>
        </ids:attribute>
      </ids:applicability>
      <ids:requirements>
        <ids:property dataType="IFCLABEL">
          <ids:propertySet>
            <xs:restriction base="xs:string">
              <xs:pattern value="^(?!(Pset_|Qto_)).+"/>
            </xs:restriction>
          </ids:propertySet>
          <ids:baseName>
            <ids:simpleValue>舗装種別</ids:simpleValue>
          </ids:baseName>
          <ids:value>
            <xs:restriction base="xs:string">
              <xs:enumeration value="密粒度アスファルト舗装"/>
              <xs:enumeration value="排水性舗装"/>
              <xs:enumeration value="インターロッキングブロック舗装"/>
            </xs:restriction>
          </ids:value>
        </ids:property>
        <ids:property cardinality="required" dataType="IFCAREAMEASURE">
          <ids:propertySet>
            <xs:restriction base="xs:string">
              <xs:pattern value="^(?!(Pset_|Qto_)).+"/>
            </xs:restriction>
          </ids:propertySet>
          <ids:baseName>
            <ids:simpleValue>舗装面積</ids:simpleValue>
          </ids:baseName>
          <ids:value>
            <xs:restriction base="xs:double">
              <xs:minInclusive value="0.1"/>
            </xs:restriction>
          </ids:value>
        </ids:property>
        <ids:property cardinality="required" dataType="IFCLENGTHMEASURE">
          <ids:propertySet>
            <xs:restriction base="xs:string">
              <xs:pattern value="^(?!(Pset_|Qto_)).+"/>
            </xs:restriction>
          </ids:propertySet>
          <ids:baseName>
            <ids:simpleValue>舗装厚さ</ids:simpleValue>
          </ids:baseName>
          <ids:value>
            <xs:restriction base="xs:double">
              <xs:minInclusive value="0.03"/>
              <xs:maxInclusive value="0.4"/>
            </xs:restriction>
          </ids:value>
        </ids:property>
      </ids:requirements>
    </ids:specification>
  </ids:specifications>
</ids:ids>