Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/release-1.0-criteria.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ only in a pull request that links the new evidence.
| W2 | Every release from 2015 to 2027 is supported | No release in that range is experimental. Each has at least one project with Revit's own IFC export of that release that meets W4, W6 and W7 | 2024 has exact element sets against a same-release export (Core Interior, RE-21). 2025's same-release evidence is puzzbobb's Revit 2025 models (22 with a Revit export, all exact by ElementId, Measure only) and `teste_export_2025` (a Revit 25.4 export, local only); RE1's exports are by Revit 26.2, a cross-release pair (RE-32). 2023 has 37 of 37 and 37 of 45, the other 8 being window trims nested in families (RE-81). 2026 has 113 of 115 on one project (RE-124). 2015 has one: BIMcollab's structural example against Revit 2015's own export, all 241 of its elements by ElementId, in Revit's class or IFC4's for its IFC2X3 one, plus 3 it leaves out ([RE-198](../reports/element-framing/RE-198-revit-2015-bimcollab-export.md), [#879](https://github.com/DrunkOnJava/rvt-rs/issues/879)). 2016 to 2022 and 2027 have no same-release export, and are measured only against the same models saved by a neighbouring release (RE-179 to RE-181, [#421](https://github.com/DrunkOnJava/rvt-rs/issues/421)); the native readers on 2015 to 2022 are [#1158](https://github.com/DrunkOnJava/rvt-rs/issues/1158), and geometry and properties beyond each element's box on 2015 to 2023, 2026 and 2027 are [#1190](https://github.com/DrunkOnJava/rvt-rs/issues/1190) | **failed** |
| W3 | Family and template files are read like projects | A family (`.rfa`) or template (`.rte`, `.rft`) of every supported release yields its types, parameters and geometry, measured against Revit's export of the family placed in a project | Metadata, previews, schema and OmniClass, and a family's types and type parameters as its `PartAtom` stream lists them, Revit's text at save rather than the family's records, and not compared with an export of the family placed in a project ([supported profile](supported-profile.md#by-input)) ([#1189](https://github.com/DrunkOnJava/rvt-rs/issues/1189)) | **failed** |
| W4 | Correct elements on the models the decoder was developed on | On every reference model, the elements written and their IFC classes equal Revit's export of that model in every category: none missing, none extra | Core Interior (2024): exact in its six instance categories (RE-21, run in CI). RE1 (2025): Architecture 84, Electrical 49 and Mechanical 74 exact by ElementId; Plumbing writes one element Revit's export leaves out, a water closet tank (442378, pinned in `tests/element_records_2025.rs`). puzzbobb's Revit 2025 models: all 22 with an export exact. BIM4LCA office (2024): all 12,974 as built; at building permit one column Revit's export leaves out (1927742), and on both files one fixture in another class (3095244) ([#792](https://github.com/DrunkOnJava/rvt-rs/issues/792)) (Measure run 40927543524, 2026-10-29). Snowdon Towers (2024, local only): 5,945 of 5,968 in Revit's export; the other 23 are curtain panels with no resolved type ([#309](https://github.com/DrunkOnJava/rvt-rs/issues/309)), and the 6 slabs in the Legends phase of [#328](https://github.com/DrunkOnJava/rvt-rs/issues/328) are no longer written (RE-184; Measure run 40930512289: `IfcSlab` 224 to 218, the only change on any CI model; [evidence page](evidence.md#what-rvt-rs-reads-from-real-projects)) | **failed** |
| W5 | Correct on models it was not developed on ([#408](https://github.com/DrunkOnJava/rvt-rs/issues/408)) | At least two projects of every supported release, used in no RE report, each with Revit's own IFC export of that release and measured once before any fix is made for them, meet W4, W6 and W7. The results are published as measured | Held-out measurements so far: Snowdon Towers Plumbing, HVAC and Electrical (2024). It scored against a VIM of the 2027 edition rather than Revit's IFC export of these files: all 10,385 exported elements in the expected category, storeys and GlobalIds equal, every body a box ([report](../reports/validation/held-out-snowdon-mep-2026-09-27.md)). The first held-out project with Revit's own export of its release was BIMcollab's Revit 2015 structural example (RE-198), measured before any fix; RE-208 and RE-220 have since used it, so it no longer counts toward this bar, and neither do the holdout pack's models (`research/holdout-models.tsv`), which later reports used. Since 2026-11-03 Measure also holds out six projects with their release's own export (`research/holdout-archive-models.tsv`, [#1261](https://github.com/DrunkOnJava/rvt-rs/issues/1261)), measured once before any fix, counts only: Vitoria's two Revit 2018 saves export no element against Revit's 1,394 and 1,520, so `ALD26 Before` is spent to find why and `ALD26 Project` stays held out; Frigento (2020) has 151 of 151 elements paired by Tag, Gdynia (2021) 199 of 203, Warmond (2021) 710 of 710, and BIM Whale's `AdvancedProject` (2021) 1,698 of 1,714 with none of its 8 spaces, which are Revit Areas (held out, after being measured in full once). W4, W6 and W7 are not yet assessed on them. No model meets this bar today. It fails W4: 3 elements written that Revit's export leaves out, and 16 footings on no storey, whose saved Level is unset ([#879](https://github.com/DrunkOnJava/rvt-rs/issues/879), RE-281). It also fails on identity: the project's, site's, building's and five storeys' GlobalIds are Revit's, from the values the file stores ([RE-220](../reports/element-framing/RE-220-stored-global-ids.md)), but none of its 241 elements' ([#878](https://github.com/DrunkOnJava/rvt-rs/issues/878)) | **failed** |
| W5 | Correct on models it was not developed on ([#408](https://github.com/DrunkOnJava/rvt-rs/issues/408)) | At least two projects of every supported release, each with Revit's own IFC export of that release, whose first measurement, made before any fix is made for them, meets W4, W6 and W7. A pair whose first measurement does not is used up for W5: it stays in Measure as a held-out regression check, counts only and never developed on, and its counts may be quoted in reports (the maintainer, 2026-11-03). The results are published as measured | Held-out measurements so far: Snowdon Towers Plumbing, HVAC and Electrical (2024). It scored against a VIM of the 2027 edition rather than Revit's IFC export of these files: all 10,385 exported elements in the expected category, storeys and GlobalIds equal, every body a box ([report](../reports/validation/held-out-snowdon-mep-2026-09-27.md)). The first held-out project with Revit's own export of its release was BIMcollab's Revit 2015 structural example (RE-198), measured before any fix; RE-208 and RE-220 have since used it, so it no longer counts toward this bar, and neither do the holdout pack's models (`research/holdout-models.tsv`), whose first measurements were not recorded against W4, W6 and W7. Since 2026-11-03 Measure also holds out six projects with their release's own export (`research/holdout-archive-models.tsv`, [#1261](https://github.com/DrunkOnJava/rvt-rs/issues/1261)), measured once before any fix, counts only: Vitoria's two Revit 2018 saves export no element against Revit's 1,394 and 1,520, so `ALD26 Before` is spent to find why and `ALD26 Project` stays held out; Frigento (2020) has 151 of 151 elements paired by Tag, Gdynia (2021) 199 of 203, Warmond (2021) 710 of 710, and BIM Whale's `AdvancedProject` (2021) 1,698 of 1,714 with none of its 8 spaces, which are Revit Areas (held out, after being measured in full once). All six fail W4 at that first measurement, so they are used up for W5 and stay as regression checks: both Vitoria saves miss every element, Gdynia misses 4 and BIM Whale 16, its 8 Areas among them, and Frigento writes 22 elements and Warmond 6 spaces that Revit's export leaves out (run 41658225355). No model meets this bar today, and every release needs fresh pairs. BIMcollab's example fails W4: 3 elements written that Revit's export leaves out, and 16 footings on no storey, whose saved Level is unset ([#879](https://github.com/DrunkOnJava/rvt-rs/issues/879), RE-281). It also fails on identity: the project's, site's, building's and five storeys' GlobalIds are Revit's, from the values the file stores ([RE-220](../reports/element-framing/RE-220-stored-global-ids.md)), but none of its 241 elements' ([#878](https://github.com/DrunkOnJava/rvt-rs/issues/878)) | **failed** |
| W6 | Geometry | Every element's body is Revit's own shape, measured per category against Revit's export of the same model at the tolerance its report states. No body is a bounding box | Below, under [W6](#w6-measured-now) | **failed** |
| W7 | Properties | Every property set, property and quantity Revit's export writes for an element is written, with Revit's value, unit and set, and none Revit's export omits (the maintainer: quantities 2026-10-26, property values 2026-10-29). A value that the export's own user-defined property set file maps into a set is out of scope (the maintainer, 2026-10-26): the model does not store the file, and RE-239 lists those values per reference model | Below, under [W7](#w7-measured-now) | **failed** |
| W8 | Nothing is approximated without saying so | A supported input gets no approximation. An input 1.0 does not support (Revit 2014 and earlier, a damaged file) is refused or reported as such by the diagnostics, `rvt-inspect` and the viewer | The diagnostics count boxed bodies (#409) and unattributed records (`unexported_element_records`). Since [#871](https://github.com/DrunkOnJava/rvt-rs/issues/871), all three say when a file's release is read experimentally. Supported inputs are still approximated: boxed bodies and unread properties (W6, W7). Before 0.11.0 a stream over a resource limit was skipped without a diagnostic, so a large model exported empty ([#1075](https://github.com/DrunkOnJava/rvt-rs/issues/1075)). Since 0.11.0 the export diagnostics name the stream, `rvt-ifc` and `rvt-gltf` exit with status 3 instead of writing an empty model, and the viewer offers a retry with the large-model limits; measured by lowering the limits below the reference files' streams. On 0.12.0 the reporter read a 438 MB client model with `--large-model` (9,958 elements on 35 storeys, 10.3 GB peak, 2026-11-02), and a 1.13 GB one ran out of a 16 GB machine's memory | **failed** |
Expand Down
Loading