Skip to main content

Crate ifc_systems

Crate ifc_systems 

Source
Expand description

ifc-systems – Distribution systems: ports, connectivity and system grouping.

23 entities in IFC4. Turns a bag of pipes and ducts into a connected network that can be traced – the basis of any MEP analysis.

§Module map

ModuleRole
systemIfcSystem, IfcDistributionSystem and grouping
portIfcDistributionPort and port assignment to elements
connectivityIfcRelConnectsPorts and network traversal
flowFlow direction and segment/fitting/terminal roles
errorWhy a system query failed

§Status

Implemented: systems with subtype-aware discovery and membership, ports and both element-attachment forms, the undirected connection graph with cycle-safe traversal, flow roles and direction, zones, and what a system serves: IfcRelServicesBuildings and the IFC4X3 ServicesFacilities references, read onto System and authored with serve_buildings.

Re-exports§

pub use authoring::assign_to_group;
pub use authoring::assign_to_group_with_owner_history;
pub use authoring::connect_port_to_element;
pub use authoring::connect_port_to_element_with_owner_history;
pub use authoring::connect_ports;
pub use authoring::connect_ports_with_owner_history;
pub use authoring::contain_in_spatial_structure;
pub use authoring::contain_in_spatial_structure_with_owner_history;
pub use authoring::create_classified_system;
pub use authoring::create_classified_system_with_owner_history;
pub use authoring::create_group;
pub use authoring::create_group_with_owner_history;
pub use authoring::create_port;
pub use authoring::create_port_with_owner_history;
pub use authoring::create_system;
pub use authoring::create_system_with_owner_history;
pub use authoring::nest_ports;
pub use authoring::nest_ports_with_owner_history;
pub use authoring::reference_in_spatial_structure;
pub use authoring::reference_in_spatial_structure_with_owner_history;
pub use authoring::serve_buildings;
pub use authoring::serve_buildings_with_owner_history;
pub use authoring::ClassifiedSystemDraft;
pub use authoring::SystemAuthoringError;
pub use authoring::SystemAuthoringResult;
pub use authoring::SystemKind;

Modules§

authoring
Transactional authoring of systems, ports and their connections.

Structs§

Connection
One stated port-to-port connection.
ConnectionGraph
An undirected port connection graph.
FlowNetwork
A network oriented by flow direction.
FlowQuery
The answer to a directed query.
NetworkGraph
A network view that also steps THROUGH elements, not just between them.
NotInSchema
An accessor that reads an attribute the declared release does not define for the entity’s type.
Port
A port as the file states it.
SpatialPlacement
Where one element sits in the spatial structure.
System
A system as the file states it, with its members resolved.
Zone
A zone: a grouping of spatial elements.

Enums§

Attachment
How a port was attached to its element.
Direction
Which way a query walks.
ElementRole
What kind of flow element this is, by schema ancestry.
FlowDirection
Which way material or energy moves through a port.
RoleInconsistency
A disagreement between an element’s role and how its ports are directed.
SchemaGap
Why a per-attribute accessor bound to the model’s declared release could not produce a value.
SchemaResolutionError
Why a model’s declared schema release could not be resolved.
SchemaVersion
The IFC release a read binds to (re-exported from ifc-schema). Which IFC schema version a table describes.
SystemAnomaly
A system membership the file states but cannot support.

Functions§

long_name_of
LongName of a single IfcZone, distinguishing “not authored” from “this release has no such attribute”.
ports
Every port in the file, with its owning element resolved.
role_inconsistencies
Check every element that owns ports for role/direction disagreement.
schema_of
Resolve the IFC release a model declares, from its FILE_SCHEMA header.
spatial_placements
Read spatial containment and referencing for every element that has either.
systems
Every system in the file, with members resolved and anomalies reported.
zones
Every IfcZone in the file, with WR1-valid members resolved.