Skip to content

Commit

Permalink
Fixed development IDS files. (#185)
Browse files Browse the repository at this point in the history
* Fixed development IDS files.

Mostly tabs and property datatype capitalization issues.

* Updated ids-tool.CommandLine version for checks.
  • Loading branch information
CBenghi authored Aug 30, 2023
1 parent 0a138e7 commit afb04a1
Show file tree
Hide file tree
Showing 7 changed files with 744 additions and 751 deletions.
85 changes: 43 additions & 42 deletions Development/IDS_ArcDox.ids
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ids:ids xmlns:ids="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 ids.xsd">
<ids:info>
<ids:title>Example for ArcDox </ids:title>
<ids:copyright>buildingSMART International Ltd</ids:copyright>
<ids:date>2022-02-08</ids:date>
</ids:info>
<ids:specifications>
<ids:specification instructions="Add some context here to help users understand what you are asking." ifcVersion="IFC2X3" name="Project requirements" maxOccurs="unbounded">
<ids:applicability>
<ids:entity>
<ids:name>
<ids:simpleValue>IFCPROJECT</ids:simpleValue>
</ids:name>
</ids:entity>
</ids:applicability>
<ids:requirements>
<ids:attribute instructions="Project ID">
<ids:name>
<ids:simpleValue>GlobalId</ids:simpleValue>
</ids:name>
</ids:attribute>
<ids:attribute instructions="Functional Unit (Overall Sq.Metres or Linear Meters etc)">
<ids:ids xmlns:ids="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 ids.xsd">
<ids:info>
<ids:title>Example for ArcDox </ids:title>
<ids:copyright>buildingSMART International Ltd</ids:copyright>
<ids:date>2022-02-08</ids:date>
</ids:info>
<ids:specifications>
<ids:specification instructions="Add some context here to help users understand what you are asking." ifcVersion="IFC2X3" name="Project requirements" maxOccurs="unbounded">
<ids:applicability>
<ids:entity>
<ids:name>
<ids:simpleValue>IFCPROJECT</ids:simpleValue>
</ids:name>
</ids:entity>
</ids:applicability>
<ids:requirements>
<ids:attribute instructions="Project ID">
<ids:name>
<ids:simpleValue>GlobalId</ids:simpleValue>
</ids:name>
</ids:attribute>
<ids:attribute instructions="Functional Unit (Overall Sq.Metres or Linear Meters etc)">
<ids:name>
<ids:simpleValue>UnitsInContext</ids:simpleValue>
</ids:name>
Expand All @@ -30,14 +30,14 @@
<ids:simpleValue>Description</ids:simpleValue>
</ids:name>
</ids:attribute>
<ids:attribute instructions="Project name">
<ids:name>
<ids:simpleValue>Name</ids:simpleValue>
</ids:name>
</ids:attribute>
</ids:requirements>
</ids:specification>
<ids:specification name="name1" minOccurs="1" maxOccurs="unbounded" ifcVersion="IFC2X3">
<ids:attribute instructions="Project name">
<ids:name>
<ids:simpleValue>Name</ids:simpleValue>
</ids:name>
</ids:attribute>
</ids:requirements>
</ids:specification>
<ids:specification name="name1" minOccurs="1" maxOccurs="unbounded" ifcVersion="IFC2X3">
<ids:applicability>
<ids:entity>
<ids:name>
Expand All @@ -46,15 +46,15 @@
</ids:entity>
</ids:applicability>
<ids:requirements>
<ids:property maxOccurs="unbounded" datatype="IfcText">
<ids:property maxOccurs="unbounded" datatype="IFCTEXT">
<ids:propertySet>
<ids:simpleValue>ArcDox</ids:simpleValue>
</ids:propertySet>
<ids:name>
<ids:simpleValue>Function</ids:simpleValue>
</ids:name>
</ids:property>
<ids:property minOccurs="1" maxOccurs="unbounded" datatype="IfcLabel">
<ids:property minOccurs="1" maxOccurs="unbounded" datatype="IFCLABEL">
<ids:propertySet>
<ids:simpleValue>ArcDox</ids:simpleValue>
</ids:propertySet>
Expand All @@ -63,13 +63,13 @@
</ids:name>
<ids:value>
<xs:restriction base="xs:string">
<xs:enumeration value="New Build" />
<xs:enumeration value="Renovation" />
<xs:enumeration value="Etc" />
<xs:enumeration value="New Build"/>
<xs:enumeration value="Renovation"/>
<xs:enumeration value="Etc"/>
</xs:restriction>
</ids:value>
</ids:property>
<ids:property minOccurs="1" maxOccurs="unbounded" datatype="IfcText">
<ids:property minOccurs="1" maxOccurs="unbounded" datatype="IFCTEXT">
<ids:propertySet>
<ids:simpleValue>ArcDox</ids:simpleValue>
</ids:propertySet>
Expand All @@ -78,13 +78,13 @@
</ids:name>
<ids:value>
<xs:restriction base="xs:string">
<xs:enumeration value="Design-Bid-Build" />
<xs:enumeration value="Design-Build-Operate" />
<xs:enumeration value="Etc" />
<xs:enumeration value="Design-Bid-Build"/>
<xs:enumeration value="Design-Build-Operate"/>
<xs:enumeration value="Etc"/>
</xs:restriction>
</ids:value>
</ids:property>
<ids:property maxOccurs="unbounded" datatype="IfcText">
<ids:property maxOccurs="unbounded" datatype="IFCTEXT">
<ids:propertySet>
<ids:simpleValue>ArcDox</ids:simpleValue>
</ids:propertySet>
Expand All @@ -103,7 +103,8 @@
</ids:entity>
</ids:applicability>
<ids:requirements>
<ids:attribute instructions="Add this attribute twice: once for Area Units and once for Linear Units."> <!-- this is actually not the best way to distinguish between types of units. -->
<ids:attribute instructions="Add this attribute twice: once for Area Units and once for Linear Units.">
<!-- this is actually not the best way to distinguish between types of units. -->
<ids:name>
<ids:simpleValue>Units</ids:simpleValue>
</ids:name>
Expand Down Expand Up @@ -170,5 +171,5 @@
</ids:attribute>
</ids:requirements>
</ids:specification>
</ids:specifications>
</ids:specifications>
</ids:ids>
193 changes: 85 additions & 108 deletions Development/IDS_SimpleBIM_examples.ids
Original file line number Diff line number Diff line change
@@ -1,114 +1,91 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ids:ids xmlns:ids="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 ids.xsd">
<ids:info>
<ids:title>SimpleBIM use-case example</ids:title>
</ids:info>
<ids:specifications>
<ids:specification ifcVersion="IFC2X3 IFC4" name="Room requirement 1" description="the model must have rooms, every room must have a name from a list of allowed values, every room must have a (unique) room number" maxOccurs="unbounded">
<ids:applicability>
<ids:entity>
<ids:name>
<ids:simpleValue>IFCSPACE</ids:simpleValue>
</ids:name>
</ids:entity>
<ids:classification>
<ids:value>
<ids:simpleValue>room</ids:simpleValue><!-- this could of course also be a list of things, a pattern, etc.. -->
</ids:value>
</ids:classification>
</ids:applicability>
<ids:requirements>
<ids:attribute>
<ids:name>
<ids:simpleValue>Name</ids:simpleValue>
</ids:name>
<ids:value>
<xs:restriction>
<xs:enumeration value="first allowed value for room"/>
<xs:enumeration value="second allowed value for room"/>
<xs:enumeration value="third allowed value for room"/>
</xs:restriction>
</ids:value>
</ids:attribute>
<ids:property minOccurs="1" maxOccurs="unbounded" datatype="IfcText">
<ids:propertySet>
<ids:simpleValue>MyProject</ids:simpleValue>
</ids:propertySet>
<ids:name>
<ids:simpleValue>Room number</ids:simpleValue>
</ids:name>
<ids:value>
<xs:restriction base="xs:string">
<xs:annotation><xs:documentation>not sure we have a good way of describing 'room needs to have a unique room number'.</xs:documentation>
</xs:annotation>
<xs:pattern value="(A\s?)?(B\s?)?(C\s?)?"/>
</xs:restriction>
</ids:value>
</ids:property>
</ids:requirements>
</ids:specification>
<ids:specification ifcVersion="IFC2X3" name="Wall requirement" description="if the model has walls, each wall must have a wall type" minOccurs="0" maxOccurs="unbounded">
<ids:applicability>
<ids:entity>
<ids:name>
<xs:restriction>
<ids:info>
<ids:title>SimpleBIM use-case example</ids:title>
</ids:info>
<ids:specifications>
<ids:specification ifcVersion="IFC2X3 IFC4" name="Room requirement 1" description="the model must have rooms, every room must have a name from a list of allowed values, every room must have a (unique) room number" maxOccurs="unbounded">
<ids:applicability>
<ids:entity>
<ids:name>
<ids:simpleValue>IFCSPACE</ids:simpleValue>
</ids:name>
</ids:entity>
<ids:classification>
<ids:value>
<ids:simpleValue>room</ids:simpleValue>
<!-- this could of course also be a list of things, a pattern, etc.. -->
</ids:value>
</ids:classification>
</ids:applicability>
<ids:requirements>
<ids:attribute>
<ids:name>
<ids:simpleValue>Name</ids:simpleValue>
</ids:name>
<ids:value>
<xs:restriction>
<xs:enumeration value="first allowed value for room"/>
<xs:enumeration value="second allowed value for room"/>
<xs:enumeration value="third allowed value for room"/>
</xs:restriction>
</ids:value>
</ids:attribute>
<ids:property minOccurs="1" maxOccurs="unbounded" datatype="IFCTEXT">
<ids:propertySet>
<ids:simpleValue>MyProject</ids:simpleValue>
</ids:propertySet>
<ids:name>
<ids:simpleValue>Room number</ids:simpleValue>
</ids:name>
<ids:value>
<xs:restriction base="xs:string">
<xs:annotation>
<xs:documentation>not sure we have a good way of describing 'room needs to have a unique room number'.</xs:documentation>
</xs:annotation>
<xs:pattern value="(A\s?)?(B\s?)?(C\s?)?"/>
</xs:restriction>
</ids:value>
</ids:property>
</ids:requirements>
</ids:specification>
<!-- currently there is no real good way to say 'all walls need to have a type'. An old solution was to state that all walls need to have a property on the 'type' level with any kind of value... This cannot be done now that we hav removed the type source constraint. -->


<ids:specification name="External wall requirement" ifcVersion="IFC2X3" description="if the model has exterior walls, each exterior wall must have a u-value" minOccurs="0" maxOccurs="unbounded">
<ids:applicability>
<ids:entity>
<ids:name>
<xs:restriction>
<xs:annotation>
<xs:documentation>This goed for either 'IFCWALL' ór 'IFCWALLSTANDARDCASE'</xs:documentation>
</xs:annotation>
<xs:pattern value="IFCWALL|IFCWALLSTANDARDCASE"/>
</xs:restriction>
</ids:name>
</ids:entity>
</ids:applicability>
<ids:requirements>
<ids:property minOccurs="1" maxOccurs="unbounded" datatype="IfcText"> <!-- currently there is no real good way to say 'all walls need to have a type'. This solution is to state that all walls need to have a property on the 'type' level with any kind of value. Not nice, but currently no alternativel. -->
<ids:propertySet>
<xs:restriction>
<xs:annotation><xs:documentation>Any value is allowed</xs:documentation></xs:annotation>
<xs:pattern value=".*"/>
</xs:restriction>
</ids:propertySet>
<ids:name>
<xs:restriction>
<xs:annotation><xs:documentation>Any value is allowed</xs:documentation></xs:annotation>
<xs:pattern value=".*"/>
</xs:restriction>
</ids:name>
</ids:property>
</ids:requirements>
</ids:specification>
<ids:specification name="External wall requirement" ifcVersion="IFC2X3" description="if the model has exterior walls, each exterior wall must have a u-value" minOccurs="0" maxOccurs="unbounded">
<ids:applicability>
<ids:entity>
<ids:name>
<xs:restriction>
<xs:annotation><xs:documentation>This goed for either 'IFCWALL' ór 'IFCWALLSTANDARDCASE'</xs:documentation></xs:annotation>
<xs:pattern value="IFCWALL|IFCWALLSTANDARDCASE"/>
</xs:restriction>
</ids:name>
</ids:entity>
<ids:property datatype="IfcText">
<ids:propertySet>
<ids:simpleValue>Pset_WallCommon</ids:simpleValue>
</ids:propertySet>
<ids:name>
<ids:simpleValue>IsExternal</ids:simpleValue>
</ids:name>
<ids:value>
<ids:simpleValue>TRUE</ids:simpleValue>
</ids:value>
</ids:property>
</ids:applicability>
<ids:requirements>
<ids:property maxOccurs="unbounded" datatype="">
<ids:propertySet>
<ids:simpleValue>Pset_WallCommon</ids:simpleValue>
</ids:propertySet>
<ids:name>
<ids:simpleValue>ThermalTransmittance</ids:simpleValue>
</ids:name>
</ids:property>
</ids:requirements>
</ids:specification>
</ids:specifications>
<xs:pattern value="IFCWALL|IFCWALLSTANDARDCASE"/>
</xs:restriction>
</ids:name>
</ids:entity>
<ids:property datatype="IFCBOOLEAN">
<ids:propertySet>
<ids:simpleValue>Pset_WallCommon</ids:simpleValue>
</ids:propertySet>
<ids:name>
<ids:simpleValue>IsExternal</ids:simpleValue>
</ids:name>
<ids:value>
<ids:simpleValue>TRUE</ids:simpleValue>
</ids:value>
</ids:property>
</ids:applicability>
<ids:requirements>
<ids:property maxOccurs="unbounded" datatype="">
<ids:propertySet>
<ids:simpleValue>Pset_WallCommon</ids:simpleValue>
</ids:propertySet>
<ids:name>
<ids:simpleValue>ThermalTransmittance</ids:simpleValue>
</ids:name>
</ids:property>
</ids:requirements>
</ids:specification>
</ids:specifications>
</ids:ids>
4 changes: 2 additions & 2 deletions Development/IDS_random_example.ids
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
</ids:classification>
</ids:applicability>
<ids:requirements>
<ids:property minOccurs="1" maxOccurs="unbounded" datatype="IfcLengthMeasure">
<ids:property minOccurs="1" maxOccurs="unbounded" datatype="IFCLENGTHMEASURE">
<ids:propertySet>
<ids:simpleValue>attribute</ids:simpleValue>
</ids:propertySet>
Expand All @@ -87,7 +87,7 @@
</xs:restriction>
</ids:value>
</ids:property>
<ids:property minOccurs="1" maxOccurs="unbounded" datatype="IfcText" uri="http://identifier.buildingsmart.org/uri/dummy-example/FireRating">
<ids:property minOccurs="1" maxOccurs="unbounded" datatype="IFCTEXT" uri="http://identifier.buildingsmart.org/uri/dummy-example/FireRating">
<ids:propertySet>
<ids:simpleValue>AedesUVIP</ids:simpleValue>
</ids:propertySet>
Expand Down
Loading

0 comments on commit afb04a1

Please sign in to comment.