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.
It does not validate a model against IDS.
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