openbim-ids
buildingSMART IDS (Information Delivery Specification) contracts for Rust.
The standard, machine-readable way to state "this model must contain these things, with these properties" and audit a model against it.
Status
Published releases up to 0.1.2 are a reserved scaffold. 0.1.3 onwards
provides:
- the XML namespace shared by published IDS revisions;
- an
IdsVersionmodel, occurrence and version-evidence contracts; - an IDS 1.0 reader (
read::from_str,read::from_slice) into a typed model, which refuses drafts and contradictory declarations with their evidence.
0.1.4 adds an IDS 1.0 writer (to_string, to_writer) whose output
validates against ids.xsd and reads back as the model it was given, and
constructors for building a document from scratch.
0.2.0 adds audit() behind the audit feature: it reports, with stable
codes, what in an IDS document cannot work for its listed IFC releases, such
as unknown entities or attributes, values that cannot be cast to the IFC type,
and properties that contradict the standard property set templates.
= { = "0.2", = ["audit"] }
Licence note: audit pulls in ifc-schema and ifc-template-catalog,
licensed AGPL-3.0-or-later (template data also CC BY-ND 4.0). Enabling the
feature puts those terms on the resulting work; without it the crate and its
dependencies are MIT.
It does not check an IFC model against IDS. Requires Rust 1.88.
See the repository capability table before relying on a feature. Future parsing must report version-detection evidence rather than infer a schema revision from the shared namespace.
Example
use ;
let mut spec = new;
spec.applicability.facets.push;
spec.require;
let mut ids = new;
ids.specifications.push;
let xml = to_string.unwrap;
assert_eq!;
Architecture
IDS consumes shared openBIM and, eventually, IFC contracts. IFC must never depend on IDS. See the architecture documentation.
No ISO/CEN schema is vendored in this crate. Types may be written from legally accessed specifications, but standards possession does not establish a right to redistribute the source schema.
OpenBIM.rs
- IDS repository: https://github.com/openbimrs/ids
- Integration workspace: https://github.com/openbimrs/openbim
- API documentation: https://docs.rs/openbim-ids
License
MIT