Skip to main content

Crate ifc_element_type

Crate ifc_element_type 

Source
Expand description

Element, resource, and process type definitions.

An IFC model separates what a thing is from where it sits. The type definition carries the shared description: a pump type names the pump model, and every pump placed from it inherits that.

This crate owns the 132 concrete IfcTypeObject subtypes. They sit in one crate because they are one uniform shape with one shared WHERE rule, not because they are one domain: the list spans HVAC, structure, furniture, resources and processes. Splitting them across domain crates would copy the same rule and the same slot table into a dozen places.

The catalogue in table is generated from the schema by scripts/gen-element-types.py; create_type is the writer. It takes no model and writes the catalogue’s IFC4X3 layout; create_type_in and create_type_with_owner_history write the model’s declared release, which IFC2X3 needs for its required OwnerHistory (#202).

Re-exports§

pub use table::ElementType;
pub use table::Family;
pub use table::ALL;

Modules§

table
The generated element-type catalogue.

Structs§

SupertypeDraft
Attributes of a supertype definition.
SupertypeKind
A type definition with no PredefinedType enum.
TypeDraft
Attributes shared by every type definition.

Enums§

ElementTypeError
Why a type definition was refused.
Slot6
What slot 6 holds, which differs by Family.

Constants§

ALL_SUPERTYPES
Every supertype this module can stage.
BUILT_ELEMENT_TYPE
IfcBuiltElementType: the built-element branch.
CIVIL_ELEMENT_TYPE
IfcCivilElementType: civil works with no more specific class.
DEEP_FOUNDATION_TYPE
IfcDeepFoundationType: piles and caisson foundations.
DISTRIBUTION_ELEMENT_TYPE
IfcDistributionElementType: the distribution branch.
FURNISHING_ELEMENT_TYPE
IfcFurnishingElementType: furniture and system furniture.
TYPE_OBJECT
IfcTypeObject: the root of every type definition.
TYPE_PRODUCT
IfcTypeProduct: adds RepresentationMaps and Tag.

Functions§

create_supertype
Stage a type definition that carries no PredefinedType.
create_supertype_in
create_supertype in the model’s declared release (#202).
create_supertype_with_owner_history
create_supertype_in with a caller-supplied IfcOwnerHistory, which IFC2X3 requires on every IfcRoot.
create_type
Stage one type definition.
create_type_in
create_type in the model’s declared release (#202).
create_type_with_owner_history
create_type_in with a caller-supplied IfcOwnerHistory, which IFC2X3 requires on every IfcRoot.

Type Aliases§

ElementTypeResult
Result of staging a type definition.