diff --git a/src/blenderbim/blenderbim/bim/module/debug/__init__.py b/src/blenderbim/blenderbim/bim/module/debug/__init__.py index ec0460699d..4a056d9dcf 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/debug/__init__.py @@ -36,6 +36,7 @@ classes = ( operator.ProfileImportIFC, operator.PurgeHdf5Cache, operator.PurgeUnusedElementsByClass, + operator.RestartBlender, operator.RewindInspector, operator.SelectExpressFile, operator.SelectHighPolygonMeshes, diff --git a/src/blenderbim/blenderbim/bim/module/debug/operator.py b/src/blenderbim/blenderbim/bim/module/debug/operator.py index 71f5817982..94dcaaf4ea 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/operator.py +++ b/src/blenderbim/blenderbim/bim/module/debug/operator.py @@ -770,3 +770,15 @@ class ToggleDetailedIOSLogs(bpy.types.Operator): wrapper.turn_off_detailed_logging() self.report({"INFO"}, "Detailed IfcOpenShell logs turned off.") return {"FINISHED"} + + +class RestartBlender(bpy.types.Operator): + bl_idname = "bim.restart_blender" + bl_label = "Restart Blender" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + import os + + path = bpy.app.binary_path + os.execv(path, sys.argv) diff --git a/src/blenderbim/blenderbim/bim/module/debug/ui.py b/src/blenderbim/blenderbim/bim/module/debug/ui.py index 044756163a..88e9011f86 100644 --- a/src/blenderbim/blenderbim/bim/module/debug/ui.py +++ b/src/blenderbim/blenderbim/bim/module/debug/ui.py @@ -78,6 +78,9 @@ class BIM_PT_debug(Panel): row = layout.row() row.operator("bim.toggle_detailed_ios_logs") + row = layout.row() + row.operator("bim.restart_blender") + row = layout.split(factor=0.5, align=True) row.operator("bim.create_shape_from_step_id").should_include_curves = False row.operator("bim.create_shape_from_step_id", text="", icon="IPO_ELASTIC").should_include_curves = True