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).

read_control and read_controls read the four controls back as borrowed Control views, by attribute name in the same declared release, together with the ControlAssignments that govern work (#100). A record that does not fit its release is refused, never read as absent.

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§

Control
A borrowed, release-bound view of one IfcPermit, IfcProjectOrder, IfcActionRequest or IfcPerformanceHistory.
ControlAssignment
A borrowed view of one IfcRelAssignsToControl relating work to a Control, checked against the same release.
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).
read_control
Read the control id against model’s declared release.
read_controls
Every control of kind in model, in file order, read against its declared release.

Type Aliases§

ControlResult
Result alias for control operations.