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