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

以下の条件でIFCをチェックしたい。
【チェック対象】
対象機器：IfcUnitaryEquipment, IfcAirToAirHeatRecovery, IfcFan, IfcCoil, IfcChiller, IfcBoiler, IfcPump  

【必須要件】
以下の2項目が両方とも満たされていること: 
1. 設備管理番号（プロパティ名: 設備管理番号）: 空欄でないこと（値が存在すること）
2. 定期点検周期（プロパティ名: 定期点検周期（月））: 6ヶ月であること

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:info>
  <ids:specifications>
    <ids:specification name="空調関連機器_設備管理番号・定期点検周期" ifcVersion="IFC4">
      <ids:applicability minOccurs="0" maxOccurs="unbounded">
        <ids:entity>
          <ids:name>
            <xs:restriction base="xs:string">
              <xs:enumeration value="IFCUNITARYEQUIPMENT"/>
              <xs:enumeration value="IFCAIRTOAIRHEATRECOVERY"/>
              <xs:enumeration value="IFCFAN"/>
              <xs:enumeration value="IFCCOIL"/>
              <xs:enumeration value="IFCCHILLER"/>
              <xs:enumeration value="IFCBOILER"/>
              <xs:enumeration value="IFCPUMP"/>
            </xs:restriction>
          </ids:name>
        </ids:entity>
      </ids:applicability>
      <ids:requirements>
        <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>設備管理番号</ids:simpleValue>
          </ids:baseName>
        </ids:property>
        <ids:property cardinality="required" dataType="IFCDURATION">
          <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>
            <ids:simpleValue>P6M</ids:simpleValue>
          </ids:value>
        </ids:property>
      </ids:requirements>
    </ids:specification>
  </ids:specifications>
</ids:ids>

user: 各設備要素それぞれの要件を作成して。それだとIFCFANはあってもIFCCHILLERが無い場合でも検知できません。各EntityごとのSpecificationを作成するように。

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:info>
  <ids:specifications>
    <ids:specification name="空調関連機器_設備管理番号・定期点検周期-IFCUNITARYEQUIPMENT" ifcVersion="IFC4">
      <ids:applicability minOccurs="0" maxOccurs="unbounded">
        <ids:entity>
          <ids:name>
            <ids:simpleValue>IFCUNITARYEQUIPMENT</ids:simpleValue>
          </ids:name>
        </ids:entity>
      </ids:applicability>
      <ids:requirements>
        <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>設備管理番号</ids:simpleValue>
          </ids:baseName>
        </ids:property>
        <ids:property cardinality="required" dataType="IFCDURATION">
          <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>
            <ids:simpleValue>P6M</ids:simpleValue>
          </ids:value>
        </ids:property>
      </ids:requirements>
    </ids:specification>
    <ids:specification name="空調関連機器_設備管理番号・定期点検周期-IFCAIRTOAIRHEATRECOVERY" ifcVersion="IFC4">
      <ids:applicability minOccurs="0" maxOccurs="unbounded">
        <ids:entity>
          <ids:name>
            <ids:simpleValue>IFCAIRTOAIRHEATRECOVERY</ids:simpleValue>
          </ids:name>
        </ids:entity>
      </ids:applicability>
      <ids:requirements>
        <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>設備管理番号</ids:simpleValue>
          </ids:baseName>
        </ids:property>
        <ids:property cardinality="required" dataType="IFCDURATION">
          <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:property>
      </ids:requirements>
    </ids:specification>
    <ids:specification name="空調関連機器_設備管理番号・定期点検周期-IFCFAN" ifcVersion="IFC4">
      <ids:applicability minOccurs="0" maxOccurs="unbounded">
        <ids:entity>
          <ids:name>
            <ids:simpleValue>IFCFAN</ids:simpleValue>
          </ids:name>
        </ids:entity>
      </ids:applicability>
      <ids:requirements>
        <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>設備管理番号</ids:simpleValue>
          </ids:baseName>
        </ids:property>
        <ids:property cardinality="required" dataType="IFCDURATION">
          <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>
            <ids:simpleValue>P6M</ids:simpleValue>
          </ids:value>
        </ids:property>
      </ids:requirements>
    </ids:specification>
    <ids:specification name="空調関連機器_設備管理番号・定期点検周期-IFCCOIL" ifcVersion="IFC4">
      <ids:applicability minOccurs="0" maxOccurs="unbounded">
        <ids:entity>
          <ids:name>
            <ids:simpleValue>IFCCOIL</ids:simpleValue>
          </ids:name>
        </ids:entity>
      </ids:applicability>
      <ids:requirements>
        <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>設備管理番号</ids:simpleValue>
          </ids:baseName>
        </ids:property>
        <ids:property cardinality="required" dataType="IFCDURATION">
          <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>
            <ids:simpleValue>P6M</ids:simpleValue>
          </ids:value>
        </ids:property>
      </ids:requirements>
    </ids:specification>
    <ids:specification name="空調関連機器_設備管理番号・定期点検周期-IFCCHILLER" ifcVersion="IFC4">
      <ids:applicability minOccurs="0" maxOccurs="unbounded">
        <ids:entity>
          <ids:name>
            <ids:simpleValue>IFCCHILLER</ids:simpleValue>
          </ids:name>
        </ids:entity>
      </ids:applicability>
      <ids:requirements>
        <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>設備管理番号</ids:simpleValue>
          </ids:baseName>
        </ids:property>
        <ids:property cardinality="required" dataType="IFCDURATION">
          <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>
            <ids:simpleValue>P6M</ids:simpleValue>
          </ids:value>
        </ids:property>
      </ids:requirements>
    </ids:specification>
    <ids:specification name="空調関連機器_設備管理番号・定期点検周期-IFCBOILER" ifcVersion="IFC4">
      <ids:applicability minOccurs="0" maxOccurs="unbounded">
        <ids:entity>
          <ids:name>
            <ids:simpleValue>IFCBOILER</ids:simpleValue>
          </ids:name>
        </ids:entity>
      </ids:applicability>
      <ids:requirements>
        <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>設備管理番号</ids:simpleValue>
          </ids:baseName>
        </ids:property>
        <ids:property cardinality="required" dataType="IFCDURATION">
          <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>
            <ids:simpleValue>P6M</ids:simpleValue>
          </ids:value>
        </ids:property>
      </ids:requirements>
    </ids:specification>
    <ids:specification name="空調関連機器_設備管理番号・定期点検周期" ifcVersion="IFC4">
      <ids:applicability minOccurs="0" maxOccurs="unbounded">
        <ids:entity>
          <ids:name>
            <ids:simpleValue>IFCPUMP</ids:simpleValue>
          </ids:name>
        </ids:entity>
      </ids:applicability>
      <ids:requirements>
        <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>設備管理番号</ids:simpleValue>
          </ids:baseName>
        </ids:property>
        <ids:property cardinality="required" dataType="IFCDURATION">
          <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>
            <ids:simpleValue>P6M</ids:simpleValue>
          </ids:value>
        </ids:property>
      </ids:requirements>
    </ids:specification>
  </ids:specifications>
</ids:ids>