diff --git a/src/bonsai/bonsai/bim/module/model/prop.py b/src/bonsai/bonsai/bim/module/model/prop.py index 051dbccbbc..b88c843cad 100644 --- a/src/bonsai/bonsai/bim/module/model/prop.py +++ b/src/bonsai/bonsai/bim/module/model/prop.py @@ -752,6 +752,7 @@ class PolylinePoint(PropertyGroup): class MeasurePolyline(PropertyGroup): polyline_point: bpy.props.CollectionProperty(type=PolylinePoint) + measurement_type: bpy.props.StringProperty(name="Measurement Type") class BIMPolylineProperties(PropertyGroup): @@ -759,4 +760,4 @@ class BIMPolylineProperties(PropertyGroup): snap_mouse_ref: bpy.props.CollectionProperty(type=SnapMousePoint) polyline_points: bpy.props.CollectionProperty(type=PolylinePoint) product_preview: bpy.props.CollectionProperty(type=PolylinePoint) - measure_polyline: bpy.props.CollectionProperty(type=MeasurePolyline) + measurement_polyline: bpy.props.CollectionProperty(type=MeasurePolyline) diff --git a/src/bonsai/bonsai/bim/module/project/decorator.py b/src/bonsai/bonsai/bim/module/project/decorator.py index a2788bce09..c3ead90565 100644 --- a/src/bonsai/bonsai/bim/module/project/decorator.py +++ b/src/bonsai/bonsai/bim/module/project/decorator.py @@ -265,7 +265,7 @@ class MeasureDecorator: color = self.addon_prefs.decorations_colour blf.color(self.font_id, *color) - measure_data = context.scene.BIMPolylineProperties.measure_polyline + measure_data = context.scene.BIMPolylineProperties.measurement_polyline for data in measure_data: measurement_prop = data.polyline_point @@ -319,7 +319,7 @@ class MeasureDecorator: self.shader = gpu.shader.from_builtin("UNIFORM_COLOR") gpu.state.point_size_set(6) - measure_data = context.scene.BIMPolylineProperties.measure_polyline + measure_data = context.scene.BIMPolylineProperties.measurement_polyline for data in measure_data: polyline_data = data.polyline_point diff --git a/src/bonsai/bonsai/bim/module/project/operator.py b/src/bonsai/bonsai/bim/module/project/operator.py index 62c245fbd7..ae685a65ea 100644 --- a/src/bonsai/bonsai/bim/module/project/operator.py +++ b/src/bonsai/bonsai/bim/module/project/operator.py @@ -2433,7 +2433,7 @@ class MeasureTool(bpy.types.Operator, PolylineOperator): tool.Polyline.calculate_area(context, self.input_ui) if event.type == "E": - context.scene.BIMPolylineProperties.measure_polyline.clear() + context.scene.BIMPolylineProperties.measurement_polyline.clear() MeasureDecorator.uninstall() tool.Blender.update_viewport() diff --git a/src/bonsai/bonsai/tool/snap.py b/src/bonsai/bonsai/tool/snap.py index c50eadbe2e..b30b8977b1 100644 --- a/src/bonsai/bonsai/tool/snap.py +++ b/src/bonsai/bonsai/tool/snap.py @@ -159,15 +159,17 @@ class Snap(bonsai.core.tool.Snap): @classmethod def move_polyline_to_measure(cls): polyline_data = bpy.context.scene.BIMPolylineProperties.polyline_points - measure_data = bpy.context.scene.BIMPolylineProperties.measure_polyline.add() + measurement_data = bpy.context.scene.BIMPolylineProperties.measurement_polyline.add() + measurement_type = bpy.context.scene.MeasureToolSettings.measure_type + measurement_data.measurement_type = measurement_type for point in polyline_data: - measure_point = measure_data.polyline_point.add() - measure_point.x = point.x - measure_point.y = point.y - measure_point.z = point.z - measure_point.dim = point.dim - measure_point.angle = point.angle - measure_point.position = point.position + measurement_point = measurement_data.polyline_point.add() + measurement_point.x = point.x + measurement_point.y = point.y + measurement_point.z = point.z + measurement_point.dim = point.dim + measurement_point.angle = point.angle + measurement_point.position = point.position @classmethod def snap_on_axis(cls, intersection, tool_state, lock_angle=False): @@ -392,7 +394,7 @@ class Snap(bonsai.core.tool.Snap): detected_snaps.append({"Polyline": snap_points}) # Measure - measure_data = context.scene.BIMPolylineProperties.measure_polyline + measure_data = context.scene.BIMPolylineProperties.measurement_polyline for measure in measure_data: measure_points = measure.polyline_point snap_points = tool.Raycast.ray_cast_to_measure(context, event, measure_points)