Improve UI to indicate active representation.

This commit is contained in:
Dion Moult
2023-03-23 15:37:52 +11:00
parent 416efa4f14
commit 95ac021623
11 changed files with 8 additions and 15 deletions
@@ -28,7 +28,6 @@ class BIM_PT_aggregate(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_order = 1
bl_parent_id = "BIM_PT_object_metadata"
@classmethod
@@ -59,7 +59,6 @@ class BIM_PT_object_attributes(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_order = 1
bl_parent_id = "BIM_PT_object_metadata"
@classmethod
@@ -50,7 +50,6 @@ class BIM_PT_Boundary(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_order = 1
bl_parent_id = "BIM_PT_geometry_object"
@classmethod
@@ -162,7 +162,6 @@ class BIM_PT_classification_references(Panel, ReferenceUI):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_order = 1
bl_parent_id = "BIM_PT_object_metadata"
@classmethod
@@ -42,6 +42,11 @@ class RepresentationsData:
def representations(cls):
results = []
element = tool.Ifc.get_entity(bpy.context.active_object)
active_representation_id = None
if bpy.context.active_object.data and hasattr(bpy.context.active_object.data, "BIMMeshProperties"):
active_representation_id = bpy.context.active_object.data.BIMMeshProperties.ifc_definition_id
representations = []
if element.is_a("IfcProduct") and element.Representation:
representations = element.Representation.Representations
@@ -58,6 +63,7 @@ class RepresentationsData:
"ContextIdentifier": "",
"TargetView": "",
"RepresentationType": representation_type or "",
"is_active": representation.id() == active_representation_id,
}
if representation.ContextOfItems.is_a("IfcGeometricRepresentationSubContext"):
data["ContextIdentifier"] = representation.ContextOfItems.ContextIdentifier or ""
@@ -67,7 +67,7 @@ class BIM_PT_representations(Panel):
row.label(text=representation["ContextIdentifier"])
row.label(text=representation["TargetView"])
row.label(text=representation["RepresentationType"])
op = row.operator("bim.switch_representation", icon="OUTLINER_DATA_MESH", text="")
op = row.operator("bim.switch_representation", icon="FILE_REFRESH" if representation["is_active"] else "OUTLINER_DATA_MESH", text="")
op.should_switch_all_meshes = True
op.should_reload = True
op.ifc_definition_id = representation["id"]
@@ -171,7 +171,6 @@ class BIM_PT_object_psets(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_order = 1
bl_parent_id = "BIM_PT_object_metadata"
@classmethod
@@ -214,7 +213,6 @@ class BIM_PT_object_qtos(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_order = 1
bl_parent_id = "BIM_PT_object_metadata"
@classmethod
@@ -292,7 +290,6 @@ class BIM_PT_material_set_psets(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_order = 1
bl_parent_id = "BIM_PT_object_material"
@classmethod
@@ -330,7 +327,6 @@ class BIM_PT_material_set_item_psets(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_order = 1
bl_parent_id = "BIM_PT_object_material"
@classmethod
@@ -538,7 +534,6 @@ class BIM_PT_bulk_property_editor(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_order = 1
bl_options = {"DEFAULT_CLOSED"}
bl_parent_id = "BIM_PT_utilities_object"
@@ -551,7 +546,6 @@ class BIM_PT_rename_parameters(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_order = 1
bl_parent_id = "BIM_PT_bulk_property_editor"
bl_options = {"DEFAULT_CLOSED"}
@@ -127,7 +127,7 @@ class AssignClass(bpy.types.Operator, Operator):
def _execute(self, context):
props = context.scene.BIMRootProperties
objects = [bpy.data.objects.get(self.obj)] if self.obj else context.selected_objects
objects = [bpy.data.objects.get(self.obj)] if self.obj else context.selected_objects or [context.active_object]
ifc_class = self.ifc_class or props.ifc_class
predefined_type = self.userdefined_type if self.predefined_type == "USERDEFINED" else self.predefined_type
ifc_context = self.context_id
@@ -30,7 +30,6 @@ class BIM_PT_class(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_order = 1
bl_parent_id = "BIM_PT_object_metadata"
@classmethod
@@ -27,7 +27,6 @@ class BIM_PT_spatial(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_order = 1
bl_parent_id = "BIM_PT_object_metadata"
@classmethod
@@ -29,7 +29,6 @@ class BIM_PT_type(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_order = 1
bl_parent_id = "BIM_PT_object_metadata"
@classmethod