From de414313d3dfd60007a0a34652fd748a6f8ac216 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 11 Nov 2024 16:56:22 +0500 Subject: [PATCH] Fix cost values for resources not updating properly --- src/bonsai/bonsai/tool/resource.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/bonsai/bonsai/tool/resource.py b/src/bonsai/bonsai/tool/resource.py index fd32ede494..a1513fd948 100644 --- a/src/bonsai/bonsai/tool/resource.py +++ b/src/bonsai/bonsai/tool/resource.py @@ -97,6 +97,7 @@ class Resource(bonsai.core.tool.Resource): props.active_resource_id = resource.id() props.resource_attributes.clear() props.editing_resource_type = "ATTRIBUTES" + cls.update_cost_values_ui_data() @classmethod def get_resource_attributes(cls) -> dict[str, Any]: @@ -109,6 +110,7 @@ class Resource(bonsai.core.tool.Resource): props.active_resource_time_id = resource.Usage.id() props.active_resource_id = resource.id() props.editing_resource_type = "USAGE" + cls.update_cost_values_ui_data() @classmethod def get_resource_time(cls, resource: ifcopenshell.entity_instance) -> Union[ifcopenshell.entity_instance, None]: @@ -153,6 +155,7 @@ class Resource(bonsai.core.tool.Resource): props = bpy.context.scene.BIMResourceProperties props.active_resource_id = resource.id() props.editing_resource_type = "COSTS" + cls.update_cost_values_ui_data() @classmethod def disable_editing_resource_cost_value(cls) -> None: @@ -263,6 +266,7 @@ class Resource(bonsai.core.tool.Resource): props.active_resource_id = resource.id() props.editing_resource_type = "QUANTITY" props.active_resource_class = resource.is_a() + cls.update_cost_values_ui_data() @classmethod def enable_editing_resource_quantity(cls, resource_quantity: ifcopenshell.entity_instance) -> None: @@ -450,3 +454,11 @@ class Resource(bonsai.core.tool.Resource): @classmethod def is_attribute_locked(cls, resource: ifcopenshell.entity_instance, attribute) -> bool: return ifcopenshell.util.constraint.is_attribute_locked(resource, attribute) + + @classmethod + def update_cost_values_ui_data(cls) -> None: + from bonsai.bim.module.resource.data import ResourceData + + if not ResourceData.is_loaded: + return + ResourceData.data["cost_values"] = ResourceData.cost_values()