From 572efd7ea633dcd5d8bf12ac27d5743cb04d6789 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Wed, 27 Jan 2021 09:14:47 +1100 Subject: [PATCH] Minor fixes for loading schema data. See #1222. --- src/ifcblenderexport/blenderbim/bim/__init__.py | 1 + src/ifcblenderexport/blenderbim/bim/module/pset/data.py | 7 ++++++- src/ifcblenderexport/blenderbim/bim/prop.py | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/ifcblenderexport/blenderbim/bim/__init__.py b/src/ifcblenderexport/blenderbim/bim/__init__.py index a9f967ef53..83c476b160 100644 --- a/src/ifcblenderexport/blenderbim/bim/__init__.py +++ b/src/ifcblenderexport/blenderbim/bim/__init__.py @@ -187,6 +187,7 @@ if bpy is not None: for cls in reversed(classes): bpy.utils.unregister_class(cls) bpy.app.handlers.load_post.remove(prop.setDefaultProperties) + bpy.app.handlers.load_post.remove(prop.clearIfcStore) bpy.types.TOPBAR_MT_file_export.remove(menu_func_export) bpy.types.TOPBAR_MT_file_import.remove(menu_func_import) del bpy.types.Scene.BIMProperties diff --git a/src/ifcblenderexport/blenderbim/bim/module/pset/data.py b/src/ifcblenderexport/blenderbim/bim/module/pset/data.py index aeea11415d..adedabcdb5 100644 --- a/src/ifcblenderexport/blenderbim/bim/module/pset/data.py +++ b/src/ifcblenderexport/blenderbim/bim/module/pset/data.py @@ -149,7 +149,12 @@ class Data: enum_items = [] if prop_template.TemplateType == "P_SINGLEVALUE": - data_type = str(IfcStore.get_schema().declaration_by_name(prop_template.PrimaryMeasureType or "IfcLabel")) + try: + data_type = str(IfcStore.get_schema().declaration_by_name(prop_template.PrimaryMeasureType or "IfcLabel")) + except: + # TODO: Occurs if the data type is something that exists in IFC4 and not in IFC2X3. To fully fix + # this we need to generate the IFC2X3 pset template definitions. + continue elif prop_template.TemplateType == "P_ENUMERATEDVALUE": data_type = "enum" enum_items = [v.wrappedValue for v in prop_template.Enumerators.EnumerationValues] diff --git a/src/ifcblenderexport/blenderbim/bim/prop.py b/src/ifcblenderexport/blenderbim/bim/prop.py index 69899d19a2..3e240a9709 100644 --- a/src/ifcblenderexport/blenderbim/bim/prop.py +++ b/src/ifcblenderexport/blenderbim/bim/prop.py @@ -38,6 +38,7 @@ vector_styles_enum = [] @persistent def clearIfcStore(scene): IfcStore.file = None + IfcStore.schema = None @persistent