<?xml version='1.0' encoding='UTF-8'?>
<ids xmlns="http://standards.buildingsmart.org/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">
  <info>
    <title>Infrastructure DE framework baseline</title>
    <description>A starting point for the information requirements typical of Australian transport and infrastructure agency Digital Engineering frameworks: Uniclass classification and an asset name on every element. Tailor the classification table and add agency-specific property sets before issuing this to suppliers.</description>
    <author>hello@clearifc.com</author>
    <version>1.0</version>
    <date>2026-08-19</date>
    <purpose>Infrastructure asset data handover</purpose>
  </info>
  <specifications>
    <specification name="Every element is classified to Uniclass" ifcVersion="IFC4" instructions="Classify to the Uniclass table nominated in the project DE framework. Codes take the form Ss_25_10_30_25.">
      <applicability minOccurs="0" maxOccurs="unbounded">
        <entity>
          <name>
            <simpleValue>IFCBUILDINGELEMENT</simpleValue>
          </name>
        </entity>
      </applicability>
      <requirements>
        <classification cardinality="required" instructions="Classify to the Uniclass table nominated in the project DE framework. Codes take the form Ss_25_10_30_25.">
          <value>
            <xs:restriction base="xs:string">
              <xs:pattern value="(Ac|Co|En|SL|EF|Ss|Pr|TE|PM|FI|Ma|Zz)_[0-9]{2}(_[0-9]{2}){0,3}(_[A-Z]{2})?"/>
            </xs:restriction>
          </value>
          <system>
            <simpleValue>Uniclass</simpleValue>
          </system>
        </classification>
      </requirements>
    </specification>
    <specification name="Every element is named" ifcVersion="IFC4" instructions="Names feed the asset register; blank names cannot be accepted.">
      <applicability minOccurs="0" maxOccurs="unbounded">
        <entity>
          <name>
            <simpleValue>IFCBUILDINGELEMENT</simpleValue>
          </name>
        </entity>
      </applicability>
      <requirements>
        <attribute cardinality="required" instructions="Names feed the asset register; blank names cannot be accepted.">
          <name>
            <simpleValue>Name</simpleValue>
          </name>
        </attribute>
      </requirements>
    </specification>
    <specification name="Every element carries the supplier's asset tag" ifcVersion="IFC4" instructions="Export your internal asset reference as the element Tag.">
      <applicability minOccurs="0" maxOccurs="unbounded">
        <entity>
          <name>
            <simpleValue>IFCBUILDINGELEMENT</simpleValue>
          </name>
        </entity>
      </applicability>
      <requirements>
        <attribute cardinality="optional" instructions="Export your internal asset reference as the element Tag.">
          <name>
            <simpleValue>Tag</simpleValue>
          </name>
        </attribute>
      </requirements>
    </specification>
    <specification name="Maintainable assets carry manufacturer information" ifcVersion="IFC4" instructions="Required for handover to the asset maintenance system.">
      <applicability minOccurs="0" maxOccurs="unbounded">
        <entity>
          <name>
            <simpleValue>IFCDISTRIBUTIONELEMENT</simpleValue>
          </name>
        </entity>
      </applicability>
      <requirements>
        <property dataType="IFCLABEL" cardinality="required" instructions="Required for handover to the asset maintenance system.">
          <propertySet>
            <simpleValue>Pset_ManufacturerTypeInformation</simpleValue>
          </propertySet>
          <baseName>
            <simpleValue>Manufacturer</simpleValue>
          </baseName>
        </property>
      </requirements>
    </specification>
  </specifications>
</ids>
