From 9944c7d2dee1d4b596accdc4489d0a2b98ac8dd7 Mon Sep 17 00:00:00 2001 From: "Sigma Dimensions (Yass)" <79010126+myoualid@users.noreply.github.com> Date: Sun, 27 Aug 2023 18:21:19 +0100 Subject: [PATCH] you can now reload linked IFCs #3652 --- .../blenderbim/bim/module/project/__init__.py | 1 + .../blenderbim/bim/module/project/operator.py | 17 +++++++++++++++++ .../blenderbim/bim/module/project/ui.py | 2 ++ 3 files changed, 20 insertions(+) diff --git a/src/blenderbim/blenderbim/bim/module/project/__init__.py b/src/blenderbim/blenderbim/bim/module/project/__init__.py index 3fe18e7f2f..977bc54c64 100644 --- a/src/blenderbim/blenderbim/bim/module/project/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/project/__init__.py @@ -47,6 +47,7 @@ classes = ( operator.UnlinkIfc, operator.UnloadLink, operator.UnloadProject, + operator.ReloadLink, prop.LibraryElement, prop.FilterCategory, prop.Link, diff --git a/src/blenderbim/blenderbim/bim/module/project/operator.py b/src/blenderbim/blenderbim/bim/module/project/operator.py index b510494fd7..fa70a93fcf 100644 --- a/src/blenderbim/blenderbim/bim/module/project/operator.py +++ b/src/blenderbim/blenderbim/bim/module/project/operator.py @@ -880,6 +880,23 @@ class LoadLink(bpy.types.Operator): return {"FINISHED"} +class ReloadLink(bpy.types.Operator): + bl_idname = "bim.reload_link" + bl_label = "Reload Link" + bl_options = {"REGISTER", "UNDO"} + bl_description = "Reload the selected file" + filepath: bpy.props.StringProperty() + + def execute(self, context): + def get_linked_ifc(): + selected_filename = os.path.basename(self.filepath) + return [c for c in bpy.data.collections if "IfcProject" in c.name and c.library and os.path.basename(c.library.filepath) == selected_filename] + + for linked_ifc in get_linked_ifc: + linked_ifc.reload() + return {"FINISHED"} + + class ToggleLinkSelectability(bpy.types.Operator): bl_idname = "bim.toggle_link_selectability" bl_label = "Toggle Link Selectability" diff --git a/src/blenderbim/blenderbim/bim/module/project/ui.py b/src/blenderbim/blenderbim/bim/module/project/ui.py index e0a2eea7e5..8b61c4320d 100644 --- a/src/blenderbim/blenderbim/bim/module/project/ui.py +++ b/src/blenderbim/blenderbim/bim/module/project/ui.py @@ -375,6 +375,8 @@ class BIM_UL_links(UIList): op.mode = "VISIBLE" op = row.operator("bim.unload_link", text="", icon="UNLINKED") op.filepath = item.name + op = row.operator("bim.reload_link", text="", icon="FILE_REFRESH") + op.filepath = item.name else: row.prop(item, "name", text="") op = row.operator("bim.load_link", text="", icon="LINKED")