<?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>ISO 19650 baseline information requirements</title>
    <description>A generic openBIM delivery baseline for projects where the client has issued no specification of their own. Every element named; the IFC4 common property sets present on major element types.</description>
    <author>hello@clearifc.com</author>
    <version>1.0</version>
    <date>2026-08-19</date>
    <purpose>Generic openBIM delivery baseline</purpose>
  </info>
  <specifications>
    <specification name="Every wall carries its common property set" ifcVersion="IFC4" instructions="Export Pset_WallCommon from your authoring tool.">
      <applicability minOccurs="0" maxOccurs="unbounded">
        <entity>
          <name>
            <simpleValue>IFCWALL</simpleValue>
          </name>
        </entity>
      </applicability>
      <requirements>
        <property dataType="IFCBOOLEAN" cardinality="required" instructions="Export Pset_WallCommon from your authoring tool.">
          <propertySet>
            <simpleValue>Pset_WallCommon</simpleValue>
          </propertySet>
          <baseName>
            <simpleValue>IsExternal</simpleValue>
          </baseName>
        </property>
      </requirements>
    </specification>
    <specification name="Every wall declares whether it is load bearing" ifcVersion="IFC4">
      <applicability minOccurs="0" maxOccurs="unbounded">
        <entity>
          <name>
            <simpleValue>IFCWALL</simpleValue>
          </name>
        </entity>
      </applicability>
      <requirements>
        <property dataType="IFCBOOLEAN" cardinality="required">
          <propertySet>
            <simpleValue>Pset_WallCommon</simpleValue>
          </propertySet>
          <baseName>
            <simpleValue>LoadBearing</simpleValue>
          </baseName>
        </property>
      </requirements>
    </specification>
    <specification name="Every slab declares whether it is load bearing" ifcVersion="IFC4">
      <applicability minOccurs="0" maxOccurs="unbounded">
        <entity>
          <name>
            <simpleValue>IFCSLAB</simpleValue>
          </name>
        </entity>
      </applicability>
      <requirements>
        <property dataType="IFCBOOLEAN" cardinality="required">
          <propertySet>
            <simpleValue>Pset_SlabCommon</simpleValue>
          </propertySet>
          <baseName>
            <simpleValue>LoadBearing</simpleValue>
          </baseName>
        </property>
      </requirements>
    </specification>
    <specification name="Every door carries a fire rating" ifcVersion="IFC4" instructions="Fire ratings come from the fire engineer's door schedule.">
      <applicability minOccurs="0" maxOccurs="unbounded">
        <entity>
          <name>
            <simpleValue>IFCDOOR</simpleValue>
          </name>
        </entity>
      </applicability>
      <requirements>
        <property dataType="IFCLABEL" cardinality="required" instructions="Fire ratings come from the fire engineer's door schedule.">
          <propertySet>
            <simpleValue>Pset_DoorCommon</simpleValue>
          </propertySet>
          <baseName>
            <simpleValue>FireRating</simpleValue>
          </baseName>
        </property>
      </requirements>
    </specification>
    <specification name="Every storey is named" ifcVersion="IFC4" instructions="Storeys must be named so elements can be filtered by level.">
      <applicability minOccurs="1" maxOccurs="unbounded">
        <entity>
          <name>
            <simpleValue>IFCBUILDINGSTOREY</simpleValue>
          </name>
        </entity>
      </applicability>
      <requirements>
        <attribute cardinality="required" instructions="Storeys must be named so elements can be filtered by level.">
          <name>
            <simpleValue>Name</simpleValue>
          </name>
        </attribute>
      </requirements>
    </specification>
    <specification name="Every space carries a name" ifcVersion="IFC4">
      <applicability minOccurs="0" maxOccurs="unbounded">
        <entity>
          <name>
            <simpleValue>IFCSPACE</simpleValue>
          </name>
        </entity>
      </applicability>
      <requirements>
        <attribute cardinality="required">
          <name>
            <simpleValue>Name</simpleValue>
          </name>
        </attribute>
      </requirements>
    </specification>
  </specifications>
</ids>
