#[non_exhaustive]pub struct System {
pub id: EntityId,
pub type_name: String,
pub name: Option<String>,
pub long_name: Option<String>,
pub predefined_type: Option<String>,
pub members: Vec<EntityId>,
pub serviced_buildings: Vec<EntityId>,
pub serviced_facilities: Vec<EntityId>,
}Expand description
A system as the file states it, with its members resolved.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.id: EntityIdThe IfcSystem (or subtype) entity.
type_name: StringDeclared type, e.g. IFCDISTRIBUTIONSYSTEM.
name: Option<String>Name, when present.
long_name: Option<String>IfcDistributionSystem.LongName, when present (IFC4, IFC4X3).
None when the file leaves it empty, and for every system that is
not an IfcDistributionSystem or subtype (a plain IfcSystem, a zone,
any IFC2X3 system), because only that type is read here.
predefined_type: Option<String>IfcDistributionSystem.PredefinedType: the IfcDistributionSystemEnum
token as the file states it, without dots (e.g. HEATING).
None under the same conditions as System::long_name.
members: Vec<EntityId>Members, in file order.
Order is preserved because IFC states no ordering and re-sorting would invent one; a caller comparing two exports needs the file’s own order.
serviced_buildings: Vec<EntityId>ServicesBuildings: the spatial structures this system serves through
its IfcRelServicesBuildings, in file order (#230).
The inverse is SET [0:1], so only the lowest-id relationship is read;
a second is reported as SystemAnomaly::ServicesBuildingsTwice.
Targets missing from the file (SystemAnomaly::Dangling) or of a
type the release does not admit (SystemAnomaly::ServicedNotSpatial)
are reported and left out.
serviced_facilities: Vec<EntityId>ServicesFacilities (IFC4X3 only): the spatial elements whose
IfcRelReferencedInSpatialStructure lists this system, ascending by
id (#230).
Always empty under IFC2X3 and IFC4, whose RelatedElements is
IfcProduct and cannot hold a system.