From f4165d414900f3079993e2c4860309189291da04 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 30 Sep 2024 21:02:13 +0500 Subject: [PATCH] bonsai - fix error removing non-linked styles including non-ifcsurfacestyle ifcpresentationstyles --- src/bonsai/bonsai/bim/module/style/data.py | 1 + src/bonsai/bonsai/core/style.py | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/bim/module/style/data.py b/src/bonsai/bonsai/bim/module/style/data.py index 6e7b51919f..2866ba8c64 100644 --- a/src/bonsai/bonsai/bim/module/style/data.py +++ b/src/bonsai/bonsai/bim/module/style/data.py @@ -50,6 +50,7 @@ class StylesData: materials: dict[bpy.types.PropertyGroup, Union[str, None]] = {} for style in props.styles: material = tool.Ifc.get_object(ifc_file.by_id(style.ifc_definition_id)) + # Material will be None if it's either unlinked or if it's not IfcSurfaceStyle. materials[style] = material.name if material is not None else None return materials diff --git a/src/bonsai/bonsai/core/style.py b/src/bonsai/bonsai/core/style.py index 9d4cd5c9fe..6c221735fa 100644 --- a/src/bonsai/bonsai/core/style.py +++ b/src/bonsai/bonsai/core/style.py @@ -70,7 +70,8 @@ def remove_style( style_type = style_tool.get_active_style_type() ifc.unlink(element=style) ifc.run("style.remove_style", style=style) - style_tool.delete_object(obj) + if obj: + style_tool.delete_object(obj) if reload_styles_ui and style_tool.is_editing_styles(): style_tool.import_presentation_styles(style_type)