Skip to content

Commit 24d01a1

Browse files
authored
Dev/documentation (#158)
* Fixed examples * Fixed development files - Corrected inconsistent measures - added predefinedType entity example. * updated audit tool version * Improved action specification
1 parent e182ab1 commit 24d01a1

8 files changed

+160
-131
lines changed

.github/workflows/check-test-cases.yml

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1+
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
2+
13
name: check-test-cases
24

35
on:
6+
workflow_dispatch: # Allow running the workflow manually from the GitHub UI
47
push:
5-
paths:
6-
- "Development/**"
7-
- "build/**"
8-
- "Documentation/**"
8+
branches: [ "master" ] # Run the workflow when pushing to the main branch
9+
pull_request:
10+
branches: [ "*" ] # Run the workflow for all pull requests
911

1012
jobs:
1113
check-test-cases:

Development/IDS_SimpleBIM_examples.ids

+3-3
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
</ids:entity>
6262
</ids:applicability>
6363
<ids:requirements>
64-
<ids:property minOccurs="1" maxOccurs="unbounded" measure="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. -->
64+
<ids:property minOccurs="1" maxOccurs="unbounded"> <!-- 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. -->
6565
<ids:propertySet>
6666
<xs:restriction>
6767
<xs:annotation><xs:documentation>Any value is allowed</xs:documentation></xs:annotation>
@@ -77,7 +77,7 @@
7777
</ids:property>
7878
</ids:requirements>
7979
</ids:specification>
80-
<ids:specification name="Exterial wall requirement" ifcVersion="IFC2X3" description="if the model has exterior walls, each exterior wall must have a u-value" minOccurs="0" maxOccurs="unbounded">
80+
<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">
8181
<ids:applicability>
8282
<ids:entity>
8383
<ids:name>
@@ -87,7 +87,7 @@
8787
</xs:restriction>
8888
</ids:name>
8989
</ids:entity>
90-
<ids:property measure="IfcText">
90+
<ids:property>
9191
<ids:propertySet>
9292
<ids:simpleValue>Pset_WallCommon</ids:simpleValue>
9393
</ids:propertySet>

Development/IDS_demo_BIM-basis-ILS.ids

+3-3
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@
122122
<xs:enumeration value="IFCBEAM" />
123123
<xs:enumeration value="IFCBEAMSTANDARDCASE" />
124124
<xs:enumeration value="IFCBOILER" />
125-
<xs:enumeration value="IFCBUILDINGELEMENT" />
125+
<!-- <xs:enumeration value="IFCBUILDINGELEMENT" /> this is invalid because abstract -->
126126
<xs:enumeration value="IFCBUILDINGELEMENTPART" />
127127
<xs:enumeration value="IFCBUILDINGELEMENTPROXY" />
128128
<xs:enumeration value="IFCBURNER" />
@@ -162,7 +162,7 @@
162162
<xs:enumeration value="IFCELECTRICMOTOR" />
163163
<xs:enumeration value="IFCELECTRICTIMECONTROL" />
164164
<xs:enumeration value="IFCELEMENTASSEMBLY" />
165-
<xs:enumeration value="IFCELEMENTCOMPONENT" />
165+
<!-- <xs:enumeration value="IFCELEMENTCOMPONENT" /> this is invalid because abstract -->
166166
<xs:enumeration value="IFCENERGYCONVERSIONDEVICE" />
167167
<xs:enumeration value="IFCENGINE" />
168168
<xs:enumeration value="IFCEVAPORATIVECOOLER" />
@@ -210,7 +210,7 @@
210210
<xs:enumeration value="IFCRAMP" />
211211
<xs:enumeration value="IFCRAMPFLIGHT" />
212212
<xs:enumeration value="IFCREINFORCINGBAR" />
213-
<xs:enumeration value="IFCREINFORCINGELEMENT" />
213+
<!-- <xs:enumeration value="IFCREINFORCINGELEMENT" /> this is invalid because abstract -->
214214
<xs:enumeration value="IFCREINFORCINGMESH" />
215215
<xs:enumeration value="IFCROOF" />
216216
<xs:enumeration value="IFCSANITARYTERMINAL" />

Development/IDS_random_example.ids

+123-118
Original file line numberDiff line numberDiff line change
@@ -1,121 +1,126 @@
11
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
22
<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 http://standards.buildingsmart.org/IDS/ids_09.xsd">
3-
<ids:info>
4-
<ids:title>random example to show technical capabilities and usage</ids:title>
5-
<ids:copyright>buildingSMART International Ltd</ids:copyright>
6-
<ids:date>2021-09-17</ids:date>
7-
</ids:info>
8-
<ids:specifications>
9-
<ids:specification ifcVersion="IFC2X3 IFC4" name="binder" maxOccurs="unbounded">
10-
<ids:applicability>
11-
<ids:entity>
12-
<ids:name>
13-
<xs:restriction base="xs:string">
14-
<xs:pattern value="IFCCOVERING"/> <!-- only 'IFCCOVERING' is allowed -->
15-
<!-- <xs:length value="11"/> --> <!-- removed for clarity, is the rule in and/or with the other? Because of Enums it should be in `or` -->
16-
</xs:restriction>
17-
</ids:name>
18-
<ids:predefinedType>
19-
<ids:simpleValue>CLADDING</ids:simpleValue>
20-
</ids:predefinedType>
21-
</ids:entity>
22-
</ids:applicability>
23-
<ids:requirements>
24-
<ids:property minOccurs="1" maxOccurs="unbounded" measure="IfcText">
25-
<ids:propertySet>
26-
<xs:restriction>
27-
<xs:annotation><xs:documentation>String should start with 'anas' but can have anything behind it (including nothing). For example 'anas example', 'anasabc', 'anas', 'anas demo', etc.</xs:documentation>
28-
</xs:annotation>
29-
<xs:pattern value="anas.*"/>
30-
</xs:restriction>
31-
</ids:propertySet>
32-
<ids:name>
33-
<ids:simpleValue>Anax</ids:simpleValue>
34-
</ids:name>
35-
<ids:value>
36-
<ids:simpleValue>yes</ids:simpleValue>
37-
</ids:value>
38-
</ids:property>
39-
<ids:material minOccurs="1" maxOccurs="unbounded">
40-
<ids:value>
41-
<xs:restriction base="xs:string">
42-
<xs:annotation><xs:documentation>The only acceptable value is TWO of the UPPERCASE letters from a to z. For example 'aa', 'ab', 'si', etc.</xs:documentation>
43-
</xs:annotation>
44-
<xs:pattern value="[A-Z][A-Z]"/>
45-
</xs:restriction>
46-
</ids:value>
47-
</ids:material>
48-
</ids:requirements>
49-
</ids:specification>
50-
<ids:specification ifcVersion="IFC2X3 IFC4X3" name="ramen" minOccurs="0" maxOccurs="unbounded">
51-
<ids:applicability>
52-
<ids:entity>
53-
<ids:name>
54-
<ids:simpleValue>IFCWINDOW</ids:simpleValue>
55-
</ids:name>
56-
</ids:entity>
57-
<ids:classification>
58-
<ids:value>
59-
<xs:restriction base="xs:string">
60-
<xs:annotation><xs:documentation>The value should be a number; a dot; another number. For example '1.1', '2.4', etc.</xs:documentation>
61-
</xs:annotation>
62-
<xs:pattern value="[0-9]\.[0-9]"/>
63-
</xs:restriction>
64-
</ids:value>
65-
<ids:system>
66-
<ids:simpleValue>NL-Sfb</ids:simpleValue>
67-
</ids:system>
68-
</ids:classification>
69-
</ids:applicability>
70-
<ids:requirements>
71-
<ids:property minOccurs="1" maxOccurs="unbounded" measure="IfcLengthMeasure">
72-
<ids:propertySet>
73-
<ids:simpleValue>attribute</ids:simpleValue>
74-
</ids:propertySet>
75-
<ids:name>
76-
<ids:simpleValue>OverallWidth</ids:simpleValue>
77-
</ids:name>
78-
<ids:value>
79-
<xs:restriction>
80-
<xs:minInclusive value="0"/>
81-
<xs:maxInclusive value="120"/>
82-
</xs:restriction>
83-
</ids:value>
84-
</ids:property>
85-
<ids:property minOccurs="1" maxOccurs="unbounded" measure="IfcText" uri="http://identifier.buildingsmart.org/uri/dummy-example/FireRating">
86-
<ids:propertySet>
87-
<ids:simpleValue>AedesUVIP</ids:simpleValue>
88-
</ids:propertySet>
89-
<ids:name>
90-
<ids:simpleValue>FireRating</ids:simpleValue>
91-
</ids:name>
92-
<ids:value>
93-
<xs:restriction base="xs:string">
94-
<xs:enumeration value="30">
95-
<xs:annotation>
96-
<xs:documentation>
97-
<Label xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Thirty minutes</Label>
98-
</xs:documentation>
99-
</xs:annotation>
100-
</xs:enumeration>
101-
<xs:enumeration value="60">
102-
<xs:annotation>
103-
<xs:documentation>
104-
<Label xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sixty minutes</Label>
105-
</xs:documentation>
106-
</xs:annotation>
107-
</xs:enumeration>
108-
<xs:enumeration value="90">
109-
<xs:annotation>
110-
<xs:documentation>
111-
<Label xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Ninty minutes</Label>
112-
</xs:documentation>
113-
</xs:annotation>
114-
</xs:enumeration>
115-
</xs:restriction>
116-
</ids:value>
117-
</ids:property>
118-
</ids:requirements>
119-
</ids:specification>
120-
</ids:specifications>
3+
<ids:info>
4+
<ids:title>random example to show technical capabilities and usage</ids:title>
5+
<ids:copyright>buildingSMART International Ltd</ids:copyright>
6+
<ids:date>2021-09-17</ids:date>
7+
</ids:info>
8+
<ids:specifications>
9+
<ids:specification ifcVersion="IFC2X3 IFC4" name="binder" maxOccurs="unbounded">
10+
<ids:applicability>
11+
<ids:entity>
12+
<ids:name>
13+
<xs:restriction base="xs:string">
14+
<xs:pattern value="IFCCOVERING"/>
15+
<!-- only 'IFCCOVERING' is allowed -->
16+
<!-- <xs:length value="11"/> -->
17+
<!-- removed for clarity, is the rule in and/or with the other? Because of Enums it should be in `or` -->
18+
</xs:restriction>
19+
</ids:name>
20+
<ids:predefinedType>
21+
<ids:simpleValue>CLADDING</ids:simpleValue>
22+
</ids:predefinedType>
23+
</ids:entity>
24+
</ids:applicability>
25+
<ids:requirements>
26+
<ids:property minOccurs="1" maxOccurs="unbounded" measure="IfcText">
27+
<ids:propertySet>
28+
<xs:restriction>
29+
<xs:annotation>
30+
<xs:documentation>String should start with 'anas' but can have anything behind it (including nothing). For example 'anas example', 'anasabc', 'anas', 'anas demo', etc.</xs:documentation>
31+
</xs:annotation>
32+
<xs:pattern value="anas.*"/>
33+
</xs:restriction>
34+
</ids:propertySet>
35+
<ids:name>
36+
<ids:simpleValue>Anax</ids:simpleValue>
37+
</ids:name>
38+
<ids:value>
39+
<ids:simpleValue>yes</ids:simpleValue>
40+
</ids:value>
41+
</ids:property>
42+
<ids:material minOccurs="1" maxOccurs="unbounded">
43+
<ids:value>
44+
<xs:restriction base="xs:string">
45+
<xs:annotation>
46+
<xs:documentation>The only acceptable value is TWO of the UPPERCASE letters from a to z. For example 'aa', 'ab', 'si', etc.</xs:documentation>
47+
</xs:annotation>
48+
<xs:pattern value="[A-Z][A-Z]"/>
49+
</xs:restriction>
50+
</ids:value>
51+
</ids:material>
52+
</ids:requirements>
53+
</ids:specification>
54+
<ids:specification ifcVersion="IFC2X3 IFC4X3" name="ramen" minOccurs="0" maxOccurs="unbounded">
55+
<ids:applicability>
56+
<ids:entity>
57+
<ids:name>
58+
<ids:simpleValue>IFCWINDOW</ids:simpleValue>
59+
</ids:name>
60+
</ids:entity>
61+
<ids:classification>
62+
<ids:value>
63+
<xs:restriction base="xs:string">
64+
<xs:annotation>
65+
<xs:documentation>The value should be a number; a dot; another number. For example '1.1', '2.4', etc.</xs:documentation>
66+
</xs:annotation>
67+
<xs:pattern value="[0-9]\.[0-9]"/>
68+
</xs:restriction>
69+
</ids:value>
70+
<ids:system>
71+
<ids:simpleValue>NL-Sfb</ids:simpleValue>
72+
</ids:system>
73+
</ids:classification>
74+
</ids:applicability>
75+
<ids:requirements>
76+
<ids:property minOccurs="1" maxOccurs="unbounded" measure="IfcLengthMeasure">
77+
<ids:propertySet>
78+
<ids:simpleValue>attribute</ids:simpleValue>
79+
</ids:propertySet>
80+
<ids:name>
81+
<ids:simpleValue>OverallWidth</ids:simpleValue>
82+
</ids:name>
83+
<ids:value>
84+
<xs:restriction>
85+
<xs:minInclusive value="0"/>
86+
<xs:maxInclusive value="120"/>
87+
</xs:restriction>
88+
</ids:value>
89+
</ids:property>
90+
<ids:property minOccurs="1" maxOccurs="unbounded" measure="IfcText" uri="http://identifier.buildingsmart.org/uri/dummy-example/FireRating">
91+
<ids:propertySet>
92+
<ids:simpleValue>AedesUVIP</ids:simpleValue>
93+
</ids:propertySet>
94+
<ids:name>
95+
<ids:simpleValue>FireRating</ids:simpleValue>
96+
</ids:name>
97+
<ids:value>
98+
<xs:restriction base="xs:string">
99+
<xs:enumeration value="30">
100+
<xs:annotation>
101+
<xs:documentation>
102+
<Label xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Thirty minutes</Label>
103+
</xs:documentation>
104+
</xs:annotation>
105+
</xs:enumeration>
106+
<xs:enumeration value="60">
107+
<xs:annotation>
108+
<xs:documentation>
109+
<Label xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sixty minutes</Label>
110+
</xs:documentation>
111+
</xs:annotation>
112+
</xs:enumeration>
113+
<xs:enumeration value="90">
114+
<xs:annotation>
115+
<xs:documentation>
116+
<Label xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Ninty minutes</Label>
117+
</xs:documentation>
118+
</xs:annotation>
119+
</xs:enumeration>
120+
</xs:restriction>
121+
</ids:value>
122+
</ids:property>
123+
</ids:requirements>
124+
</ids:specification>
125+
</ids:specifications>
121126
</ids:ids>

Development/IDS_ucms_prefab_pipes_IFC2x3.ids

+1-1
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@
115115
</ids:entity>
116116
</ids:applicability>
117117
<ids:requirements>
118-
<ids:property minOccurs="1" maxOccurs="unbounded" measure="IfcText" uri="http://identifier.buildingsmart.org/uri/buildingsmart/ifc-4.3/prop/Manufacturer">
118+
<ids:property minOccurs="1" maxOccurs="unbounded" measure="IfcLabel" uri="http://identifier.buildingsmart.org/uri/buildingsmart/ifc-4.3/prop/Manufacturer">
119119
<ids:propertySet>
120120
<ids:simpleValue>Pset_ManufacturerTypeInformation</ids:simpleValue>
121121
</ids:propertySet>

Development/IDS_ucms_prefab_pipes_IFC4.3.ids

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
</ids:entity>
2121
</ids:applicability>
2222
<ids:requirements>
23-
<ids:property minOccurs="1" maxOccurs="unbounded" measure="IfcText" uri="http://identifier.buildingsmart.org/uri/buildingsmart/ifc-4.3/prop/manufacturer">
23+
<ids:property minOccurs="1" maxOccurs="unbounded" measure="IfcLabel" uri="http://identifier.buildingsmart.org/uri/buildingsmart/ifc-4.3/prop/manufacturer">
2424
<ids:propertySet>
2525
<ids:simpleValue>Pset_ManufacturerTypeInformation</ids:simpleValue>
2626
</ids:propertySet>

Development/IDS_wooden-windows.ids

+22
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,28 @@
88
<ids:milestone>Design handover to manufactuer</ids:milestone>
99
</ids:info>
1010
<ids:specifications>
11+
<!-- specification added to have at least one case of predefinedType in the documenetation -->
12+
<ids:specification ifcVersion="IFC2X3" name="PredefinedTypeExample" minOccurs="1" maxOccurs="unbounded">
13+
<ids:applicability>
14+
<ids:entity>
15+
<ids:name>
16+
<ids:simpleValue>IFCMEMBER</ids:simpleValue>
17+
</ids:name>
18+
</ids:entity>
19+
</ids:applicability>
20+
<ids:requirements>
21+
<ids:partOf maxOccurs="unbounded" relation="IfcRelAggregates">
22+
<ids:entity>
23+
<ids:name>
24+
<ids:simpleValue>IFCELEMENTASSEMBLY</ids:simpleValue>
25+
</ids:name>
26+
<ids:predefinedType>
27+
<ids:simpleValue>GIRDER</ids:simpleValue>
28+
</ids:predefinedType>
29+
</ids:entity>
30+
</ids:partOf>
31+
</ids:requirements>
32+
</ids:specification>
1133
<ids:specification ifcVersion="IFC2X3" name="Stijlen en Dorpels" minOccurs="1" maxOccurs="unbounded">
1234
<ids:applicability>
1335
<ids:entity>

build/_build.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
</PropertyGroup>
1212

1313
<ItemGroup>
14-
<PackageReference Include="ids-tool.CommandLine" Version="1.0.11" />
14+
<PackageReference Include="ids-tool.CommandLine" Version="1.0.14" />
1515
<PackageReference Include="Nuke.Common" Version="6.2.1" />
1616
</ItemGroup>
1717

0 commit comments

Comments
 (0)