Skip to main content

ifc_material/
lib.rs

1//! Borrowed, codec-independent IFC MaterialResource views.
2//!
3//! The crate projects typed material identity, constituents, layers, profiles,
4//! usage assignments, relationships, and material property sets from
5//! [`ifc_model::Model`]. Accessors distinguish absent optional values from
6//! malformed values and enforce immediate aggregate shape, required slots, and
7//! MaterialResource WHERE constraints. Authored placement and offset values are
8//! exposed here; geometric interpretation remains in `ifc-geometry`.
9
10pub mod authoring;
11pub mod constituent;
12pub mod error;
13pub mod layer;
14pub mod material;
15pub mod profile;
16pub mod types;
17pub mod usage;
18pub mod view;
19
20pub use authoring::{
21    associate_material, create_constituent, create_constituent_set, create_layer, create_layer_set,
22    create_layer_set_usage, create_layer_with_offsets, create_material,
23    create_material_classification_relationship, create_material_definition_representation,
24    create_material_list, create_material_properties, create_material_relationship, create_profile,
25    create_profile_set, create_profile_set_usage, create_profile_set_usage_tapering,
26    create_profile_with_offsets, ConstituentDraft, LayerDraft, LayerSetDraft,
27    MaterialAssignmentDraft, MaterialDraft, ProfileDraft,
28};
29pub use constituent::{MaterialConstituent, MaterialConstituentSet};
30pub use error::{MaterialError, MaterialResult};
31pub use layer::{MaterialLayer, MaterialLayerSet, MaterialLayerSetUsage, MaterialLayerWithOffsets};
32pub use material::{
33    Material, MaterialClassificationRelationship, MaterialList, MaterialProperties,
34    MaterialRelationship,
35};
36pub use profile::{
37    MaterialProfile, MaterialProfileSet, MaterialProfileSetUsage, MaterialProfileSetUsageTapering,
38    MaterialProfileWithOffsets,
39};
40pub use types::{
41    CardinalPointReference, DirectionSense, LayerSetDirection, LogicalValue, MaterialSelect,
42    StandardCardinalPoint, IFC4_MATERIAL_RESOURCE_ENTITIES, IFC4_MATERIAL_RESOURCE_TYPES,
43};
44pub use usage::{
45    AssignmentSource, MaterialAssignment, MaterialDefinition, MaterialUsageDefinition,
46    ResolvedAssignment, ResolvedMaterialSelect,
47};
48pub use view::MaterialView;