From 05d4dc5666dd84ffb2fe3936f0e20ecd59278154 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 2 Oct 2023 15:30:32 +0500 Subject: [PATCH] Rever IFC Project https://i.imgur.com/ajQiK8D.png --- .../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 383b648053..5adcab8073 100644 --- a/src/blenderbim/blenderbim/bim/module/project/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/project/__init__.py @@ -37,6 +37,7 @@ classes = ( operator.LoadProjectElements, operator.NewProject, operator.RefreshLibrary, + operator.RevertProject, operator.RewindLibrary, operator.SaveLibraryFile, operator.SelectLibraryFile, diff --git a/src/blenderbim/blenderbim/bim/module/project/operator.py b/src/blenderbim/blenderbim/bim/module/project/operator.py index ec431b80bb..7e8a9b821c 100644 --- a/src/blenderbim/blenderbim/bim/module/project/operator.py +++ b/src/blenderbim/blenderbim/bim/module/project/operator.py @@ -676,6 +676,23 @@ class UnloadProject(bpy.types.Operator): return {"FINISHED"} +class RevertProject(bpy.types.Operator, IFCFileSelector): + bl_idname = "bim.revert_project" + bl_label = "Revert IFC Project" + bl_options = {"REGISTER", "UNDO"} + bl_description = "Reload currently opened IFC project discarding all unsaved changes" + + @classmethod + def poll(cls, context): + if not context.scene.BIMProperties.ifc_file: + cls.poll_message_set("IFC project need to be loaded and saved on the disk.") + return False + return True + + def execute(self, context): + bpy.ops.bim.load_project(should_start_fresh_session=True, filepath=context.scene.BIMProperties.ifc_file) + + class LoadProjectElements(bpy.types.Operator): bl_idname = "bim.load_project_elements" bl_label = "Load Project Elements" diff --git a/src/blenderbim/blenderbim/bim/module/project/ui.py b/src/blenderbim/blenderbim/bim/module/project/ui.py index 0797238bd1..d2bc4feb8b 100644 --- a/src/blenderbim/blenderbim/bim/module/project/ui.py +++ b/src/blenderbim/blenderbim/bim/module/project/ui.py @@ -73,6 +73,8 @@ def file_menu(self, context): op = self.layout.operator("export_ifc.bim", text="Save IFC Project As...") op.should_save_as = True self.layout.separator() + self.layout.operator("bim.revert_project") + self.layout.separator() class BIM_PT_project(Panel):