Pure Rust IFC (Industry Foundation Classes) parser and viewer for BIM applications.
Website: bimifc.de
- Memory-efficient parsing - Lazy decoding with SIMD-accelerated scanning
- IFC4 + IFC5 support - Both STEP and IFCX (JSON) formats
- Pure Rust - No JavaScript dependencies, runs natively or as WASM
- Multiple viewers - Web (Leptos + Bevy), Terminal (Ratatui)
| Crate | Description |
|---|---|
bimifc-model |
Trait definitions and shared types |
bimifc-parser |
High-performance IFC4/IFC5 parser |
bimifc-geometry |
Geometry processing and tessellation |
bimifc-bevy |
Bevy-based 3D renderer (WebGPU/WebGL2) |
bimifc-leptos |
Leptos-based UI components |
bimifc-viewer |
Web viewer application |
bimifc-viewer-tui |
Terminal viewer with 3D rendering |
use bimifc_parser::parse_auto;
let content = std::fs::read_to_string("model.ifc")?;
let model = parse_auto(&content)?;
println!("Schema: {}", model.metadata().schema_version);
println!("Entities: {}", model.resolver().entity_count());
// Access spatial hierarchy
if let Some(tree) = model.spatial().spatial_tree() {
println!("Project: {}", tree.name);
}cargo run -p bimifc-viewer-tui -- model.ifcControls:
PgUp/PgDn- Change floor level+/-- ZoomWASD- PanTab- Cycle focusQ- Quit
# Build all crates
cargo build --release
# Run tests
cargo test
# Build TUI viewer
cargo build -p bimifc-viewer-tui --releaseMPL-2.0