From 468192e84983913f7ac1b40338d7b3c97078909e Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Tue, 16 Nov 2021 22:08:55 +1100 Subject: [PATCH] Fix bug where unlinking a style that was invalidly linked didn't work. --- src/blenderbim/blenderbim/tool/style.py | 5 ++++- src/blenderbim/test/tool/test_style.py | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/tool/style.py b/src/blenderbim/blenderbim/tool/style.py index a0d3e5cbf8..8706d8138c 100644 --- a/src/blenderbim/blenderbim/tool/style.py +++ b/src/blenderbim/blenderbim/tool/style.py @@ -46,7 +46,10 @@ class Style(blenderbim.core.tool.Style): @classmethod def get_style(cls, obj): if obj.BIMMaterialProperties.ifc_style_id: - return tool.Ifc.get().by_id(obj.BIMMaterialProperties.ifc_style_id) + try: + return tool.Ifc.get().by_id(obj.BIMMaterialProperties.ifc_style_id) + except: + return @classmethod def get_surface_rendering_attributes(cls, obj): diff --git a/src/blenderbim/test/tool/test_style.py b/src/blenderbim/test/tool/test_style.py index d297eb9abe..f58a6c8ecf 100644 --- a/src/blenderbim/test/tool/test_style.py +++ b/src/blenderbim/test/tool/test_style.py @@ -74,6 +74,11 @@ class TestGetStyle(NewFile): obj.BIMMaterialProperties.ifc_style_id = style.id() assert subject.get_style(obj) == style + def test_getting_nothing_for_a_broken_link_style(self): + obj = bpy.data.materials.new("Material") + obj.BIMMaterialProperties.ifc_style_id = 1 + assert subject.get_style(obj) == None + class TestGetSurfaceRenderingAttributes(NewFile): def test_get_colours_from_a_basic_material(self):