From 604373415f6fcc8de2839f4c54d7d0d6475bd76f Mon Sep 17 00:00:00 2001 From: "Sigma Dimensions (Yass)" <79010126+myoualid@users.noreply.github.com> Date: Sun, 24 Sep 2023 04:39:30 +0100 Subject: [PATCH] fix parametric duration/ resource update --- src/blenderbim/blenderbim/bim/module/sequence/prop.py | 8 ++++---- src/blenderbim/blenderbim/tool/sequence.py | 11 ++++++----- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/sequence/prop.py b/src/blenderbim/blenderbim/bim/module/sequence/prop.py index 83c48d5a02..629dd214f3 100644 --- a/src/blenderbim/blenderbim/bim/module/sequence/prop.py +++ b/src/blenderbim/blenderbim/bim/module/sequence/prop.py @@ -224,10 +224,8 @@ def updateTaskDuration(self, context): else: task_time = tool.Ifc.run("sequence.add_task_time", task=task) tool.Ifc.run("sequence.edit_task_time", task_time=task_time, attributes={"ScheduleDuration": duration}) - SequenceData.load() blenderbim.core.sequence.load_task_properties(tool.Sequence) - bpy.ops.bim.load_task_properties() - tool.Sequence.load_resources() + tool.Sequence.refresh_task_resources() def get_schedule_predefined_types(self, context): @@ -332,6 +330,8 @@ def updateAssignedResourceName(self, context): pass def updateAssignedResourceUsage(self, context): + if not bpy.context.scene.BIMResourceProperties.is_resource_update_enabled: + return if not self.schedule_usage: return resource = tool.Ifc.get().by_id(self.ifc_definition_id) @@ -344,7 +344,7 @@ def updateAssignedResourceUsage(self, context): tool.Resource.load_resource_properties() tool.Sequence.refresh_task_resources() blenderbim.bim.module.resource.data.refresh() - blenderbim.bim.module.sequence.data.refresh() + refresh_sequence_data() blenderbim.bim.module.pset.data.refresh() class Task(PropertyGroup): diff --git a/src/blenderbim/blenderbim/tool/sequence.py b/src/blenderbim/blenderbim/tool/sequence.py index 6fea1e3639..038a95473f 100644 --- a/src/blenderbim/blenderbim/tool/sequence.py +++ b/src/blenderbim/blenderbim/tool/sequence.py @@ -409,19 +409,21 @@ class Sequence(blenderbim.core.tool.Sequence): return blenderbim.bim.helper.export_attributes(props.task_time_attributes, callback) @classmethod - def load_task_resources(cls, resources): + def load_task_resources(cls, task): + resources = cls.get_task_resources(task) props = bpy.context.scene.BIMWorkScheduleProperties props.task_resources.clear() + bpy.context.scene.BIMResourceProperties.is_resource_update_enabled = False for resource in resources or []: new = props.task_resources.add() new.ifc_definition_id = resource.id() new.name = resource.Name or "Unnamed" new.schedule_usage = resource.Usage.ScheduleUsage or 0 if resource.Usage else 0 + bpy.context.scene.BIMResourceProperties.is_resource_update_enabled = True @classmethod def load_resources(cls): blenderbim.core.resource.load_resources(tool.Resource) - cls.refresh_task_resources @classmethod def get_task_inputs(cls, task): @@ -1664,17 +1666,16 @@ class Sequence(blenderbim.core.tool.Sequence): return inputs = cls.get_task_inputs(task) outputs = cls.get_task_outputs(task) - resources = cls.get_task_resources(task) cls.load_task_inputs(inputs) cls.load_task_outputs(outputs) - cls.load_task_resources(resources) + cls.load_task_resources(task) @classmethod def refresh_task_resources(cls): task = cls.get_highlighted_task() if not task: return - cls.load_task_resources(cls.get_task_resources(task)) + cls.load_task_resources(task) @classmethod def has_duration(cls, task):