mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-18 06:21:40 +00:00
Select all objects in array modifier #3331
This commit is contained in:
committed by
Dion Moult
parent
b9d8e86748
commit
4e72ef8b20
@@ -47,6 +47,7 @@ classes = (
|
|||||||
array.EnableEditingArray,
|
array.EnableEditingArray,
|
||||||
array.RemoveArray,
|
array.RemoveArray,
|
||||||
array.SelectArrayParent,
|
array.SelectArrayParent,
|
||||||
|
array.SelectAllArrayObjects,
|
||||||
array.Input3DCursorXArray,
|
array.Input3DCursorXArray,
|
||||||
array.Input3DCursorYArray,
|
array.Input3DCursorYArray,
|
||||||
array.Input3DCursorZArray,
|
array.Input3DCursorZArray,
|
||||||
|
|||||||
@@ -202,6 +202,32 @@ class SelectArrayParent(bpy.types.Operator):
|
|||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
|
||||||
|
class SelectAllArrayObjects(bpy.types.Operator):
|
||||||
|
bl_idname = "bim.select_all_array_objects"
|
||||||
|
bl_label = "Select All Array Objects"
|
||||||
|
bl_options = {"REGISTER", "UNDO"}
|
||||||
|
parent: bpy.props.StringProperty()
|
||||||
|
|
||||||
|
def execute(self, context):
|
||||||
|
try:
|
||||||
|
element = tool.Ifc.get().by_guid(self.parent)
|
||||||
|
except:
|
||||||
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
obj = tool.Ifc.get_object(element)
|
||||||
|
obj.select_set(True)
|
||||||
|
|
||||||
|
pset = ifcopenshell.util.element.get_pset(element, "BBIM_Array")
|
||||||
|
data = json.loads(pset["Data"])
|
||||||
|
for i in range(len(data)):
|
||||||
|
for child in data[i]["children"]:
|
||||||
|
element = tool.Ifc.get().by_guid(child)
|
||||||
|
obj = tool.Ifc.get_object(element)
|
||||||
|
if obj:
|
||||||
|
context.view_layer.objects.active = obj
|
||||||
|
obj.select_set(True)
|
||||||
|
return {"FINISHED"}
|
||||||
|
|
||||||
class Input3DCursorXArray(bpy.types.Operator):
|
class Input3DCursorXArray(bpy.types.Operator):
|
||||||
bl_idname = "bim.input_cursor_x_array"
|
bl_idname = "bim.input_cursor_x_array"
|
||||||
bl_label = "Get 3d Cursor X Input for Array"
|
bl_label = "Get 3d Cursor X Input for Array"
|
||||||
|
|||||||
@@ -189,6 +189,9 @@ class BIM_PT_array(bpy.types.Panel):
|
|||||||
row.label(text=ArrayData.data["parameters"]["parent_name"], icon="CON_CHILDOF")
|
row.label(text=ArrayData.data["parameters"]["parent_name"], icon="CON_CHILDOF")
|
||||||
op = row.operator("bim.select_array_parent", icon="OBJECT_DATA", text="")
|
op = row.operator("bim.select_array_parent", icon="OBJECT_DATA", text="")
|
||||||
op.parent = ArrayData.data["parameters"]["Parent"]
|
op.parent = ArrayData.data["parameters"]["Parent"]
|
||||||
|
op = row.operator("bim.select_all_array_objects", icon="RESTRICT_SELECT_OFF", text="")
|
||||||
|
op.parent = ArrayData.data["parameters"]["Parent"]
|
||||||
|
|
||||||
if ArrayData.data["parameters"]["data_dict"]:
|
if ArrayData.data["parameters"]["data_dict"]:
|
||||||
row.operator("bim.add_array", icon="ADD", text="")
|
row.operator("bim.add_array", icon="ADD", text="")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user