API
Rust facade — implemented
Primary type: ifccore::IfcModel<'source>.
| API | Result |
|---|---|
IfcModel::open(&[u8]) |
opens a model without copying the full buffer |
entity(express_id) |
returns ID, IFC type, and byte range |
entities_by_type(name) |
deterministic Express ID order |
diagnostics() |
stable codes and half-open byte ranges |
edit() |
starts an isolated transaction |
Edit::set_attribute(...) |
replaces an attribute with a STEP token |
Edit::commit() |
atomically publishes the overlay |
write(&mut Write) |
writes a new IFC file |
Stable error codes: EntityNotFound, InvalidEdit, and WriteFailed. Generate
reference documentation with cargo doc -p ifccore --open.
WASM API — implemented
Exports cover open/streaming, query/search, tree/properties, geometry,
edit/undo/redo, export/cancellation, diagnostics/performance, and ifc_close.
The primary JSON contract is ifc-wasm.dto.v1; binary geometry is IFCG/2.
ifc_open(bytes) → handle → query/edit/export → ifc_close(handle)
A handle is invalid after close. The 0.2 package is single-threaded; WASM
threads and SharedArrayBuffer are not part of the contract. See the
normative WASM API.
Breaking signatures, DTO discriminators/error codes, or binary layouts require a new schema version and migration note.