diff --git a/src/bonsai/bonsai/bim/module/model/profile.py b/src/bonsai/bonsai/bim/module/model/profile.py index d6fcb4c6fd..efbf41900d 100644 --- a/src/bonsai/bonsai/bim/module/model/profile.py +++ b/src/bonsai/bonsai/bim/module/model/profile.py @@ -1002,6 +1002,14 @@ class EnableEditingExtrusionAxis(bpy.types.Operator, tool.Ifc.Operator): def _execute(self, context): self.unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) obj = context.active_object + + # Commit any in-progress parametric (gizmo) draft on this object + # before switching to axis-edit. Otherwise the in-memory draft + # state is overwritten when the axis mesh is imported below, + # silently discarding the user's pending dimension edits. + if feature := tool.Parametric.is_object_editing(obj): + tool.Parametric.commit_object_draft(obj, feature.finish_op) + element = tool.Ifc.get_entity(obj) axis = ifcopenshell.util.representation.get_representation(element, "Model", "Axis", "GRAPH_VIEW") diff --git a/src/bonsai/bonsai/bim/module/model/slab.py b/src/bonsai/bonsai/bim/module/model/slab.py index 9d7e88a23d..4f47740e6d 100644 --- a/src/bonsai/bonsai/bim/module/model/slab.py +++ b/src/bonsai/bonsai/bim/module/model/slab.py @@ -620,6 +620,14 @@ class EnableEditingExtrusionProfile(bpy.types.Operator, tool.Ifc.Operator): def _execute(self, context): self.unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) obj = context.active_object + + # Commit any in-progress parametric (gizmo) draft on this object + # before switching to profile-edit. Otherwise the in-memory draft + # state is overwritten when the profile mesh is imported below, + # silently discarding the user's pending dimension edits. + if feature := tool.Parametric.is_object_editing(obj): + tool.Parametric.commit_object_draft(obj, feature.finish_op) + element = tool.Ifc.get_entity(obj) body = ifcopenshell.util.representation.get_representation(element, "Model", "Body", "MODEL_VIEW")