Skip to main content

ifc_classification/
lib.rs

1//! Borrowed IFC2X3/IFC4/IFC4X3 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`]): IFC2X3 TC1,
5//! IFC4 ADD2 TC1 or IFC4X3 ADD2. Slot positions, selects, domains and
6//! enumerations come from that release's bundled table, looked up by
7//! attribute name. A header declaring several schemas, or one with no
8//! bundled table, is refused rather than read as IFC4; a header declaring
9//! none (an in-memory model) binds IFC4.
10//!
11//! Authoring helpers stage records on a caller-owned
12//! [`ifc_model::Transaction`] in the same release's layout, refusing values
13//! and entities the release cannot hold. No query performs external I/O.
14
15mod assignment;
16mod authoring;
17mod classification;
18mod document;
19mod error;
20mod external_relationship;
21mod library;
22mod query;
23mod release;
24mod view;
25
26pub use assignment::{ClassificationAssignment, DocumentAssignment, LibraryAssignment};
27pub use authoring::{
28    associate_classification, associate_classification_with_owner_history, associate_document,
29    associate_document_with_owner_history, associate_library, associate_library_with_owner_history,
30    create_classification, create_classification_in, create_classification_reference,
31    create_document, create_document_reference, create_library, create_library_reference,
32    relate_documents, AssociationDraft, ClassificationDraft, ClassificationReferenceDraft,
33    DocumentDraft, DocumentReferenceDraft, LibraryDraft, LibraryReferenceDraft,
34};
35pub use classification::{ClassificationNotation, ClassificationReference, ClassificationSystem};
36pub use document::{DocumentInformation, DocumentReference};
37pub use error::{ClassificationError, ClassificationResult};
38pub use external_relationship::{
39    create_external_reference_relationship, ExternalReferenceRelationship,
40    ExternalReferenceRelationshipDraft,
41};
42/// The IFC release a classification read binds to (re-exported from `ifc-schema`).
43pub use ifc_schema::SchemaVersion;
44pub use library::{LibraryInformation, LibraryReference};
45pub use query::{ClassificationHierarchy, EffectiveClassifications};
46pub use release::classification_schema;
47pub use view::ClassificationView;