From 5dbfe539acf15e6bf04e69651bbedef6f938327c Mon Sep 17 00:00:00 2001 From: Ryan Schultz Date: Thu, 23 Oct 2025 08:31:31 -0500 Subject: [PATCH] Need a little more freedom to rotate a RCP --- src/bonsai/bonsai/bim/export_ifc.py | 1 - src/bonsai/bonsai/bim/module/drawing/operator.py | 4 ++-- src/bonsai/bonsai/bim/module/geometry/__init__.py | 1 - 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/bonsai/bonsai/bim/export_ifc.py b/src/bonsai/bonsai/bim/export_ifc.py index 4f9692b49c..d507481141 100644 --- a/src/bonsai/bonsai/bim/export_ifc.py +++ b/src/bonsai/bonsai/bim/export_ifc.py @@ -113,7 +113,6 @@ class IfcExporter: # Ensure reflected ceiling cameras have the correct scale if obj.scale != (-1, -1, -1): obj.scale = (-1, -1, -1) - obj.rotation_euler = (0.0, 0.0, radians(180)) # Skip all other scale handling for cameras elif tool.Geometry.is_scaled(obj): bpy.ops.bim.update_representation(obj=obj.name) diff --git a/src/bonsai/bonsai/bim/module/drawing/operator.py b/src/bonsai/bonsai/bim/module/drawing/operator.py index f271d3f47f..f3e7d9ebe2 100644 --- a/src/bonsai/bonsai/bim/module/drawing/operator.py +++ b/src/bonsai/bonsai/bim/module/drawing/operator.py @@ -2358,14 +2358,14 @@ class ActivateDrawingBase(tool.Ifc.Operator): is_reflected = ifcopenshell.util.element.get_pset(camera_element, "EPset_Drawing", "TargetView") == "REFLECTED_PLAN_VIEW" if is_reflected and camera.scale != (-1, -1, -1): camera.scale = (-1, -1, -1) - camera.rotation_euler = (0.0, 0.0, radians(180)) + if camera_props.update_representation(camera.matrix_world): bpy.ops.bim.update_representation(obj=camera.name, ifc_representation_class="") # Restore the scale after update if needed if is_reflected: camera.scale = (-1, -1, -1) - camera.rotation_euler = (0.0, 0.0, radians(180)) + return {"FINISHED"} diff --git a/src/bonsai/bonsai/bim/module/geometry/__init__.py b/src/bonsai/bonsai/bim/module/geometry/__init__.py index 385df0c749..77a2c8b63b 100644 --- a/src/bonsai/bonsai/bim/module/geometry/__init__.py +++ b/src/bonsai/bonsai/bim/module/geometry/__init__.py @@ -112,7 +112,6 @@ def block_scale(scene: bpy.types.Scene) -> None: # Only update if scale isn't already (-1, -1, -1) if obj.scale != (-1, -1, -1): obj.scale = (-1, -1, -1) - obj.rotation_euler = (0.0, 0.0, math.radians(180)) else: if obj.scale != (1, 1, 1): obj.scale = (1, 1, 1)