From 480a1100ea8a8e001e03e4708fd056b82fa525e0 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 14 May 2020 21:37:33 +1000 Subject: [PATCH] Allow custom Qto quantities to be exported --- .../blenderbim/bim/export_ifc.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/ifcblenderexport/blenderbim/bim/export_ifc.py b/src/ifcblenderexport/blenderbim/bim/export_ifc.py index 1611f39dae..2c5a4db23e 100644 --- a/src/ifcblenderexport/blenderbim/bim/export_ifc.py +++ b/src/ifcblenderexport/blenderbim/bim/export_ifc.py @@ -1386,6 +1386,7 @@ class IfcExporter(): def create_qto_properties(self, qto): if qto['attributes']['Name'] in schema.ifc.qtos: return self.create_templated_qto_properties(qto) + return self.create_custom_qto_properties(qto) def create_pset_properties(self, pset): if pset['attributes']['Name'] in schema.ifc.psets: @@ -1402,6 +1403,22 @@ class IfcExporter(): })) return properties + def create_custom_qto_properties(self, qto): + properties = [] + for key, value in qto['raw'].items(): + if 'Area' in key: + quantity_type = 'Area' + elif 'Volume' in key: + quantity_type = 'Volume' + else: + quantity_type = 'Length' + properties.append( + self.file.create_entity(f'IfcQuantity{quantity_type}', **{ + 'Name': key, + f'{quantity_type}Value': float(value) + })) + return properties + def create_templated_pset_properties(self, pset): properties = [] templates = schema.ifc.psets[pset['attributes']['Name']]['HasPropertyTemplates']