UI Simplification with Panel Groups (#1979)

* concept demo

* small naming change + added missing ui classes

* added newline to end of file
This commit is contained in:
Vukas Pajic
2022-01-11 10:03:29 +01:00
committed by GitHub
parent fe9cda8ba1
commit e81848dfba
40 changed files with 213 additions and 1 deletions
+14
View File
@@ -102,6 +102,20 @@ classes = [
ui.BIM_UL_generic,
ui.BIM_UL_topics,
ui.BIM_ADDON_preferences,
#scene panel groups -->
ui.BIM_PT_project_and_template_setup,
ui.BIM_PT_utilities,
ui.BIM_PT_collaboration_and_data_exchange,
ui.BIM_PT_geometry_and_spatial_structure,
ui.BIM_PT_4D5D,
ui.BIM_PT_structural,
ui.BIM_PT_misc,
ui.BIM_PT_quality_control,
#object panel groups -->
ui.BIM_PT_geometry_and_spatial_structure_object,
ui.BIM_PT_object_attributes_properties_and_relationships,
ui.BIM_PT_utilities_object,
ui.BIM_PT_misc_object
]
for mod in modules.values():
@@ -28,6 +28,7 @@ class BIM_PT_aggregate(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_parent_id = "BIM_PT_object_attributes_properties_and_relationships"
@classmethod
def poll(cls, context):
@@ -59,6 +59,8 @@ class BIM_PT_object_attributes(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_parent_id = "BIM_PT_object_attributes_properties_and_relationships"
bl_options = {"DEFAULT_CLOSED"}
@classmethod
def poll(cls, context):
@@ -80,6 +82,8 @@ class BIM_PT_material_attributes(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "material"
bl_parent_id = "BIM_PT_object_attributes_properties_and_relationships"
bl_options = {"DEFAULT_CLOSED"}
@classmethod
def poll(cls, context):
@@ -29,6 +29,7 @@ class BIM_PT_bcf(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_collaboration_and_data_exchange"
def draw(self, context):
layout = self.layout
@@ -27,6 +27,7 @@ class BIM_PT_qa(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_object_attributes_properties_and_relationships"
def draw(self, context):
self.layout.use_property_split = True
@@ -31,6 +31,7 @@ class BIM_PT_SceneBoundaries(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_geometry_and_spatial_structure"
@classmethod
def poll(cls, context):
@@ -49,6 +50,7 @@ class BIM_PT_Boundary(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_parent_id = "BIM_PT_geometry_and_spatial_structure_object"
@classmethod
def poll(cls, context):
@@ -117,6 +119,7 @@ class BIM_PT_SpaceBoundaries(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_parent_id = "BIM_PT_geometry_and_spatial_structure_object"
@classmethod
def poll(cls, context):
@@ -27,6 +27,7 @@ class BIM_PT_ifcclash(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_quality_control"
def draw(self, context):
layout = self.layout
@@ -29,6 +29,7 @@ class BIM_PT_classifications(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_project_and_template_setup"
@classmethod
def poll(cls, context):
@@ -86,6 +87,7 @@ class BIM_PT_classification_references(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_parent_id = "BIM_PT_object_attributes_properties_and_relationships"
@classmethod
def poll(cls, context):
@@ -27,6 +27,7 @@ class BIM_PT_cobie(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_collaboration_and_data_exchange"
def draw(self, context):
layout = self.layout
@@ -29,6 +29,7 @@ class BIM_PT_constraints(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_misc"
@classmethod
def poll(cls, context):
@@ -73,6 +74,7 @@ class BIM_PT_object_constraints(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_parent_id = "BIM_PT_misc_object"
@classmethod
def poll(cls, context):
@@ -29,6 +29,7 @@ class BIM_PT_context(bpy.types.Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_geometry_and_spatial_structure"
@classmethod
def poll(cls, context):
@@ -31,6 +31,7 @@ class BIM_PT_cost_schedules(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_4D5D"
@classmethod
def poll(cls, context):
@@ -27,6 +27,7 @@ class BIM_PT_ifccsv(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_collaboration_and_data_exchange"
def draw(self, context):
layout = self.layout
@@ -27,6 +27,7 @@ class BIM_PT_debug(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_quality_control"
def draw(self, context):
layout = self.layout
@@ -27,6 +27,7 @@ class BIM_PT_diff(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_quality_control"
def draw(self, context):
layout = self.layout
@@ -29,6 +29,7 @@ class BIM_PT_documents(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_collaboration_and_data_exchange"
@classmethod
def poll(cls, context):
@@ -77,6 +78,7 @@ class BIM_PT_object_documents(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_parent_id = "BIM_PT_misc_object"
@classmethod
def poll(cls, context):
@@ -29,6 +29,7 @@ class BIM_PT_representations(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_parent_id = "BIM_PT_geometry_and_spatial_structure"
@classmethod
def poll(cls, context):
@@ -30,6 +30,7 @@ class BIM_PT_gis(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_geometry_and_spatial_structure"
@classmethod
def poll(cls, context):
@@ -26,6 +26,7 @@ class BIM_PT_cityjson_converter(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_collaboration_and_data_exchange"
def draw(self, context):
layout = self.layout
@@ -28,6 +28,7 @@ class BIM_PT_groups(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_utilities"
@classmethod
def poll(cls, context):
@@ -74,6 +75,7 @@ class BIM_PT_object_groups(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_parent_id = "BIM_PT_utilities_object"
@classmethod
def poll(cls, context):
@@ -28,6 +28,7 @@ class BIM_PT_layers(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_geometry_and_spatial_structure_object"
@classmethod
def poll(cls, context):
@@ -29,6 +29,7 @@ class BIM_PT_libraries(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_project_and_template_setup"
@classmethod
def poll(cls, context):
@@ -99,6 +100,7 @@ class BIM_PT_library_references(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_parent_id = "BIM_PT_misc_object"
@classmethod
def poll(cls, context):
@@ -50,6 +50,7 @@ class BIM_PT_object_material(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_parent_id = "BIM_PT_object_attributes_properties_and_relationships"
@classmethod
def poll(cls, context):
@@ -83,6 +83,7 @@ class BIM_PT_people(bpy.types.Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_project_and_template_setup"
@classmethod
def poll(cls, context):
@@ -139,6 +140,7 @@ class BIM_PT_organisations(bpy.types.Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_project_and_template_setup"
@classmethod
def poll(cls, context):
@@ -183,6 +185,7 @@ class BIM_PT_owner(bpy.types.Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_project_and_template_setup"
@classmethod
def poll(cls, context):
@@ -27,6 +27,7 @@ class BIM_PT_patch(bpy.types.Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_quality_control"
def draw(self, context):
layout = self.layout
@@ -29,6 +29,7 @@ class BIM_PT_profiles(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_geometry_and_spatial_structure"
@classmethod
def poll(cls, context):
@@ -28,6 +28,7 @@ class BIM_PT_project(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_project_and_template_setup"
def draw(self, context):
if not ProjectData.is_loaded:
@@ -175,6 +176,7 @@ class BIM_PT_project_library(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_project_and_template_setup"
def draw(self, context):
self.layout.use_property_decorate = False
@@ -216,6 +218,7 @@ class BIM_PT_links(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_project_and_template_setup"
def draw(self, context):
self.props = context.scene.BIMProjectProperties
@@ -119,6 +119,7 @@ class BIM_PT_object_psets(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_parent_id = "BIM_PT_object_attributes_properties_and_relationships"
@classmethod
def poll(cls, context):
@@ -157,6 +158,7 @@ class BIM_PT_object_qtos(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_parent_id = "BIM_PT_object_attributes_properties_and_relationships"
@classmethod
def poll(cls, context):
@@ -190,6 +192,7 @@ class BIM_PT_material_psets(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "material"
bl_parent_id = "BIM_PT_object_attributes_properties_and_relationships"
@classmethod
def poll(cls, context):
@@ -383,6 +386,7 @@ class BIM_PT_bulk_property_editor(Panel):
bl_region_type = "WINDOW"
bl_context = "object"
bl_options = {"DEFAULT_CLOSED"}
bl_parent_id = "BIM_PT_utilities_object"
def draw(self, context):
pass
@@ -32,6 +32,7 @@ class BIM_PT_pset_template(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_project_and_template_setup"
def draw(self, context):
layout = self.layout
@@ -29,6 +29,7 @@ class BIM_PT_resources(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_4D5D"
@classmethod
def poll(cls, context):
@@ -30,6 +30,7 @@ class BIM_PT_class(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_parent_id = "BIM_PT_object_attributes_properties_and_relationships"
@classmethod
def poll(cls, context):
@@ -28,6 +28,7 @@ class BIM_PT_search(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_utilities"
@classmethod
def poll(cls, context):
@@ -34,6 +34,7 @@ class BIM_PT_work_plans(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_4D5D"
@classmethod
def poll(cls, context):
@@ -99,6 +100,7 @@ class BIM_PT_work_schedules(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_4D5D"
@classmethod
def poll(cls, context):
@@ -546,6 +548,7 @@ class BIM_PT_work_calendars(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_4D5D"
@classmethod
def poll(cls, context):
@@ -27,6 +27,7 @@ class BIM_PT_spatial(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_parent_id = "BIM_PT_geometry_and_spatial_structure_object"
@classmethod
def poll(cls, context):
@@ -92,6 +92,7 @@ class BIM_PT_structural_boundary_conditions(Panel):
bl_region_type = "WINDOW"
bl_context = "object"
# bl_parent_id = "BIM_PT_structural_connection"
bl_parent_id = "BIM_PT_misc_object"
@classmethod
def poll(cls, context):
@@ -124,6 +125,7 @@ class BIM_PT_connected_structural_members(Panel):
bl_region_type = "WINDOW"
bl_context = "object"
# bl_parent_id = "BIM_PT_structural_connection"
bl_parent_id = "BIM_PT_misc_object"
@classmethod
def poll(cls, context):
@@ -180,6 +182,7 @@ class BIM_PT_structural_member(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_parent_id = "BIM_PT_misc_object"
@classmethod
def poll(cls, context):
@@ -220,6 +223,7 @@ class BIM_PT_structural_connection(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_parent_id = "BIM_PT_misc_object"
@classmethod
def poll(cls, context):
@@ -278,6 +282,7 @@ class BIM_PT_structural_analysis_models(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_structural"
@classmethod
def poll(cls, context):
@@ -357,6 +362,7 @@ class BIM_PT_structural_load_cases(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_structural"
@classmethod
def poll(cls, context):
@@ -453,6 +459,7 @@ class BIM_PT_structural_loads(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_structural"
@classmethod
def poll(cls, context):
@@ -521,6 +528,7 @@ class BIM_PT_boundary_conditions(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_structural"
@classmethod
def poll(cls, context):
@@ -28,6 +28,7 @@ class BIM_PT_systems(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_utilities"
@classmethod
def poll(cls, context):
@@ -74,6 +75,7 @@ class BIM_PT_object_systems(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_parent_id = "BIM_PT_utilities_object"
@classmethod
def poll(cls, context):
@@ -29,6 +29,7 @@ class BIM_PT_type(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_parent_id = "BIM_PT_object_attributes_properties_and_relationships"
@classmethod
def poll(cls, context):
@@ -29,6 +29,7 @@ class BIM_PT_units(Panel):
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_parent_id = "BIM_PT_project_and_template_setup"
@classmethod
def poll(cls, context):
+134
View File
@@ -129,3 +129,137 @@ def ifc_units(self, context):
row.prop(props, "imperial_precision")
else:
row.prop(props, "metric_precision")
# Scene Panel Groups -->
class BIM_PT_project_and_template_setup(Panel):
bl_label = "IFC Project and Template Setup"
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_options = {"DEFAULT_CLOSED"}
def draw(self, context):
pass
class BIM_PT_utilities(Panel):
bl_label = "IFC Utilities"
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_options = {"DEFAULT_CLOSED"}
def draw(self, context):
pass
class BIM_PT_collaboration_and_data_exchange(Panel):
bl_label = "IFC Collaboration and Data Exchange"
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_options = {"DEFAULT_CLOSED"}
def draw(self, context):
pass
class BIM_PT_geometry_and_spatial_structure(Panel):
bl_label = "IFC Geometry and Spatial Structure"
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_options = {"DEFAULT_CLOSED"}
def draw(self, context):
pass
class BIM_PT_4D5D(Panel):
bl_label = "IFC 4D/5D"
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_options = {"DEFAULT_CLOSED"}
def draw(self, context):
pass
class BIM_PT_structural(Panel):
bl_label = "IFC Structural"
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_options = {"DEFAULT_CLOSED"}
def draw(self, context):
pass
class BIM_PT_misc(Panel):
bl_label = "IFC Misc."
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_options = {"DEFAULT_CLOSED"}
def draw(self, context):
pass
class BIM_PT_quality_control(Panel):
bl_label = "IFC Quality Control"
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "scene"
bl_options = {"DEFAULT_CLOSED"}
def draw(self, context):
pass
# Object Panel Groups -->
class BIM_PT_geometry_and_spatial_structure_object(Panel):
bl_label = "IFC Geometry and Spatial Structure"
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_options = {"DEFAULT_CLOSED"}
def draw(self, context):
pass
class BIM_PT_object_attributes_properties_and_relationships(Panel):
bl_label = "IFC Object Attributes, Properties and Relationships"
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_options = {"DEFAULT_CLOSED"}
def draw(self, context):
pass
class BIM_PT_utilities_object(Panel):
bl_label = "IFC Utilities"
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_options = {"DEFAULT_CLOSED"}
def draw(self, context):
pass
class BIM_PT_misc_object(Panel):
bl_label = "IFC Misc."
bl_space_type = "PROPERTIES"
bl_region_type = "WINDOW"
bl_context = "object"
bl_options = {"DEFAULT_CLOSED"}
def draw(self, context):
pass