From c699c01e91e7214f2a9ec402c390a5e7b93bdfb0 Mon Sep 17 00:00:00 2001 From: Ryan Schultz Date: Wed, 5 Aug 2026 16:41:29 -0500 Subject: [PATCH] Fix LinePosition not preserved in section views on element move depsgraph_update_post_handler was calling regenerate_dimension without camera_dir, so section views always used plan-view fallback logic. Vertical dimensions had offset_dir=None and silently dropped LinePosition. Co-Authored-By: Claude Sonnet 4.6 --- src/bonsai/bonsai/bim/module/drawing/handler.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/bonsai/bonsai/bim/module/drawing/handler.py b/src/bonsai/bonsai/bim/module/drawing/handler.py index 0cd767c7ae..8a2e189998 100644 --- a/src/bonsai/bonsai/bim/module/drawing/handler.py +++ b/src/bonsai/bonsai/bim/module/drawing/handler.py @@ -325,6 +325,12 @@ def depsgraph_update_post_handler(scene, depsgraph): geom_settings = ifcopenshell.geom.settings() geom_settings.set("APPLY_DEFAULT_MATERIALS", False) + cam = bpy.context.scene.camera + cam_dir_tuple = None + if cam: + from mathutils import Vector as _Vec + cam_dir_tuple = tuple((cam.matrix_world.to_3x3() @ _Vec((0, 0, -1))).normalized()) + _dim_handler_running = True try: for ann_id in annotation_ids: @@ -372,6 +378,7 @@ def depsgraph_update_post_handler(scene, depsgraph): settings=geom_settings, shape_cache=_dim_shape_cache, placement_override=placement_override, + camera_dir=cam_dir_tuple, ) if resolved_pts: _update_blender_curve(annotation, resolved_pts)