Operator to select link handle

Example - https://imgchest.com/p/md7oxbze97p
This commit is contained in:
Andrej730
2024-09-30 11:20:29 +05:00
parent 06a2c5bf0b
commit b67be01590
3 changed files with 22 additions and 1 deletions
@@ -53,6 +53,7 @@ classes = (
operator.RewindLibrary,
operator.SaveLibraryFile,
operator.SelectLibraryFile,
operator.SelectLinkHandle,
operator.ToggleFilterCategories,
operator.ToggleLinkSelectability,
operator.ToggleLinkVisibility,
@@ -1245,6 +1245,24 @@ class ToggleLinkVisibility(bpy.types.Operator):
]
class SelectLinkHandle(bpy.types.Operator):
bl_idname = "bim.select_link_handle"
bl_label = "Select Link Handle"
bl_options = {"REGISTER", "UNDO"}
bl_description = "Select link empty object handle"
index: bpy.props.IntProperty(name="Link Index")
def execute(self, context):
props = context.scene.BIMProjectProperties
link = props.links[self.index]
handle = link.empty_handle
if not handle:
self.report({"ERROR"}, "Link has no empty handle (probably it was deleted).")
return {"CANCELLED"}
tool.Blender.select_and_activate_single_object(context, handle)
return {"FINISHED"}
class ExportIFCBase:
bl_idname = "bim.save_project"
bl_label = "Save IFC"
+3 -1
View File
@@ -470,7 +470,7 @@ class BIM_UL_filter_categories(UIList):
class BIM_UL_links(UIList):
def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index):
if item:
row = layout.row(align=True)
if item.is_loaded:
@@ -498,6 +498,8 @@ class BIM_UL_links(UIList):
)
op.link = item.name
op.mode = "VISIBLE"
op = row.operator("bim.select_link_handle", text="", icon="OBJECT_DATA")
op.index = index
op = row.operator("bim.unload_link", text="", icon="UNLINKED")
op.filepath = item.name
op = row.operator("bim.reload_link", text="", icon="FILE_REFRESH")