mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-18 06:21:40 +00:00
Improve guess schedule date range ( including tasks with input assignements)
This commit is contained in:
@@ -298,10 +298,10 @@ def guess_date_range(work_schedule):
|
|||||||
root_tasks = get_root_tasks(work_schedule)
|
root_tasks = get_root_tasks(work_schedule)
|
||||||
tasks_with_assignements = []
|
tasks_with_assignements = []
|
||||||
for task in root_tasks:
|
for task in root_tasks:
|
||||||
if has_task_outputs(task):
|
if has_task_outputs(task) or has_task_inputs(task):
|
||||||
tasks_with_assignements.append(task)
|
tasks_with_assignements.append(task)
|
||||||
for sub_task in get_all_nested_tasks(task):
|
for sub_task in get_all_nested_tasks(task):
|
||||||
if has_task_outputs(sub_task):
|
if has_task_outputs(sub_task) or has_task_inputs(sub_task):
|
||||||
tasks_with_assignements.append(sub_task)
|
tasks_with_assignements.append(sub_task)
|
||||||
|
|
||||||
for task in tasks_with_assignements:
|
for task in tasks_with_assignements:
|
||||||
@@ -334,5 +334,18 @@ def get_task_outputs(task, is_deep=False):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def get_task_inputs(task):
|
||||||
|
inputs = []
|
||||||
|
for rel in task.OperatesOn:
|
||||||
|
for object in rel.RelatedObjects:
|
||||||
|
if object.is_a("IfcProduct"):
|
||||||
|
inputs.append(object)
|
||||||
|
return inputs
|
||||||
|
|
||||||
|
|
||||||
def has_task_outputs(task):
|
def has_task_outputs(task):
|
||||||
return len(get_task_outputs(task)) > 0
|
return len(get_task_outputs(task)) > 0
|
||||||
|
|
||||||
|
|
||||||
|
def has_task_inputs(task):
|
||||||
|
return len(get_task_inputs(task)) > 0
|
||||||
|
|||||||
Reference in New Issue
Block a user