mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-30 12:09:51 +00:00
Create UI operators for aggregate mode in model workspace.
This commit is contained in:
committed by
Bruno Perdigão
parent
85c48f6a63
commit
31ae2c5437
@@ -30,8 +30,10 @@ classes = (
|
|||||||
operator.BIM_OT_aggregate_unassign_object,
|
operator.BIM_OT_aggregate_unassign_object,
|
||||||
operator.BIM_OT_break_link_to_other_aggregates,
|
operator.BIM_OT_break_link_to_other_aggregates,
|
||||||
operator.BIM_OT_select_linked_aggregates,
|
operator.BIM_OT_select_linked_aggregates,
|
||||||
|
operator.BIM_OT_disable_aggregate_mode,
|
||||||
|
operator.BIM_OT_toggle_aggregate_mode_local_view,
|
||||||
prop.BIMObjectAggregateProperties,
|
prop.BIMObjectAggregateProperties,
|
||||||
prop.NotEditingObjects,
|
prop.Objects,
|
||||||
prop.BIMAggregateProperties,
|
prop.BIMAggregateProperties,
|
||||||
ui.BIM_PT_aggregate,
|
ui.BIM_PT_aggregate,
|
||||||
ui.BIM_PT_linked_aggregate,
|
ui.BIM_PT_linked_aggregate,
|
||||||
|
|||||||
@@ -370,3 +370,32 @@ class BIM_OT_select_linked_aggregates(bpy.types.Operator):
|
|||||||
obj.select_set(True)
|
obj.select_set(True)
|
||||||
|
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
class BIM_OT_disable_aggregate_mode(bpy.types.Operator):
|
||||||
|
bl_idname = "bim.disable_aggregate_mode"
|
||||||
|
bl_label = "Disable Aggregate Mode"
|
||||||
|
bl_options = {"REGISTER", "UNDO"}
|
||||||
|
|
||||||
|
def execute(self, context):
|
||||||
|
bpy.ops.object.select_all(action="DESELECT")
|
||||||
|
bonsai.core.aggregate.disable_aggregate_mode(tool.Aggregate)
|
||||||
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
class BIM_OT_toggle_aggregate_mode_local_view(bpy.types.Operator):
|
||||||
|
bl_idname = "bim.toggle_aggregate_mode_local_view"
|
||||||
|
bl_label = "Toggle Aggregate Mode Local View"
|
||||||
|
bl_options = {"REGISTER", "UNDO"}
|
||||||
|
|
||||||
|
def execute(self, context):
|
||||||
|
props = context.scene.BIMAggregateProperties
|
||||||
|
objs = [o.obj for o in props.editing_objects]
|
||||||
|
if props.in_aggregate_mode:
|
||||||
|
if context.space_data.local_view:
|
||||||
|
bpy.ops.view3d.localview()
|
||||||
|
else:
|
||||||
|
for obj in objs:
|
||||||
|
obj.select_set(True)
|
||||||
|
bpy.ops.view3d.localview()
|
||||||
|
|
||||||
|
return {"FINISHED"}
|
||||||
|
|
||||||
|
|||||||
@@ -589,6 +589,12 @@ class EditObjectUI:
|
|||||||
AuthoringData.load(ifc_element_type)
|
AuthoringData.load(ifc_element_type)
|
||||||
|
|
||||||
if context.region.type == "TOOL_HEADER":
|
if context.region.type == "TOOL_HEADER":
|
||||||
|
if context.scene.BIMAggregateProperties.in_aggregate_mode:
|
||||||
|
layout.label(text=f"Aggregate Mode", icon="EMPTY_AXIS")
|
||||||
|
row = cls.layout.row(align=True)
|
||||||
|
op = row.operator("bim.disable_aggregate_mode", text="", icon="X")
|
||||||
|
op = row.operator("bim.toggle_aggregate_mode_local_view", text="", icon="ZOOM_SELECTED")
|
||||||
|
|
||||||
text = format_ifc_camel_case(AuthoringData.data["active_class"])
|
text = format_ifc_camel_case(AuthoringData.data["active_class"])
|
||||||
layout.label(text=f"{text} Edit Tools:", icon="RESTRICT_SELECT_OFF")
|
layout.label(text=f"{text} Edit Tools:", icon="RESTRICT_SELECT_OFF")
|
||||||
cls.draw_parameter_adjustments(context)
|
cls.draw_parameter_adjustments(context)
|
||||||
|
|||||||
Reference in New Issue
Block a user