Skip to main content

Crate ifc_schedule

Crate ifc_schedule 

Source
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

ModuleRole
scheduleIfcWorkPlan and IfcWorkSchedule
taskIfcTask and IfcTaskTime
sequenceIfcRelSequence, lag, and cycle reporting
calendarIfcWorkCalendar and recurrence patterns
eventIfcEvent and IfcEventTime
queryDeterministic membership and ordering queries
errorContradictions a file can state

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§

SchemaVersion
The IFC release a schedule record is written against (re-exported from ifc-schema). Which IFC schema version a table describes.