From a7ec9c097a750635caf14e0fcce84c757221e02f Mon Sep 17 00:00:00 2001 From: Sigma Dimensions <79010126+myoualid@users.noreply.github.com> Date: Tue, 28 Mar 2023 23:09:07 +0000 Subject: [PATCH] Enable displaying assigned nested resources for Cost Items --- src/blenderbim/blenderbim/bim/module/cost/__init__.py | 1 + src/blenderbim/blenderbim/bim/module/cost/operator.py | 11 +++++++++++ src/blenderbim/blenderbim/bim/module/cost/prop.py | 6 ++++++ src/blenderbim/blenderbim/bim/module/cost/ui.py | 3 +++ src/blenderbim/blenderbim/core/cost.py | 7 ++++++- 5 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/module/cost/__init__.py b/src/blenderbim/blenderbim/bim/module/cost/__init__.py index 942302d059..cbcc610dc6 100644 --- a/src/blenderbim/blenderbim/bim/module/cost/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/cost/__init__.py @@ -69,6 +69,7 @@ classes = ( operator.CalculateCostItemResourceValue, operator.LoadCostItemElementQuantities, operator.LoadCostItemTaskQuantities, + operator.LoadCostItemResourceQuantities, prop.CostItem, prop.CostItemQuantity, prop.CostItemType, diff --git a/src/blenderbim/blenderbim/bim/module/cost/operator.py b/src/blenderbim/blenderbim/bim/module/cost/operator.py index 6130d91615..1176177410 100644 --- a/src/blenderbim/blenderbim/bim/module/cost/operator.py +++ b/src/blenderbim/blenderbim/bim/module/cost/operator.py @@ -519,6 +519,7 @@ class LoadCostItemQuantities(bpy.types.Operator): core.load_cost_item_quantities(tool.Cost) return {"FINISHED"} + class LoadCostItemElementQuantities(bpy.types.Operator): bl_idname = "bim.load_cost_item_element_quantities" bl_label = "Load Cost Item Element Quantities" @@ -539,6 +540,16 @@ class LoadCostItemTaskQuantities(bpy.types.Operator): return {"FINISHED"} +class LoadCostItemResourceQuantities(bpy.types.Operator): + bl_idname = "bim.load_cost_item_resource_quantities" + bl_label = "Load Cost Item Resource Quantities" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + core.load_cost_item_resource_quantities(tool.Cost) + return {"FINISHED"} + + class LoadCostItemTypes(bpy.types.Operator): bl_idname = "bim.load_cost_item_types" bl_label = "Load Cost Item Types" diff --git a/src/blenderbim/blenderbim/bim/module/cost/prop.py b/src/blenderbim/blenderbim/bim/module/cost/prop.py index d1a7313928..680d30ea44 100644 --- a/src/blenderbim/blenderbim/bim/module/cost/prop.py +++ b/src/blenderbim/blenderbim/bim/module/cost/prop.py @@ -142,6 +142,10 @@ def update_active_cost_item_tasks(self, context): bpy.ops.bim.load_cost_item_task_quantities() +def update_active_cost_item_resources(self, context): + bpy.ops.bim.load_cost_item_resource_quantities() + + class BIMCostProperties(PropertyGroup): cost_schedule_predefined_types: EnumProperty( items=get_schedule_predefined_types, name="Predefined Type", default=None @@ -195,4 +199,6 @@ class BIMCostProperties(PropertyGroup): contracted_cost_item_rates: StringProperty(name="Contracted Cost Item Rates", default="[]") show_nested_elements: BoolProperty(name="Show Nested Tasks", default=False, update=update_active_cost_item_elements) show_nested_tasks: BoolProperty(name="Show Nested Tasks", default=False, update=update_active_cost_item_tasks) + show_nested_resources: BoolProperty( + name="Show Nested Tasks", default=False, update=update_active_cost_item_resources ) diff --git a/src/blenderbim/blenderbim/bim/module/cost/ui.py b/src/blenderbim/blenderbim/bim/module/cost/ui.py index e1a7371882..9a7f28c0d9 100644 --- a/src/blenderbim/blenderbim/bim/module/cost/ui.py +++ b/src/blenderbim/blenderbim/bim/module/cost/ui.py @@ -441,6 +441,9 @@ class BIM_PT_cost_item_quantities(Panel): op.cost_item = cost_item.ifc_definition_id op.prop_name = "" + row2 = col.row() + row2.prop(self.props, "show_nested_resources", text="Show nested") + row2 = col.row() row2.template_list( "BIM_UL_cost_item_quantities", diff --git a/src/blenderbim/blenderbim/core/cost.py b/src/blenderbim/blenderbim/core/cost.py index 108e2cb82e..ca7c2b18f6 100644 --- a/src/blenderbim/blenderbim/core/cost.py +++ b/src/blenderbim/blenderbim/core/cost.py @@ -112,7 +112,9 @@ def assign_cost_item_quantity(ifc, cost, cost_item, related_object_type, prop_na def load_cost_item_quantities(cost): cost_item = cost.get_highlighted_cost_item() - cost.load_cost_item_quantities(cost_item) + cost.load_cost_item_quantity_assignments(cost_item, related_object_type="PRODUCT") + cost.load_cost_item_quantity_assignments(cost_item, related_object_type="PROCESS") + cost.load_cost_item_quantity_assignments(cost_item, related_object_type="RESOURCE") def load_cost_item_element_quantities(cost): cost_item = cost.get_highlighted_cost_item() @@ -122,6 +124,9 @@ def load_cost_item_task_quantities(cost): cost_item = cost.get_highlighted_cost_item() cost.load_cost_item_quantity_assignments(cost_item, related_object_type="PROCESS") +def load_cost_item_resource_quantities(cost): + cost_item = cost.get_highlighted_cost_item() + cost.load_cost_item_quantity_assignments(cost_item, related_object_type="RESOURCE") def assign_cost_value(ifc, cost_item, cost_rate): ifc.run("cost.assign_cost_value", cost_item=cost_item, cost_rate=cost_rate)