From 51b7f24a0031f6000b581ea4235d0b701c1879da Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 3 Jul 2023 16:46:58 +1000 Subject: [PATCH] You can now unload BCF projects to load another one. --- src/blenderbim/blenderbim/bim/module/bcf/__init__.py | 1 + src/blenderbim/blenderbim/bim/module/bcf/operator.py | 12 +++++++++++- src/blenderbim/blenderbim/bim/module/bcf/ui.py | 10 ++++++---- src/blenderbim/blenderbim/bim/module/project/ui.py | 2 +- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/bcf/__init__.py b/src/blenderbim/blenderbim/bim/module/bcf/__init__.py index 37b5f4f271..5e6b55e072 100644 --- a/src/blenderbim/blenderbim/bim/module/bcf/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/bcf/__init__.py @@ -57,6 +57,7 @@ classes = ( operator.SelectBcfBimSnippetReference, operator.SelectBcfDocumentReference, operator.SelectBcfHeaderFile, + operator.UnloadBcfProject, operator.ViewBcfTopic, prop.BcfReferenceLink, prop.BcfLabel, diff --git a/src/blenderbim/blenderbim/bim/module/bcf/operator.py b/src/blenderbim/blenderbim/bim/module/bcf/operator.py index f41d70851b..6b44e3cecc 100644 --- a/src/blenderbim/blenderbim/bim/module/bcf/operator.py +++ b/src/blenderbim/blenderbim/bim/module/bcf/operator.py @@ -58,7 +58,6 @@ class LoadBcfProject(bpy.types.Operator): filter_glob: bpy.props.StringProperty(default="*.bcf;*.bcfzip", options={"HIDDEN"}) def execute(self, context): - context.scene.BCFProperties.is_loaded = False if self.filepath: bcfstore.BcfStore.bcfxml = bcf.bcfxml.load(self.filepath) bcfxml = bcfstore.BcfStore.get_bcfxml() @@ -72,6 +71,17 @@ class LoadBcfProject(bpy.types.Operator): return {"RUNNING_MODAL"} +class UnloadBcfProject(bpy.types.Operator): + bl_idname = "bim.unload_bcf_project" + bl_label = "Unload BCF Project" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + bcfstore.BcfStore.set(None) + context.scene.BCFProperties.is_loaded = False + return {"FINISHED"} + + class LoadBcfTopics(bpy.types.Operator): bl_idname = "bim.load_bcf_topics" bl_label = "Load BCF Topics" diff --git a/src/blenderbim/blenderbim/bim/module/bcf/ui.py b/src/blenderbim/blenderbim/bim/module/bcf/ui.py index 9c4c5f796b..821d028dbb 100644 --- a/src/blenderbim/blenderbim/bim/module/bcf/ui.py +++ b/src/blenderbim/blenderbim/bim/module/bcf/ui.py @@ -39,14 +39,16 @@ class BIM_PT_bcf(Panel): scene = context.scene props = scene.BCFProperties - row = layout.row(align=True) - row.operator("bim.new_bcf_project", text="New Project") - row.operator("bim.load_bcf_project", text="Load Project") if not props.is_loaded: + row = layout.row(align=True) + row.operator("bim.new_bcf_project", text="New Project") + row.operator("bim.load_bcf_project", text="Load Project") return - row.operator("bim.save_bcf_project", text="Save Project") + row = layout.row(align=True) + row.operator("bim.save_bcf_project", icon="EXPORT", text="Save Project") + row.operator("bim.unload_bcf_project", text="", icon="CANCEL") row = layout.row() row.prop(props, "name") diff --git a/src/blenderbim/blenderbim/bim/module/project/ui.py b/src/blenderbim/blenderbim/bim/module/project/ui.py index 7c2730f957..a57c097e25 100644 --- a/src/blenderbim/blenderbim/bim/module/project/ui.py +++ b/src/blenderbim/blenderbim/bim/module/project/ui.py @@ -164,7 +164,7 @@ class BIM_PT_project(Panel): op.should_save_as = False op = row.operator("export_ifc.bim", icon="FILE_TICK", text="Save As") op.should_save_as = True - row.operator("bim.unload_project", text="", icon="X") + row.operator("bim.unload_project", text="", icon="CANCEL") def draw_create_project_ui(self, context): props = context.scene.BIMProperties