Github IFC validation and IDS checking
This commit is contained in:
parent
320738a466
commit
f0a6c4f8dd
5 changed files with 325 additions and 4 deletions
88
.github/workflows/ids-lint.yml
vendored
Normal file
88
.github/workflows/ids-lint.yml
vendored
Normal file
|
|
@ -0,0 +1,88 @@
|
||||||
|
name: IDS Compliance Check
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
pull_request:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
ids-lint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: '3.10'
|
||||||
|
|
||||||
|
- name: Install ifctester and idssplit
|
||||||
|
run: |
|
||||||
|
pip install ifctester
|
||||||
|
pip install --no-deps https://github.com/brunopostle/idssplit/releases/download/0.1.0/idssplit-0.1.0-py3-none-any.whl
|
||||||
|
|
||||||
|
- name: Run IDS validations
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
shopt -s globstar nullglob
|
||||||
|
|
||||||
|
if [ ! -d IDS ]; then
|
||||||
|
echo "No IDS/ folder found"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
ids_sources=(IDS/**/*.ids)
|
||||||
|
|
||||||
|
if [ ${#ids_sources[@]} -eq 0 ]; then
|
||||||
|
echo "No IDS files found in IDS/ folder"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
ifc_files=(**/*.ifc)
|
||||||
|
|
||||||
|
if [ ${#ifc_files[@]} -eq 0 ]; then
|
||||||
|
echo "No IFC files found"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p split_ids
|
||||||
|
|
||||||
|
echo "Splitting IDS files..."
|
||||||
|
for ids in "${ids_sources[@]}"; do
|
||||||
|
idssplit "$ids" split_ids/
|
||||||
|
done
|
||||||
|
|
||||||
|
split_ids_files=(split_ids/*.ids)
|
||||||
|
if [ ${#split_ids_files[@]} -eq 0 ]; then
|
||||||
|
echo "No rules found after splitting IDS files"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Running ifctester validations..."
|
||||||
|
failed=0
|
||||||
|
|
||||||
|
for rule_ids in "${split_ids_files[@]}"; do
|
||||||
|
for ifc in "${ifc_files[@]}"; do
|
||||||
|
echo "::group::Test: $rule_ids with $ifc"
|
||||||
|
echo "Testing: $rule_ids with $ifc"
|
||||||
|
output=$(python3 -m ifctester --no-color "$rule_ids" "$ifc" || true)
|
||||||
|
echo "$output"
|
||||||
|
echo "::endgroup::"
|
||||||
|
|
||||||
|
if echo "$output" | grep -q '\[FAIL\]'; then
|
||||||
|
echo "FAIL: $rule_ids with $ifc"
|
||||||
|
failed=1
|
||||||
|
else
|
||||||
|
echo "PASS: $rule_ids with $ifc"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$failed" -ne 0 ]; then
|
||||||
|
echo "One or more validations failed"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "All validations passed"
|
||||||
|
fi
|
||||||
32
.github/workflows/ifc-lint.yml
vendored
Normal file
32
.github/workflows/ifc-lint.yml
vendored
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
name: IFC Validation
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint-ifc:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: '3.x'
|
||||||
|
|
||||||
|
- name: Install ifcopenshell
|
||||||
|
run: |
|
||||||
|
pip install pytest
|
||||||
|
pip install ifcopenshell
|
||||||
|
|
||||||
|
- name: Run IFC lint checks
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
shopt -s globstar nullglob
|
||||||
|
for file in **/*.ifc; do
|
||||||
|
echo "Validating $file..."
|
||||||
|
python3 -m ifcopenshell.validate --rules "$file"
|
||||||
|
done
|
||||||
114
IDS/EN_Basic IDM Check.ids
Normal file
114
IDS/EN_Basic IDM Check.ids
Normal file
|
|
@ -0,0 +1,114 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<ids xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://standards.buildingsmart.org/IDS">
|
||||||
|
<info>
|
||||||
|
<title>EN_Basic IDM Check</title>
|
||||||
|
<description>Example IDS for model validation according to the BIM Basic Information Delivery Manual (IDM)</description>
|
||||||
|
<author>sgolchinfar@bimcollab.com</author>
|
||||||
|
<date>2024-10-29</date>
|
||||||
|
<purpose>Specify a set of agreements that IFC models must meet according to the basic IDM.</purpose>
|
||||||
|
</info>
|
||||||
|
<specifications>
|
||||||
|
<specification name="(3.4) Current use of Entities" description="Run specification to get a list of all IfcBuildingElementProxy elements in your model. It is important to select the most suitable IFC Class for your elements and try to avoid using IfcBuildingElementProxy whenever possible." ifcVersion="IFC2X3 IFC4">
|
||||||
|
<applicability minOccurs="0">
|
||||||
|
<entity>
|
||||||
|
<name>
|
||||||
|
<simpleValue>IFCBUILDINGELEMENTPROXY</simpleValue>
|
||||||
|
</name>
|
||||||
|
</entity>
|
||||||
|
</applicability>
|
||||||
|
<requirements>
|
||||||
|
<attribute>
|
||||||
|
<name>
|
||||||
|
<simpleValue>GlobalId</simpleValue>
|
||||||
|
</name>
|
||||||
|
<value>
|
||||||
|
<simpleValue>?</simpleValue>
|
||||||
|
</value>
|
||||||
|
</attribute>
|
||||||
|
</requirements>
|
||||||
|
</specification>
|
||||||
|
<specification name="(4.5) Fire Safety" description="Ensures that the FireRating values are adequate for internal, load-bearing walls [ 1. Use the sections 'Property set' and 'Property name' in case you would like to modify the elements to examine. In this case, we look for internal, load-bearing wall elements. 2. In the 'Value' field, indicate the FireRating required ]" ifcVersion="IFC2X3 IFC4">
|
||||||
|
<applicability minOccurs="0">
|
||||||
|
<property>
|
||||||
|
<propertySet>
|
||||||
|
<simpleValue>Pset_WallCommon</simpleValue>
|
||||||
|
</propertySet>
|
||||||
|
<baseName>
|
||||||
|
<simpleValue>IsExternal</simpleValue>
|
||||||
|
</baseName>
|
||||||
|
<value>
|
||||||
|
<simpleValue>False</simpleValue>
|
||||||
|
</value>
|
||||||
|
</property>
|
||||||
|
<property>
|
||||||
|
<propertySet>
|
||||||
|
<simpleValue>Pset_WallCommon</simpleValue>
|
||||||
|
</propertySet>
|
||||||
|
<baseName>
|
||||||
|
<simpleValue>LoadBearing</simpleValue>
|
||||||
|
</baseName>
|
||||||
|
<value>
|
||||||
|
<simpleValue>True</simpleValue>
|
||||||
|
</value>
|
||||||
|
</property>
|
||||||
|
</applicability>
|
||||||
|
<requirements>
|
||||||
|
<property>
|
||||||
|
<propertySet>
|
||||||
|
<simpleValue>Pset_WallCommon</simpleValue>
|
||||||
|
</propertySet>
|
||||||
|
<baseName>
|
||||||
|
<simpleValue>FireRating</simpleValue>
|
||||||
|
</baseName>
|
||||||
|
<value>
|
||||||
|
<simpleValue>30</simpleValue>
|
||||||
|
</value>
|
||||||
|
</property>
|
||||||
|
</requirements>
|
||||||
|
</specification>
|
||||||
|
<specification name="(4.6) Building Physics Properties (Thermal Transmitance)" description="Check the presence of building physics properties in the selected elements. Here we test if the ThermalTransmittance (U-value) values are defined for wall elements. Other examples of common building physics properties are AcousticRating (soundproofing), SolarHeatGainTransmittance (SGGC value), and Translucency (light transmission) [ 1. Use the sections 'Property set' and 'Property Name' to modify the IFC Class and building physics properties to examine ]" ifcVersion="IFC2X3 IFC4">
|
||||||
|
<applicability minOccurs="0">
|
||||||
|
<property>
|
||||||
|
<propertySet>
|
||||||
|
<simpleValue>Pset_WallCommon</simpleValue>
|
||||||
|
</propertySet>
|
||||||
|
<baseName>
|
||||||
|
<simpleValue>IsExternal</simpleValue>
|
||||||
|
</baseName>
|
||||||
|
<value>
|
||||||
|
<simpleValue>True</simpleValue>
|
||||||
|
</value>
|
||||||
|
</property>
|
||||||
|
</applicability>
|
||||||
|
<requirements>
|
||||||
|
<property>
|
||||||
|
<propertySet>
|
||||||
|
<simpleValue>Pset_WallCommon</simpleValue>
|
||||||
|
</propertySet>
|
||||||
|
<baseName>
|
||||||
|
<simpleValue>Thermal Transmitance</simpleValue>
|
||||||
|
</baseName>
|
||||||
|
</property>
|
||||||
|
</requirements>
|
||||||
|
</specification>
|
||||||
|
<specification name="(4.8) Project specific properties" description="Determine if custom properties defined by your project requirements are present in the selected elements [ 1. Use the 'IFC Element' section to select the IFC class you would like to test. 2. Modify the values of 'Property set' and 'Property name' to indicate your custom properties ]" ifcVersion="IFC2X3 IFC4">
|
||||||
|
<applicability minOccurs="0">
|
||||||
|
<entity>
|
||||||
|
<name>
|
||||||
|
<simpleValue>IFCFLOWSEGMENT</simpleValue>
|
||||||
|
</name>
|
||||||
|
</entity>
|
||||||
|
</applicability>
|
||||||
|
<requirements>
|
||||||
|
<property>
|
||||||
|
<propertySet>
|
||||||
|
<simpleValue>AC_Pset_RenovationAndPhasing</simpleValue>
|
||||||
|
</propertySet>
|
||||||
|
<baseName>
|
||||||
|
<simpleValue>Renovation Status</simpleValue>
|
||||||
|
</baseName>
|
||||||
|
</property>
|
||||||
|
</requirements>
|
||||||
|
</specification>
|
||||||
|
</specifications>
|
||||||
|
</ids>
|
||||||
81
IDS/IDS_random_example.ids
Normal file
81
IDS/IDS_random_example.ids
Normal file
|
|
@ -0,0 +1,81 @@
|
||||||
|
<?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 http://standards.buildingsmart.org/IDS/1.0/ids.xsd">
|
||||||
|
<ids:info>
|
||||||
|
<ids:title>random example to show technical capabilities and usage</ids:title>
|
||||||
|
<ids:copyright>buildingSMART International Ltd</ids:copyright>
|
||||||
|
<ids:date>2021-09-17</ids:date>
|
||||||
|
</ids:info>
|
||||||
|
<ids:specifications>
|
||||||
|
<ids:specification ifcVersion="IFC2X3 IFC4X3_ADD2" name="ramen">
|
||||||
|
<ids:applicability minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<ids:entity>
|
||||||
|
<ids:name>
|
||||||
|
<ids:simpleValue>IFCWINDOW</ids:simpleValue>
|
||||||
|
</ids:name>
|
||||||
|
</ids:entity>
|
||||||
|
<ids:classification>
|
||||||
|
<ids:value>
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>The value should be a number; a dot; another number. For example '1.1', '2.4', etc.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:pattern value="[0-9]\.[0-9]"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</ids:value>
|
||||||
|
<ids:system>
|
||||||
|
<ids:simpleValue>NL-Sfb</ids:simpleValue>
|
||||||
|
</ids:system>
|
||||||
|
</ids:classification>
|
||||||
|
</ids:applicability>
|
||||||
|
<ids:requirements>
|
||||||
|
<ids:property dataType="IFCLENGTHMEASURE">
|
||||||
|
<ids:propertySet>
|
||||||
|
<ids:simpleValue>attribute</ids:simpleValue>
|
||||||
|
</ids:propertySet>
|
||||||
|
<ids:baseName>
|
||||||
|
<ids:simpleValue>OverallWidth</ids:simpleValue>
|
||||||
|
</ids:baseName>
|
||||||
|
<ids:value>
|
||||||
|
<xs:restriction base="xs:double">
|
||||||
|
<xs:minInclusive value="0"/>
|
||||||
|
<xs:maxInclusive value="120"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</ids:value>
|
||||||
|
</ids:property>
|
||||||
|
<ids:property dataType="IFCTEXT" uri="http://identifier.buildingsmart.org/uri/dummy-example/FireRating">
|
||||||
|
<ids:propertySet>
|
||||||
|
<ids:simpleValue>AedesUVIP</ids:simpleValue>
|
||||||
|
</ids:propertySet>
|
||||||
|
<ids:baseName>
|
||||||
|
<ids:simpleValue>FireRating</ids:simpleValue>
|
||||||
|
</ids:baseName>
|
||||||
|
<ids:value>
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="30">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
<xs:Label xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Thirty minutes</xs:Label>
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:enumeration>
|
||||||
|
<xs:enumeration value="60">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
<xs:Label xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Sixty minutes</xs:Label>
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:enumeration>
|
||||||
|
<xs:enumeration value="90">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
<xs:Label xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Ninety minutes</xs:Label>
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:enumeration>
|
||||||
|
</xs:restriction>
|
||||||
|
</ids:value>
|
||||||
|
</ids:property>
|
||||||
|
</ids:requirements>
|
||||||
|
</ids:specification>
|
||||||
|
</ids:specifications>
|
||||||
|
</ids:ids>
|
||||||
14
model.ifc
14
model.ifc
|
|
@ -1,7 +1,7 @@
|
||||||
ISO-10303-21;
|
ISO-10303-21;
|
||||||
HEADER;
|
HEADER;
|
||||||
FILE_DESCRIPTION(('ViewDefinition[DesignTransferView]'),'2;1');
|
FILE_DESCRIPTION(('ViewDefinition[DesignTransferView]'),'2;1');
|
||||||
FILE_NAME('model.ifc','2025-02-06T22:16:33+00:00',('',''),('',''),'IfcOpenShell 0.0.0','Bonsai 0.0.0','Nobody');
|
FILE_NAME('model.ifc','2025-10-17T10:31:20+01:00',('',''),('',''),'IfcOpenShell 0.0.0','Bonsai 0.0.0','Nobody');
|
||||||
FILE_SCHEMA(('IFC4'));
|
FILE_SCHEMA(('IFC4'));
|
||||||
ENDSEC;
|
ENDSEC;
|
||||||
DATA;
|
DATA;
|
||||||
|
|
@ -8517,7 +8517,7 @@ DATA;
|
||||||
#35959=IFCPOLYGONALFACESET(#35945,$,(#35946,#35947,#35948,#35949,#35950,#35951,#35952,#35953,#35954,#35955,#35956,#35957,#35958),$);
|
#35959=IFCPOLYGONALFACESET(#35945,$,(#35946,#35947,#35948,#35949,#35950,#35951,#35952,#35953,#35954,#35955,#35956,#35957,#35958),$);
|
||||||
#35960=IFCGROUP('3NpCHi67PBu9TmvZGd4Pbn',$,'BBIM_Linked_Aggregate',$,$);
|
#35960=IFCGROUP('3NpCHi67PBu9TmvZGd4Pbn',$,'BBIM_Linked_Aggregate',$,$);
|
||||||
#35961=IFCRELASSIGNSTOGROUP('2YO79r$sH2qu3t6d1iy2r4',$,$,$,(#39529,#35843,#38874),$,#35960);
|
#35961=IFCRELASSIGNSTOGROUP('2YO79r$sH2qu3t6d1iy2r4',$,$,$,(#39529,#35843,#38874),$,#35960);
|
||||||
#35962=IFCPROPERTYSET('1pXbg_yYr7KPmJi1htT7g2',$,'BBIM_Linked_Aggregate',$,(#35964));
|
#35962=IFCPROPERTYSET('1pXbg_yYr7KPmJi1htT7g2',$,'BBIM_Linked_Aggregate',$,(#35964,#41306,#41307));
|
||||||
#35963=IFCRELDEFINESBYPROPERTIES('1x8EvK_VvDFxpvkkdgg$w_',$,$,$,(#35843),#35962);
|
#35963=IFCRELDEFINESBYPROPERTIES('1x8EvK_VvDFxpvkkdgg$w_',$,$,$,(#35843),#35962);
|
||||||
#35964=IFCPROPERTYSINGLEVALUE('Index',$,IFCINTEGER(0),$);
|
#35964=IFCPROPERTYSINGLEVALUE('Index',$,IFCINTEGER(0),$);
|
||||||
#35965=IFCPROPERTYSET('1YPtSHUJ9B_B9lz7ppy7yK',$,'BBIM_Linked_Aggregate',$,(#35967));
|
#35965=IFCPROPERTYSET('1YPtSHUJ9B_B9lz7ppy7yK',$,'BBIM_Linked_Aggregate',$,(#35967));
|
||||||
|
|
@ -8956,7 +8956,7 @@ DATA;
|
||||||
#39166=IFCPROPERTYSET('16fgijRGH0wQ4w9kJF$$Vr',$,'BBIM_Linked_Aggregate',$,(#39168));
|
#39166=IFCPROPERTYSET('16fgijRGH0wQ4w9kJF$$Vr',$,'BBIM_Linked_Aggregate',$,(#39168));
|
||||||
#39167=IFCRELDEFINESBYPROPERTIES('2PlGVQ7pjEvw7E$79txECs',$,$,$,(#38849),#39166);
|
#39167=IFCRELDEFINESBYPROPERTIES('2PlGVQ7pjEvw7E$79txECs',$,$,$,(#38849),#39166);
|
||||||
#39168=IFCPROPERTYSINGLEVALUE('Index',$,IFCINTEGER(2),$);
|
#39168=IFCPROPERTYSINGLEVALUE('Index',$,IFCINTEGER(2),$);
|
||||||
#39169=IFCPROPERTYSET('12Npe0f6D0_BsrIZtUisSy',$,'BBIM_Linked_Aggregate',$,(#39171));
|
#39169=IFCPROPERTYSET('12Npe0f6D0_BsrIZtUisSy',$,'BBIM_Linked_Aggregate',$,(#39171,#41308,#41309));
|
||||||
#39170=IFCRELDEFINESBYPROPERTIES('3GCIzzBb9ERx0AKtY_QKod',$,$,$,(#38874),#39169);
|
#39170=IFCRELDEFINESBYPROPERTIES('3GCIzzBb9ERx0AKtY_QKod',$,$,$,(#38874),#39169);
|
||||||
#39171=IFCPROPERTYSINGLEVALUE('Index',$,IFCINTEGER(0),$);
|
#39171=IFCPROPERTYSINGLEVALUE('Index',$,IFCINTEGER(0),$);
|
||||||
#39172=IFCPROPERTYSET('1O3gul9Gf0UfQIHuaY$zu$',$,'BBIM_Linked_Aggregate',$,(#39174));
|
#39172=IFCPROPERTYSET('1O3gul9Gf0UfQIHuaY$zu$',$,'BBIM_Linked_Aggregate',$,(#39174));
|
||||||
|
|
@ -9356,7 +9356,7 @@ DATA;
|
||||||
#39821=IFCPROPERTYSET('3Bi4nPYrP86AQT5N7Cp5sX',$,'BBIM_Linked_Aggregate',$,(#39823));
|
#39821=IFCPROPERTYSET('3Bi4nPYrP86AQT5N7Cp5sX',$,'BBIM_Linked_Aggregate',$,(#39823));
|
||||||
#39822=IFCRELDEFINESBYPROPERTIES('1tOefteVD2UxoFC3U7Jb9l',$,$,$,(#39504),#39821);
|
#39822=IFCRELDEFINESBYPROPERTIES('1tOefteVD2UxoFC3U7Jb9l',$,$,$,(#39504),#39821);
|
||||||
#39823=IFCPROPERTYSINGLEVALUE('Index',$,IFCINTEGER(2),$);
|
#39823=IFCPROPERTYSINGLEVALUE('Index',$,IFCINTEGER(2),$);
|
||||||
#39824=IFCPROPERTYSET('3lpBAgbw58qfyNULP3a8nO',$,'BBIM_Linked_Aggregate',$,(#39826));
|
#39824=IFCPROPERTYSET('3lpBAgbw58qfyNULP3a8nO',$,'BBIM_Linked_Aggregate',$,(#39826,#41304,#41305));
|
||||||
#39825=IFCRELDEFINESBYPROPERTIES('2PMH7w56X5BQIVTIy0$XwZ',$,$,$,(#39529),#39824);
|
#39825=IFCRELDEFINESBYPROPERTIES('2PMH7w56X5BQIVTIy0$XwZ',$,$,$,(#39529),#39824);
|
||||||
#39826=IFCPROPERTYSINGLEVALUE('Index',$,IFCINTEGER(0),$);
|
#39826=IFCPROPERTYSINGLEVALUE('Index',$,IFCINTEGER(0),$);
|
||||||
#39827=IFCPROPERTYSET('0uxOlwfAv0gfNQ_2gapcZC',$,'BBIM_Linked_Aggregate',$,(#39829));
|
#39827=IFCPROPERTYSET('0uxOlwfAv0gfNQ_2gapcZC',$,'BBIM_Linked_Aggregate',$,(#39829));
|
||||||
|
|
@ -9993,5 +9993,11 @@ DATA;
|
||||||
#41301=IFCCSGSOLID(#41300);
|
#41301=IFCCSGSOLID(#41300);
|
||||||
#41302=IFCSHAPEREPRESENTATION(#15,'Body','CSG',(#41301));
|
#41302=IFCSHAPEREPRESENTATION(#15,'Body','CSG',(#41301));
|
||||||
#41303=IFCDOCUMENTREFERENCE('sheets/A00 - GENERAL ARRANGEMENT.svg','X',$,'SHEET',#41290);
|
#41303=IFCDOCUMENTREFERENCE('sheets/A00 - GENERAL ARRANGEMENT.svg','X',$,'SHEET',#41290);
|
||||||
|
#41304=IFCPROPERTYSINGLEVALUE('Aggregate_Index',$,IFCINTEGER(1),$);
|
||||||
|
#41305=IFCPROPERTYSINGLEVALUE('Name',$,IFCLABEL('Truss'),$);
|
||||||
|
#41306=IFCPROPERTYSINGLEVALUE('Aggregate_Index',$,IFCINTEGER(0),$);
|
||||||
|
#41307=IFCPROPERTYSINGLEVALUE('Name',$,IFCLABEL('Truss'),$);
|
||||||
|
#41308=IFCPROPERTYSINGLEVALUE('Aggregate_Index',$,IFCINTEGER(2),$);
|
||||||
|
#41309=IFCPROPERTYSINGLEVALUE('Name',$,IFCLABEL('Truss'),$);
|
||||||
ENDSEC;
|
ENDSEC;
|
||||||
END-ISO-10303-21;
|
END-ISO-10303-21;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue