Skip to main content

ifc_classification/
lib.rs

1//! Borrowed IFC2X3/IFC4 classification, document, library and association semantics.
2//!
3//! Views borrow [`ifc_model::Model`] and read every record against the
4//! release its header declares (see [`classification_schema`]): slot
5//! positions, selects and domains come from that release's bundled table.
6//! Authoring helpers stage IFC4 records on a caller-owned
7//! [`ifc_model::Transaction`]. No query performs external I/O.
8
9mod assignment;
10mod authoring;
11mod classification;
12mod document;
13mod error;
14mod external_relationship;
15mod library;
16mod query;
17mod release;
18mod view;
19
20pub use assignment::{ClassificationAssignment, DocumentAssignment, LibraryAssignment};
21pub use authoring::{
22    associate_classification, associate_document, associate_library, create_classification,
23    create_classification_reference, create_document, create_document_reference, create_library,
24    create_library_reference, relate_documents, AssociationDraft, ClassificationDraft,
25    ClassificationReferenceDraft, DocumentDraft, DocumentReferenceDraft, LibraryDraft,
26    LibraryReferenceDraft,
27};
28pub use classification::{ClassificationNotation, ClassificationReference, ClassificationSystem};
29pub use document::{DocumentInformation, DocumentReference};
30pub use error::{ClassificationError, ClassificationResult};
31pub use external_relationship::{
32    create_external_reference_relationship, ExternalReferenceRelationship,
33    ExternalReferenceRelationshipDraft,
34};
35/// The IFC release a classification read binds to (re-exported from `ifc-schema`).
36pub use ifc_schema::SchemaVersion;
37pub use library::{LibraryInformation, LibraryReference};
38pub use query::{ClassificationHierarchy, EffectiveClassifications};
39pub use release::classification_schema;
40pub use view::ClassificationView;