diff --git a/src/blenderbim/blenderbim/bim/ifc.py b/src/blenderbim/blenderbim/bim/ifc.py index 0542b20512..fa20886959 100644 --- a/src/blenderbim/blenderbim/bim/ifc.py +++ b/src/blenderbim/blenderbim/bim/ifc.py @@ -400,7 +400,7 @@ class IfcStore: ) @staticmethod - def execute_ifc_operator(operator, context): + def execute_ifc_operator(operator, context, is_invoke=False): is_top_level_operator = not bool(IfcStore.current_transaction) if is_top_level_operator: @@ -411,7 +411,10 @@ class IfcStore: else: operator.transaction_key = IfcStore.current_transaction - result = getattr(operator, "_execute")(context) + if is_invoke: + result = getattr(operator, "_invoke")(context, None) + else: + result = getattr(operator, "_execute")(context) if is_top_level_operator: IfcStore.get_file().end_transaction() diff --git a/src/blenderbim/blenderbim/bim/module/geometry/operator.py b/src/blenderbim/blenderbim/bim/module/geometry/operator.py index ef2f56c6c0..c006963f4d 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/operator.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/operator.py @@ -1323,6 +1323,9 @@ class OverrideModeSetEdit(bpy.types.Operator): return {"FINISHED"} def invoke(self, context, event): + return IfcStore.execute_ifc_operator(self, context, is_invoke=True) + + def _invoke(self, context, event): if not tool.Ifc.get(): return bpy.ops.object.mode_set(mode="EDIT", toggle=True) return self.execute(context) @@ -1372,6 +1375,9 @@ class OverrideModeSetObject(bpy.types.Operator): row.label(text="No Geometry Found: Object will revert to previous state.") def invoke(self, context, event): + return IfcStore.execute_ifc_operator(self, context, is_invoke=True) + + def _invoke(self, context, event): self.is_valid = True self.should_save = True