fix parametric duration/ resource update

This commit is contained in:
Sigma Dimensions (Yass)
2023-09-24 04:39:30 +01:00
parent 034d43502b
commit 604373415f
2 changed files with 10 additions and 9 deletions
@@ -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):
+6 -5
View File
@@ -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):