Skip to main content

Crate ifc_control

Crate ifc_control 

Source
Expand description

Bounded IFC control semantics: permits, project orders, action requests, and performance history.

This crate owns the IfcControl subtypes that govern work rather than describe physical form. It stages them into a transaction and validates what the schema states; it does not implement approval workflow, authorization, or policy decisions, which are the concern of whatever system issues the permit.

Controls relate to the work they govern through IfcRelAssignsToControl. The crate owning the relating control writes that relationship, so this crate stages it for its own four controls and refuses any other.

Records are laid out by attribute name from one release’s table (#198). IfcRoot.OwnerHistory is required in IFC2X3 and optional from IFC4 on, so the writers that leave it unset refuse IFC2X3 with ControlError::AuthoringRequired; the *_with_owner_history variants bind the model’s declared release and take a caller-supplied IfcOwnerHistory (#202).

IfcCostItem, IfcCostSchedule, IfcWorkCalendar and IfcWorkControl are IfcControl subtypes too, but they belong to ifc-cost and ifc-schedule: the crates split by domain, not by supertype, so those entities do not move here.

Structs§

ControlAssignmentDraft
One IfcRelAssignsToControl to stage.
ControlDraft
Attributes shared by every control.

Enums§

ControlError
Control projection or authoring failure.
ControlKind
Which control is being staged.

Functions§

assign_to_control
Stage one IfcRelAssignsToControl relating work to an owned control.
assign_to_control_with_owner_history
assign_to_control in model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires (#202).
create_control
Stage one control record, laid out by attribute name in schema.
create_control_with_owner_history
create_control in model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires (#198, #202).

Type Aliases§

ControlResult
Result alias for control operations.