ifcopenshell.api.sequence.recalculate_schedule

Module Contents

class ifcopenshell.api.sequence.recalculate_schedule.Usecase
add_node(task: ifcopenshell.entity_instance) None
backward_pass(node) bool
build_network_graph() None
calculate_free_float(predecessor_date: datetime.datetime, successor_date: datetime.datetime, lag_time: int, predecessor_data: dict, successor_data: dict) datetime.timedelta
execute(work_schedule: ifcopenshell.entity_instance) None
forward_pass(node) bool
offset_date(date: datetime.datetime, days: int, node: dict) datetime.datetime
update_task_times() None
file: ifcopenshell.file
ifcopenshell.api.sequence.recalculate_schedule.recalculate_schedule(file: ifcopenshell.file, work_schedule: ifcopenshell.entity_instance) None

Calculate the critical path and floats for a work schedule

This implements critical path analysis, using the forward pass and backward pass method. When run, any tasks that have no float will be marked as critical, and both the total and free floats will be populated for all task times.

Cyclical relationships are detected and will result in a recursion error.

Parameters:

work_schedule – The IfcWorkSchedule to perform the calculation on.

Returns:

None

Example:

# See the example for ifcopenshell.api.sequence.cascade_schedule for
# details of how to set up a basic set of tasks and calculate the
# critical path. Typically cascade_schedule is run prior to ensure
# that dates are correct.