From 956b7dcb92a3f641bc5dcc036c09a752885c0f78 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 10 Jan 2025 21:50:52 +1100 Subject: [PATCH] Fix #5941. Regression in ae22eec9 where active object wasn't considered when adding a parametric door. --- src/bonsai/bonsai/bim/module/model/door.py | 10 +++++----- src/bonsai/bonsai/tool/blender.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/door.py b/src/bonsai/bonsai/bim/module/model/door.py index a8aa7b66c2..94ba825413 100644 --- a/src/bonsai/bonsai/bim/module/model/door.py +++ b/src/bonsai/bonsai/bim/module/model/door.py @@ -572,7 +572,7 @@ class AddDoor(bpy.types.Operator, tool.Ifc.Operator): update_door_modifier_representation(obj) def _execute(self, context): - for obj in context.selected_objects: + for obj in tool.Blender.get_selected_objects(): if not tool.Blender.Modifier.is_eligible_for_door_modifier(obj): continue self.add_door_on_object(obj) @@ -610,7 +610,7 @@ class CancelEditingDoor(bpy.types.Operator, tool.Ifc.Operator): props.is_editing = False def _execute(self, context): - for obj in context.selected_objects: + for obj in tool.Blender.get_selected_objects(): self.cancel_editing_door_on_object(obj) return {"FINISHED"} @@ -642,7 +642,7 @@ class FinishEditingDoor(bpy.types.Operator, tool.Ifc.Operator): ifcopenshell.api.run("pset.edit_pset", tool.Ifc.get(), pset=pset, properties={"Data": door_data}) def _execute(self, context): - for obj in context.selected_objects: + for obj in tool.Blender.get_selected_objects(): self.finish_editing_door_on_object(obj) return {"FINISHED"} @@ -666,7 +666,7 @@ class EnableEditingDoor(bpy.types.Operator, tool.Ifc.Operator): props.is_editing = True def _execute(self, context): - for obj in context.selected_objects: + for obj in tool.Blender.get_selected_objects(): self.edit_door_on_obj(obj) return {"FINISHED"} @@ -686,6 +686,6 @@ class RemoveDoor(bpy.types.Operator, tool.Ifc.Operator): ifcopenshell.api.run("pset.remove_pset", tool.Ifc.get(), product=element, pset=pset) def _execute(self, context): - for obj in context.selected_objects: + for obj in tool.Blender.get_selected_objects(): self.remove_door_on_object(obj) return {"FINISHED"} diff --git a/src/bonsai/bonsai/tool/blender.py b/src/bonsai/bonsai/tool/blender.py index f6cb45e08e..b096903297 100644 --- a/src/bonsai/bonsai/tool/blender.py +++ b/src/bonsai/bonsai/tool/blender.py @@ -144,7 +144,7 @@ class Blender(bonsai.core.tool.Blender): @classmethod def get_active_object(cls) -> bpy.types.Object: - return bpy.context.view_layer.objects.active + return bpy.context.view_layer.objects.active or bpy.context.active_object @classmethod def get_selected_objects(cls) -> set[bpy.types.Object]: