pub enum SpatialKind {
Project,
Site,
Building,
Storey,
Space,
OtherContainer,
Element,
}Expand description
The spatial role of an entity, as far as containment is concerned.
The five named kinds are those exact entities. Every other spatial
element of the release is OtherContainer.
Variants§
Project
IfcProject – the root. A conformant file has exactly one.
Site
IfcSite.
Building
IfcBuilding.
Storey
IfcBuildingStorey.
Space
IfcSpace.
OtherContainer
Any other spatial element of the release: IfcSpatialZone and
IfcExternalSpatialElement (IFC4, IFC4X3), and the IFC4X3
facilities (IfcFacility, IfcBridge, IfcRoad, IfcRailway,
IfcMarineFacility) and facility parts (IfcBridgePart,
IfcRoadPart, IfcRailwayPart, IfcMarinePart,
IfcFacilityPartCommon).
Element
Not a spatial container: a wall, a door, a slab, or any entity the release does not declare as a spatial element.
Implementations§
Source§impl SpatialKind
impl SpatialKind
Sourcepub fn classify(type_name: &str) -> Self
pub fn classify(type_name: &str) -> Self
Classify a STEP type name without a release: a container when any bundled release (IFC2X3, IFC4, IFC4X3) declares it a spatial element.
No bundled release declares as a spatial element a name another
declares as something else (tests/classification.rs asserts it),
so this never contradicts classify_in for a
name the release declares. Prefer classify_in when the release is
known; SpatialTree does.
Sourcepub fn classify_in(type_name: &str, release: SchemaVersion) -> Self
pub fn classify_in(type_name: &str, release: SchemaVersion) -> Self
Classify a STEP type name against one release’s schema table.
Sourcepub const fn is_container(self) -> bool
pub const fn is_container(self) -> bool
Whether entities of this kind can contain others.