From 47704b1625a5e393fe1bc1abbd415519854a7efa Mon Sep 17 00:00:00 2001 From: Ryan Schultz Date: Sun, 2 Jun 2024 09:05:38 -0500 Subject: [PATCH] =?UTF-8?q?Keeps=20selected=20objects=20selected=20when=20?= =?UTF-8?q?switching=20from=20one=20drawing=20to=20an=E2=80=A6=20(#4745)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Keeps selected objects selected when switching from one drawing to another. As discussed: proposed: https://community.osarch.org/discussion/2179/not-unselecting-objects-when-switching-from-one-drawing-to-the-other#latest --- src/blenderbim/blenderbim/core/drawing.py | 4 ---- src/blenderbim/blenderbim/tool/drawing.py | 6 ++++++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/blenderbim/blenderbim/core/drawing.py b/src/blenderbim/blenderbim/core/drawing.py index 582a80551b..b739401b77 100644 --- a/src/blenderbim/blenderbim/core/drawing.py +++ b/src/blenderbim/blenderbim/core/drawing.py @@ -484,10 +484,6 @@ def activate_drawing_view( drawing_tool.import_annotations_in_group(drawing_tool.get_drawing_group(drawing)) blender.activate_camera(camera) drawing_tool.isolate_camera_collection(camera) - try: - blender.set_active_object(camera) - except: - raise CameraNotAvailableError() drawing_tool.activate_drawing(camera) diff --git a/src/blenderbim/blenderbim/tool/drawing.py b/src/blenderbim/blenderbim/tool/drawing.py index 01d2c2c51c..85ee719343 100644 --- a/src/blenderbim/blenderbim/tool/drawing.py +++ b/src/blenderbim/blenderbim/tool/drawing.py @@ -1752,6 +1752,8 @@ class Drawing(blenderbim.core.tool.Drawing): @classmethod def activate_drawing(cls, camera: bpy.types.Object) -> None: + selected_objects_before = bpy.context.selected_objects + # Sync viewport objects visibility with selectors from EPset_Drawing/Include and /Exclude drawing = tool.Ifc.get_entity(camera) @@ -1839,6 +1841,10 @@ class Drawing(blenderbim.core.tool.Drawing): cls.import_camera_props(drawing, camera) + for obj in selected_objects_before: + obj.hide_set(False) + obj.select_set(True) + @classmethod def get_elements_in_camera_view( cls, camera: bpy.types.Object, objs: list[ifcopenshell.entity_instance]