IFCZIP
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
Zipped IFC Building Model.
At a glance
| Original creator | buildingSMART International |
| Purpose | An IFC building model compressed with ZIP: one IFC file, in STEP text or XML, inside an archive. |
| Extensions | .ifczip |
| Poka parser | poka-ifczip |
| Viewer | poka-3d-viewer |
| Depth tier | Parser with a shared viewer (see Depth tiers) |
| Breadth tier | B3 Core (see Breadth tiers) |
How much Poka reads
B3 Core. Only the main content type or types are decoded (for example geometry but not materials, layers or annotations, or only one version family). The list of gaps is substantial.
Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-16: poka-ifczip (lib.rs, main.rs, unit tests, tests/samples.rs), poka-ifc lib.rs (shared geometry decode via ifc-lite), 3 corpus samples (IFC2X3 prefab x2, IFC4 IfcOpenShell). Covers a ZIP holding one STEP .ifc. The shipped wasm calls build_scene only; the corpus test exercises the tree path (build_ast), which the wasm never emits, and poka-ifc has no tests of its own.
What Poka does not read
- Materials and colours (every mesh is drawn with the default colour)
- Property sets and quantities
- Spatial structure tree (project, site, building, storey)
- Spaces and zones are not drawn
- Author, organisation, export time and preprocessor are read but not shown by the shipped output (only schema, view definition, entity count and authoring app appear in a caption)
- Entity-type histogram is not shown (only counts of drawn element types)
- Zipped ifcXML is rejected (only STEP text inside the zip)
- Elements whose geometry the decoder cannot build are skipped silently
- Only the first .ifc entry is read if the archive holds several
Background
The Library of Congress says IFC has a STEP text form (.ifc) and an XML form (.ifcxml), and that .ifczip is used when either is compressed with ZIP. IFC compresses very well, which is why the zipped form exists. Poka opens the archive and reads the header of the model inside: the schema (IFC2X3, IFC4, IFC4X3), the model view definition, and the originating and preprocessor applications, which together decide what a receiving program can expect. The shipped module draws the model in 3D, as for .ifc, so only a caption (schema, view definition, entity count and authoring application) is shown; the author, organisation, export time and preprocessor are read but not shown, and the entity tree the code can build is never emitted.
Versions
| Version | Identifier | Poka | Note |
|---|---|---|---|
| ZIP holding an IFC STEP file | Read |
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- ifc-lite-core (used; MPL-2.0; Rust)
- ifc-lite-geometry (used; MPL-2.0; Rust)
- rustc-hash (used; MIT OR Apache-2.0; Rust)
- zip (used; MIT; Rust)
- ifc-lite (candidate; MPL-2.0; Rust/TypeScript; https://github.com/LTplus-AG/ifc-lite) — MPL-2.0 is file-level copyleft; wasm use needs a deny.toml exception
- web-ifc (candidate; MPL-2.0; C++/TypeScript; https://github.com/ThatOpen/engine_web-ifc) — MPL-2.0 is file-level copyleft; wasm use needs a deny.toml exception
- IfcOpenShell (reference; LGPL-3.0; C++/Python; https://github.com/IfcOpenShell/IfcOpenShell) — reference only, not usable in wasm
- XbimEssentials (reference; CDDL-1.0; C#; https://github.com/xBimTeam/XbimEssentials) — CDDL is file-level copyleft; reference only
- IFC 4.x specification (buildingSMART) (candidate; CC-BY-ND-4.0; spec; https://github.com/buildingSMART/IFC4.x-development)
- oxideav-ifc (candidate; MIT; Rust; https://github.com/OxideAV/oxideav-ifc) — MIT alternative to the MPL-2.0 ifc-lite crates; 6 corpus IFCs parsed; output not compared with ifc-lite; README calls schema coverage a core entity slice
Software that uses it
- buildingSMART IFC
Sources
- https://www.loc.gov/preservation/digital/formats/fdd/fdd000447.shtml
- parsers/poka-ifczip/src/lib.rs