From 176e22af8b95c43780f27f78e2bbfa91d7a4b962 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sat, 7 Aug 2021 18:37:45 +1000 Subject: [PATCH] Fix bug to prevent users from appending a project library asset twice --- src/blenderbim/blenderbim/bim/import_ifc.py | 2 +- src/blenderbim/blenderbim/bim/module/project/operator.py | 2 ++ .../ifcopenshell/api/project/append_asset.py | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/import_ifc.py b/src/blenderbim/blenderbim/bim/import_ifc.py index 18583c357e..603f7fc1ce 100644 --- a/src/blenderbim/blenderbim/bim/import_ifc.py +++ b/src/blenderbim/blenderbim/bim/import_ifc.py @@ -153,7 +153,7 @@ class IfcImporter: self.settings_native.set(self.settings_native.INCLUDE_CURVES, True) self.settings_2d = ifcopenshell.geom.settings() self.settings_2d.set(self.settings_2d.INCLUDE_CURVES, True) - self.filter_mode = "BLACKLIST" + self.filter_mode = None self.include_elements = set() self.exclude_elements = set() self.project = None diff --git a/src/blenderbim/blenderbim/bim/module/project/operator.py b/src/blenderbim/blenderbim/bim/module/project/operator.py index b30a8bdc74..4377d085c4 100644 --- a/src/blenderbim/blenderbim/bim/module/project/operator.py +++ b/src/blenderbim/blenderbim/bim/module/project/operator.py @@ -326,6 +326,8 @@ class AppendLibraryElement(bpy.types.Operator): library=IfcStore.library_file, element=IfcStore.library_file.by_id(self.definition), ) + if not element: + return {"FINISHED"} self.import_type_from_ifc(element, context) blenderbim.bim.handler.purge_module_data() return {"FINISHED"} diff --git a/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py b/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py index 76c2bd7e81..6c0668beb3 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py +++ b/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py @@ -11,7 +11,7 @@ class Usecase: def execute(self): self.added_elements = set() - if self.settings["element"].is_a("IfcTypeProduct"): + if self.settings["element"].is_a("IfcTypeProduct") and not self.file.by_guid(self.settings["element"].GlobalId): return self.append_type_product() def append_type_product(self):