From 3c17718f70339514f77f5b297bee27c1ded23930 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Mon, 20 Feb 2023 17:49:42 +1100 Subject: [PATCH] Fix bug where adding a BCF viewpoint didn't take into account project units --- src/bcf/src/bcf/v2/visinfo.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/bcf/src/bcf/v2/visinfo.py b/src/bcf/src/bcf/v2/visinfo.py index 65754e9497..7ac1a750d8 100644 --- a/src/bcf/src/bcf/v2/visinfo.py +++ b/src/bcf/src/bcf/v2/visinfo.py @@ -5,7 +5,8 @@ from typing import Any, Iterable, Optional import numpy as np from ifcopenshell import entity_instance -from ifcopenshell.util import placement +import ifcopenshell.util.unit +import ifcopenshell.util.placement from numpy.typing import NDArray import bcf.v2.model as mdl @@ -209,7 +210,12 @@ def build_viewpoint(element: entity_instance) -> mdl.VisualizationInfo: Returns: The BCF viewpoint definition. """ - elem_placement = placement.get_local_placement(element.ObjectPlacement) + ifc_file = element.wrapped_data.file + unit_scale = ifcopenshell.util.unit.calculate_unit_scale(ifc_file) + elem_placement = ifcopenshell.util.placement.get_local_placement(element.ObjectPlacement) + elem_placement[0][3] *= unit_scale + elem_placement[1][3] *= unit_scale + elem_placement[2][3] *= unit_scale return mdl.VisualizationInfo( guid=str(uuid.uuid4()),