From 4dd82cad9b11d50a0306501072c4a4669b25b280 Mon Sep 17 00:00:00 2001 From: Ryan Schultz Date: Sun, 15 Mar 2026 15:19:04 -0500 Subject: [PATCH] Add searchable drawing selector to annotation placement dialogs Replace plain enum dropdowns with prop_with_search in the AddAnnotation and AssignManualDrawingReference operator dialogs, making it easier to locate a target drawing when many drawings exist in the project. Generated with the assistance of an AI coding tool. --- src/bonsai/bonsai/bim/module/drawing/operator.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/drawing/operator.py b/src/bonsai/bonsai/bim/module/drawing/operator.py index 33879cd088..c7833b3d27 100644 --- a/src/bonsai/bonsai/bim/module/drawing/operator.py +++ b/src/bonsai/bonsai/bim/module/drawing/operator.py @@ -67,6 +67,7 @@ import bonsai.bim.module.drawing.svgwriter as svgwriter import bonsai.core.drawing as core import bonsai.core.geometry import bonsai.tool as tool +from bonsai.bim.helper import prop_with_search from bonsai.bim.ifc import IfcStore from bonsai.bim.module.drawing.data import DecoratorData, ElementValuesData from bonsai.bim.module.drawing.decoration import CutDecorator @@ -1767,7 +1768,7 @@ class AddAnnotation(bpy.types.Operator, tool.Ifc.Operator): def draw(self, context): self.layout.prop(self, "annotation_subtype", expand=True) - self.layout.prop(self, "drawing_id") + prop_with_search(self.layout, self, "drawing_id", should_click_ok=True, search_threshold=0, original_operator_path=f"{__name__}.AddAnnotation") def _execute(self, context): props = tool.Drawing.get_annotation_props() @@ -1829,7 +1830,7 @@ class AssignManualDrawingReference(bpy.types.Operator, tool.Ifc.Operator): return context.window_manager.invoke_props_dialog(self) def draw(self, context): - self.layout.prop(self, "drawing_id") + prop_with_search(self.layout, self, "drawing_id", search_threshold=0, original_operator_path=f"{__name__}.AssignManualDrawingReference") def _execute(self, context): element = tool.Ifc.get_entity(context.active_object)