mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-19 14:41:25 +00:00
fix parametric duration/ resource update
This commit is contained in:
@@ -224,10 +224,8 @@ def updateTaskDuration(self, context):
|
|||||||
else:
|
else:
|
||||||
task_time = tool.Ifc.run("sequence.add_task_time", task=task)
|
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})
|
tool.Ifc.run("sequence.edit_task_time", task_time=task_time, attributes={"ScheduleDuration": duration})
|
||||||
SequenceData.load()
|
|
||||||
blenderbim.core.sequence.load_task_properties(tool.Sequence)
|
blenderbim.core.sequence.load_task_properties(tool.Sequence)
|
||||||
bpy.ops.bim.load_task_properties()
|
tool.Sequence.refresh_task_resources()
|
||||||
tool.Sequence.load_resources()
|
|
||||||
|
|
||||||
|
|
||||||
def get_schedule_predefined_types(self, context):
|
def get_schedule_predefined_types(self, context):
|
||||||
@@ -332,6 +330,8 @@ def updateAssignedResourceName(self, context):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
def updateAssignedResourceUsage(self, context):
|
def updateAssignedResourceUsage(self, context):
|
||||||
|
if not bpy.context.scene.BIMResourceProperties.is_resource_update_enabled:
|
||||||
|
return
|
||||||
if not self.schedule_usage:
|
if not self.schedule_usage:
|
||||||
return
|
return
|
||||||
resource = tool.Ifc.get().by_id(self.ifc_definition_id)
|
resource = tool.Ifc.get().by_id(self.ifc_definition_id)
|
||||||
@@ -344,7 +344,7 @@ def updateAssignedResourceUsage(self, context):
|
|||||||
tool.Resource.load_resource_properties()
|
tool.Resource.load_resource_properties()
|
||||||
tool.Sequence.refresh_task_resources()
|
tool.Sequence.refresh_task_resources()
|
||||||
blenderbim.bim.module.resource.data.refresh()
|
blenderbim.bim.module.resource.data.refresh()
|
||||||
blenderbim.bim.module.sequence.data.refresh()
|
refresh_sequence_data()
|
||||||
blenderbim.bim.module.pset.data.refresh()
|
blenderbim.bim.module.pset.data.refresh()
|
||||||
|
|
||||||
class Task(PropertyGroup):
|
class Task(PropertyGroup):
|
||||||
|
|||||||
@@ -409,19 +409,21 @@ class Sequence(blenderbim.core.tool.Sequence):
|
|||||||
return blenderbim.bim.helper.export_attributes(props.task_time_attributes, callback)
|
return blenderbim.bim.helper.export_attributes(props.task_time_attributes, callback)
|
||||||
|
|
||||||
@classmethod
|
@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 = bpy.context.scene.BIMWorkScheduleProperties
|
||||||
props.task_resources.clear()
|
props.task_resources.clear()
|
||||||
|
bpy.context.scene.BIMResourceProperties.is_resource_update_enabled = False
|
||||||
for resource in resources or []:
|
for resource in resources or []:
|
||||||
new = props.task_resources.add()
|
new = props.task_resources.add()
|
||||||
new.ifc_definition_id = resource.id()
|
new.ifc_definition_id = resource.id()
|
||||||
new.name = resource.Name or "Unnamed"
|
new.name = resource.Name or "Unnamed"
|
||||||
new.schedule_usage = resource.Usage.ScheduleUsage or 0 if resource.Usage else 0
|
new.schedule_usage = resource.Usage.ScheduleUsage or 0 if resource.Usage else 0
|
||||||
|
bpy.context.scene.BIMResourceProperties.is_resource_update_enabled = True
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def load_resources(cls):
|
def load_resources(cls):
|
||||||
blenderbim.core.resource.load_resources(tool.Resource)
|
blenderbim.core.resource.load_resources(tool.Resource)
|
||||||
cls.refresh_task_resources
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_task_inputs(cls, task):
|
def get_task_inputs(cls, task):
|
||||||
@@ -1664,17 +1666,16 @@ class Sequence(blenderbim.core.tool.Sequence):
|
|||||||
return
|
return
|
||||||
inputs = cls.get_task_inputs(task)
|
inputs = cls.get_task_inputs(task)
|
||||||
outputs = cls.get_task_outputs(task)
|
outputs = cls.get_task_outputs(task)
|
||||||
resources = cls.get_task_resources(task)
|
|
||||||
cls.load_task_inputs(inputs)
|
cls.load_task_inputs(inputs)
|
||||||
cls.load_task_outputs(outputs)
|
cls.load_task_outputs(outputs)
|
||||||
cls.load_task_resources(resources)
|
cls.load_task_resources(task)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def refresh_task_resources(cls):
|
def refresh_task_resources(cls):
|
||||||
task = cls.get_highlighted_task()
|
task = cls.get_highlighted_task()
|
||||||
if not task:
|
if not task:
|
||||||
return
|
return
|
||||||
cls.load_task_resources(cls.get_task_resources(task))
|
cls.load_task_resources(task)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def has_duration(cls, task):
|
def has_duration(cls, task):
|
||||||
|
|||||||
Reference in New Issue
Block a user