diff --git a/src/blenderbim/blenderbim/bim/ifc.py b/src/blenderbim/blenderbim/bim/ifc.py index 312527beb4..8d31281804 100644 --- a/src/blenderbim/blenderbim/bim/ifc.py +++ b/src/blenderbim/blenderbim/bim/ifc.py @@ -163,8 +163,12 @@ class IfcStore: if not IfcStore.get_file(): return for obj in bpy.data.objects: + if obj.library: + continue IfcStore.relink_object(obj) for obj in bpy.data.materials: + if obj.library: + continue IfcStore.relink_object(obj) @staticmethod diff --git a/src/blenderbim/blenderbim/bim/operator.py b/src/blenderbim/blenderbim/bim/operator.py index 42739c680e..69f46e5f34 100644 --- a/src/blenderbim/blenderbim/bim/operator.py +++ b/src/blenderbim/blenderbim/bim/operator.py @@ -670,6 +670,8 @@ class ReloadIfcFile(bpy.types.Operator, tool.Ifc.Operator): # STEP IDs may change, but we assume the GlobalID to be constant obj_map = {} for obj in bpy.data.objects: + if obj.library: + continue element = tool.Ifc.get_entity(obj) if element and hasattr(element, "GlobalId"): obj_map[obj.name] = element.GlobalId @@ -678,6 +680,8 @@ class ReloadIfcFile(bpy.types.Operator, tool.Ifc.Operator): tool.Ifc.set(new) for obj in bpy.data.objects: + if obj.library: + continue global_id = obj_map.get(obj.name) if global_id: try: diff --git a/src/blenderbim/blenderbim/tool/ifc.py b/src/blenderbim/blenderbim/tool/ifc.py index a655b5ce1a..d17c819894 100644 --- a/src/blenderbim/blenderbim/tool/ifc.py +++ b/src/blenderbim/blenderbim/tool/ifc.py @@ -118,6 +118,9 @@ class Ifc(blenderbim.core.tool.Ifc): return for obj in bpy.data.objects: + if obj.library: + continue + bpy.msgbus.clear_by_owner(obj) element = cls.get_entity(obj) @@ -134,6 +137,9 @@ class Ifc(blenderbim.core.tool.Ifc): ) for obj in bpy.data.materials: + if obj.library: + continue + bpy.msgbus.clear_by_owner(obj) material = cls.get_entity(obj)