Expand description
ifc-schedule — construction scheduling as a view over the model.
§This crate owns no data and starts no work
It borrows a &Model and interprets the entities that happen to be
scheduling entities. It does not run jobs, touch the wall clock, or decide
what “now” is: a schedule in a file is authored intent, and this crate
reports that intent exactly as stated.
§What is read, and what is deliberately not computed
Read: plans, schedules, tasks, task times, sequences with lag, calendars with recurrence patterns, events, and the orderings those imply.
Not computed: dates, durations in real time, or the critical path. Every
date in IFC is an ISO 8601 string and every duration an ISO 8601 duration;
turning those into a timeline needs a date library and calendar expansion.
This crate depends only on ifc-model and the ifc-schema release
tables, so it returns the authored strings intact and leaves arithmetic to a caller who already has a date
library and knows which calendar applies.
What it does supply is the part that arithmetic needs and cannot recover on its own: the sequence graph, its cycles, and a deterministic execution order.
§Modules
Re-exports§
pub use authoring::assign_tasks_to_control;pub use authoring::assign_tasks_to_control_with_owner_history;pub use authoring::create_event;pub use authoring::create_event_time;pub use authoring::create_event_with_owner_history;pub use authoring::create_lag_time;pub use authoring::create_procedure;pub use authoring::create_procedure_with_owner_history;pub use authoring::create_recurrence_pattern;pub use authoring::create_sequence;pub use authoring::create_sequence_with_owner_history;pub use authoring::create_task;pub use authoring::create_task_time;pub use authoring::create_task_time_recurring;pub use authoring::create_task_with_owner_history;pub use authoring::create_time_period;pub use authoring::create_work_calendar;pub use authoring::create_work_calendar_with_owner_history;pub use authoring::create_work_control;pub use authoring::create_work_control_with_owner_history;pub use authoring::create_work_time;pub use authoring::nest_tasks;pub use authoring::nest_tasks_with_owner_history;pub use authoring::EventDraft;pub use authoring::EventTimeDraft;pub use authoring::ProcedureDraft;pub use authoring::RecurrenceDraft;pub use authoring::ScheduleAuthoringResult;pub use authoring::TaskDraft;pub use authoring::TaskTimeDraft;pub use authoring::WorkControlDraft;pub use calendar::work_calendars;pub use calendar::Recurrence;pub use calendar::RecurrenceType;pub use calendar::WorkCalendar;pub use calendar::WorkTime;pub use calendar::WorkTimeRole;pub use error::SequenceCycle;pub use error::TaskTimeAnomaly;pub use event::events;pub use event::Event;pub use event::EventTime;pub use query::end_tasks;pub use query::execution_order;pub use query::start_tasks;pub use query::subtasks_of;pub use query::tasks_of_schedule;pub use schedule::work_plans;pub use schedule::work_schedules;pub use schedule::WorkControl;pub use schedule::WorkControlKind;pub use sequence::downstream_of;pub use sequence::find_cycle;pub use sequence::predecessors_of;pub use sequence::sequences;pub use sequence::successors_of;pub use sequence::Lag;pub use sequence::Sequence;pub use sequence::SequenceType;pub use sequence::MAX_SEQUENCE_DEPTH;pub use task::tasks;pub use task::DurationType;pub use task::Task;pub use task::TaskTime;
Modules§
- authoring
- Transactional authoring for tasks, task times and sequence links.
- calendar
- Work calendars, working periods, and recurrence.
- error
- Malformed schedule data and traversal refusals.
- event
- Events and their stated times.
- query
- Bounded, deterministic schedule queries.
- schedule
- Work plans and work schedules.
- sequence
- Task sequencing: predecessor/successor links, lag, and cycles.
- task
- Tasks and their stated times.
Enums§
- Schema
Version - The IFC release a schedule record is written against (re-exported from
ifc-schema). Which IFC schema version a table describes.