From 0b05c3bcfcd3e6cdc66be2c6b7e660d79fa25768 Mon Sep 17 00:00:00 2001 From: falken10vdl <33285113+falken10vdl@users.noreply.github.com> Date: Fri, 27 Jun 2025 15:20:50 +0200 Subject: [PATCH] Z-coordinate in PlanLevelDecorator relative to spatial container if exists. Absolute otherwise (#6845) * Z-coordinate in PlanLevelDecorator relative to spatial container if exists. Absolute otherwise --- src/bonsai/bonsai/bim/module/drawing/decoration.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/bim/module/drawing/decoration.py b/src/bonsai/bonsai/bim/module/drawing/decoration.py index f2b52d4c5c..cb309211e9 100644 --- a/src/bonsai/bonsai/bim/module/drawing/decoration.py +++ b/src/bonsai/bonsai/bim/module/drawing/decoration.py @@ -1204,7 +1204,19 @@ class PlanLevelDecorator(BaseDecorator): text_dir *= -1 def get_text(): - z = verts[0].z + abs_z = verts[0].z + z = abs_z + + if element: + spatial_container = ifcopenshell.util.element.get_container(element) + + if spatial_container: + container_obj = tool.Ifc.get_object(spatial_container) + + if container_obj: + spatial_container_z = container_obj.matrix_world.translation.z + z = abs_z - spatial_container_z + rl = self.format_value(context, z) text = "{}{}".format("" if z < 0 else "+", rl) return text