From be2131d62cf4fcdfe9d224681c4ab47594e14f4d Mon Sep 17 00:00:00 2001 From: Sigma Dimensions <79010126+myoualid@users.noreply.github.com> Date: Thu, 27 Apr 2023 13:57:47 +0100 Subject: [PATCH] BBIM 4D: Auto-refresh task re-ordering --- .../blenderbim/bim/module/sequence/prop.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/sequence/prop.py b/src/blenderbim/blenderbim/bim/module/sequence/prop.py index c27a1d20f1..a80b935ab6 100644 --- a/src/blenderbim/blenderbim/bim/module/sequence/prop.py +++ b/src/blenderbim/blenderbim/bim/module/sequence/prop.py @@ -20,6 +20,8 @@ import bpy import isodate import ifcopenshell.api import ifcopenshell.util.attribute +import blenderbim.tool as tool +import blenderbim.core.sequence as core from blenderbim.bim.ifc import IfcStore from blenderbim.bim.module.sequence.data import SequenceData import blenderbim.bim.module.pset.data @@ -37,7 +39,6 @@ from bpy.props import ( CollectionProperty, ) - taskcolumns_enum = [] tasktimecolumns_enum = [] @@ -108,7 +109,7 @@ def updateTaskName(self, context): props = context.scene.BIMWorkScheduleProperties if not props.is_task_update_enabled or self.name == "Unnamed": return - self.file = IfcStore.get_file() + self.file = tool.Ifc.get() ifcopenshell.api.run( "sequence.edit_task", self.file, @@ -124,7 +125,7 @@ def updateTaskIdentification(self, context): props = context.scene.BIMWorkScheduleProperties if not props.is_task_update_enabled or self.identification == "XXX": return - self.file = IfcStore.get_file() + self.file = tool.Ifc.get() ifcopenshell.api.run( "sequence.edit_task", self.file, @@ -160,7 +161,7 @@ def updateTaskTimeDateTime(self, context, startfinish): if startfinish_value == "-": return - self.file = IfcStore.get_file() + self.file = tool.Ifc.get() try: startfinish_datetime = parser.isoparse(startfinish_value) @@ -208,7 +209,7 @@ def updateTaskDuration(self, context): self.duration = "-" return - self.file = IfcStore.get_file() + self.file = tool.Ifc.get() task = self.file.by_id(self.ifc_definition_id) if task.TaskTime: task_time = task.TaskTime @@ -283,6 +284,9 @@ def update_color_progress(self, context): color[1] = color_progress.g color[2] = color_progress.b +def update_sort_reversed(self, context): + if context.scene.BIMWorkScheduleProperties.active_work_schedule_id: + core.create_task_tree(tool.Sequence, work_schedule=tool.Ifc.get().by_id(context.scene.BIMWorkScheduleProperties.active_work_schedule_id)) class Task(PropertyGroup): name: StringProperty(name="Name", update=updateTaskName) @@ -360,7 +364,7 @@ class BIMWorkScheduleProperties(PropertyGroup): columns: CollectionProperty(name="Columns", type=Attribute) active_column_index: IntProperty(name="Active Column Index") sort_column: StringProperty(name="Sort Column") - is_sort_reversed: BoolProperty(name="Is Sort Reversed") + is_sort_reversed: BoolProperty(name="Is Sort Reversed", update=update_sort_reversed) column_types: EnumProperty( items=[ ("IfcTask", "IfcTask", ""),