bim.load_product_related_tasks - show info message when finished

to make ui a bit more responsive
This commit is contained in:
Andrej730
2024-05-27 17:56:01 +05:00
parent 02fd78df14
commit 54978a9868
2 changed files with 10 additions and 3 deletions
@@ -1409,9 +1409,13 @@ class LoadProductTasks(bpy.types.Operator):
return True return True
def execute(self, context): 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) 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"} return {"FINISHED"}
+5 -2
View File
@@ -593,17 +593,20 @@ def generate_gantt_chart(sequence: tool.Sequence, work_schedule: ifcopenshell.en
sequence.generate_gantt_browser_chart(json, work_schedule) 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() filter_by_schedule = sequence.is_filter_by_active_schedule()
if filter_by_schedule: if filter_by_schedule:
work_schedule = sequence.get_active_work_schedule() work_schedule = sequence.get_active_work_schedule()
if work_schedule: if work_schedule:
task_inputs, task_ouputs = sequence.get_tasks_for_product(product, work_schedule) task_inputs, task_ouputs = sequence.get_tasks_for_product(product, work_schedule)
else: else:
return "No active work schedule" return "No active work schedule."
else: else:
task_inputs, task_ouputs = sequence.get_tasks_for_product(product) task_inputs, task_ouputs = sequence.get_tasks_for_product(product)
sequence.load_product_related_tasks(task_inputs, task_ouputs) sequence.load_product_related_tasks(task_inputs, task_ouputs)
return task_inputs + task_ouputs
def reorder_task_nesting( def reorder_task_nesting(