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):