mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-19 14:41:25 +00:00
Support custom psets
This commit is contained in:
@@ -886,6 +886,21 @@ class IfcExporter():
|
|||||||
pset['ifc'] = self.file.create_entity('IfcPropertySet', **pset['attributes'])
|
pset['ifc'] = self.file.create_entity('IfcPropertySet', **pset['attributes'])
|
||||||
|
|
||||||
def create_pset_properties(self, pset):
|
def create_pset_properties(self, pset):
|
||||||
|
if pset['attributes']['Name'] in self.ifc_schema.psets:
|
||||||
|
return self.create_templated_pset_properties(pset)
|
||||||
|
return self.create_custom_pset_properties(pset)
|
||||||
|
|
||||||
|
def create_custom_pset_properties(self, pset):
|
||||||
|
properties = []
|
||||||
|
for key, value in pset['raw'].items():
|
||||||
|
properties.append(
|
||||||
|
self.file.create_entity('IfcPropertySingleValue', **{
|
||||||
|
'Name': key,
|
||||||
|
'NominalValue': self.file.create_entity('IfcLabel', value)
|
||||||
|
}))
|
||||||
|
return properties
|
||||||
|
|
||||||
|
def create_templated_pset_properties(self, pset):
|
||||||
properties = []
|
properties = []
|
||||||
templates = self.ifc_schema.psets[pset['attributes']['Name']]['HasPropertyTemplates']
|
templates = self.ifc_schema.psets[pset['attributes']['Name']]['HasPropertyTemplates']
|
||||||
for name, data in templates.items():
|
for name, data in templates.items():
|
||||||
|
|||||||
Reference in New Issue
Block a user