From 8c2d71b3066393fc7dec491d8c03c1bd82a29e48 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 17 Feb 2025 13:23:38 +0500 Subject: [PATCH] Rename library references from UI Example - https://imgur.com/a/Ez99d1N --- src/bonsai/bonsai/bim/module/library/prop.py | 13 ++++++++++++- src/bonsai/bonsai/bim/module/library/ui.py | 4 ++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/library/prop.py b/src/bonsai/bonsai/bim/module/library/prop.py index 896bf0da2e..24defdf9ea 100644 --- a/src/bonsai/bonsai/bim/module/library/prop.py +++ b/src/bonsai/bonsai/bim/module/library/prop.py @@ -17,6 +17,7 @@ # along with Bonsai. If not, see . import bpy +import bonsai.tool as tool from bonsai.bim.prop import StrProperty, Attribute from bonsai.bim.module.library.data import LibrariesData from bpy.types import PropertyGroup @@ -37,8 +38,18 @@ def update_active_reference_index(self, context): LibrariesData.is_loaded = False +def update_library_element_name(self: "LibraryReference", context: bpy.types.Context): + ifc_file = tool.Ifc.get() + element = ifc_file.by_id(self.ifc_definition_id) + previous_name = element.Name + if self.name == previous_name: + return + element.Name = self.name + LibrariesData.is_loaded = False + + class LibraryReference(PropertyGroup): - name: StringProperty(name="Name") + name: StringProperty(name="Name", update=update_library_element_name) ifc_definition_id: IntProperty(name="IFC Definition ID") if TYPE_CHECKING: diff --git a/src/bonsai/bonsai/bim/module/library/ui.py b/src/bonsai/bonsai/bim/module/library/ui.py index 1c9f389a7e..bfc64e3020 100644 --- a/src/bonsai/bonsai/bim/module/library/ui.py +++ b/src/bonsai/bonsai/bim/module/library/ui.py @@ -140,7 +140,7 @@ class BIM_UL_library_references(UIList): ): if item: row = layout.row(align=True) - row.label(text=item.name) + row.prop(item, "name", text="", emboss=False) op = row.operator("bim.enable_editing_library_reference", text="", icon="GREASEPENCIL") op.reference = item.ifc_definition_id op = row.operator("bim.remove_library_reference", text="", icon="X") @@ -153,6 +153,6 @@ class BIM_UL_object_library_references(UIList): ): if item: row = layout.row(align=True) - row.label(text=item.name) + row.prop(item, "name", text="", emboss=False) op = row.operator("bim.assign_library_reference", text="", icon="ADD") op.reference = item.ifc_definition_id