From 54978a986829d14babcf405f09015214d8cc7f58 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 27 May 2024 17:56:01 +0500 Subject: [PATCH] bim.load_product_related_tasks - show info message when finished to make ui a bit more responsive --- src/blenderbim/blenderbim/bim/module/sequence/operator.py | 6 +++++- src/blenderbim/blenderbim/core/sequence.py | 7 +++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/sequence/operator.py b/src/blenderbim/blenderbim/bim/module/sequence/operator.py index c79503eab1..337a01c11f 100644 --- a/src/blenderbim/blenderbim/bim/module/sequence/operator.py +++ b/src/blenderbim/blenderbim/bim/module/sequence/operator.py @@ -1409,9 +1409,13 @@ class LoadProductTasks(bpy.types.Operator): return True def execute(self, context): - core.load_product_related_tasks( + result = core.load_product_related_tasks( tool.Sequence, product=tool.Ifc.get().by_id(context.active_object.BIMObjectProperties.ifc_definition_id) ) + if isinstance(result, str): + self.report({"INFO"}, result) + else: + self.report({"INFO"}, f"{len(result)} product tasks loaded.") return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/core/sequence.py b/src/blenderbim/blenderbim/core/sequence.py index 510caa8a04..2289ce2951 100644 --- a/src/blenderbim/blenderbim/core/sequence.py +++ b/src/blenderbim/blenderbim/core/sequence.py @@ -593,17 +593,20 @@ def generate_gantt_chart(sequence: tool.Sequence, work_schedule: ifcopenshell.en sequence.generate_gantt_browser_chart(json, work_schedule) -def load_product_related_tasks(sequence: tool.Sequence, product: ifcopenshell.entity_instance) -> Union[None, str]: +def load_product_related_tasks( + sequence: tool.Sequence, product: ifcopenshell.entity_instance +) -> Union[list[ifcopenshell.entity_instance], str]: filter_by_schedule = sequence.is_filter_by_active_schedule() if filter_by_schedule: work_schedule = sequence.get_active_work_schedule() if work_schedule: task_inputs, task_ouputs = sequence.get_tasks_for_product(product, work_schedule) else: - return "No active work schedule" + return "No active work schedule." else: task_inputs, task_ouputs = sequence.get_tasks_for_product(product) sequence.load_product_related_tasks(task_inputs, task_ouputs) + return task_inputs + task_ouputs def reorder_task_nesting(