diff --git a/src/blenderbim/blenderbim/bim/module/geometry/operator.py b/src/blenderbim/blenderbim/bim/module/geometry/operator.py index 99908cc927..14b67b7203 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/operator.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/operator.py @@ -130,10 +130,6 @@ class UpdateRepresentation(bpy.types.Operator): obj: bpy.props.StringProperty() ifc_representation_class: bpy.props.StringProperty() - @classmethod - def poll(cls, context): - return context.active_object and context.active_object.mode == "OBJECT" - def execute(self, context): return IfcStore.execute_ifc_operator(self, context) @@ -141,6 +137,10 @@ class UpdateRepresentation(bpy.types.Operator): if not ContextData.is_loaded: ContextData.load(IfcStore.get_file()) + if context.active_object and context.active_object.mode != "OBJECT": + # Ensure mode is object to prevent invalid mesh data causing CTD + bpy.ops.object.mode_set(mode="OBJECT", toggle=False) + objs = [bpy.data.objects.get(self.obj)] if self.obj else context.selected_objects self.file = IfcStore.get_file()