Every recovery claim rvt-rs makes is measured against Revit's own export of a
real file. This page lists those files, where they come from, what may be
done with them, and what a run of rvt-rs on them should show. The machine
record is the artifacts list of
research/witness-registry.json: origin,
licence, sha256, byte count, Revit release, how the reference export was
made, and whether the file may be redistributed.
tools/fetch-reference-models.sh # into _project_corpus/Revit (gitignored)
RVT_PROJECT_CORPUS_DIR="$(realpath _project_corpus/Revit)" \
cargo test --profile ci --test integration -- revit_global_ids:: element_records_2025::The script downloads each redistributable file from its original source and checks it against the registry; nothing is vendored in this repository. It lists the local-only files with their source and hash, and never fetches them.
| Model | Revit | Licence | Reference export | What it measures |
|---|---|---|---|---|
| magnetar Core Interior | 2024 | MIT, redistributable | IFC4 ReferenceView 1.2, Revit 24.0.20.20 (the full _slim export, and a 20 KB element fixture) |
360 walls, 132 doors, 6 windows, 256 columns, 80 slabs, 15 storeys; Revit's GlobalId on 854 elements, 116 rooms and 15 storeys. Run in CI. |
| magnetar Einhoven | 2023 | MIT, redistributable | none | 2023 element records with no export to score against (walls, windows, materials), the 2023 arc-wall path; pinned by the project-count fixture and the viewer's browser test |
| IFC-ECS RE1 Architecture, Mechanical, Plumbing, Electrical | 2025 | MIT, redistributable | IFC2X3 CoordinationView 2.0, Revit 26.2.0.20 (the files are Revit 2025, so this is a cross-release pair) | 2025 element records; Architecture: 7 walls, 2 slabs, 11 rooms; 2 storeys each; Revit's GlobalIds 73 / 73 / 123 / 12. Run in CI. |
| Autodesk Snowdon Towers Architectural | 2024 | none declared, local only | IFC4 ReferenceView 1.2, Revit 24.0.20.20 | 5,968 exported, 5,945 of them in Revit's export (from #309 and #328, no committed report; the other 23 are curtain panels with no resolved type, and the 6 slabs in the Legends phase of #328 are no longer written, RE-184); 1,078 walls; 18 storeys; wall joins, layers, curtain walls, stairs, roofs |
| Autodesk Snowdon Towers Structural | 2024 | none declared, local only | VIM | beams along their axes, structural categories |
| Autodesk Snowdon Towers Plumbing, HVAC, Electrical | 2024 | Autodesk sample, local only; downloaded from Autodesk's "Revit Sample Project Files" page (sha256 4f80526b…, 58538599…, e50e1b71…) |
VIM (2027 edition) | held out: never used to develop the decoder, measured once as they are (reports/validation/held-out-snowdon-mep-2026-09-27.md) |
| MIT 4.567 tutorial house, 2024 and 2025 saves | 2024, 2025 | copyright reserved, local only | none | the same model and ElementIds in two releases; the one shed roof |
255ribeiro Projeto1, teste_export_2025 |
2025 | none declared, local only | IFC4X3 CoordinationView; IFC4 DesignTransferView 1.0, Revit 25.4 (PTB) | metric projects; IFC export overrides; files saved in PTB (RE-123) |
255ribeiro Exemplo_data, modelo_bim |
2023 | none declared, local only | IFC4 ReferenceView 1.2, Revit 23.1 (Exemplo_data); IFC4 DesignTransferView 1.0, Revit 26.2 PTB (modelo_bim, exported from the 2023 file by a later Revit) |
Revit 2023 element records (RE-81 to RE-122): 37 of 37 and 37 of 45 elements, storeys, types, layers, materials, wall joins, beams; files saved in PTB |
BIMcollab example, structural model (02_BIMcollab_Example_STR) |
2015 | none stated, local only; BIMcollab's public example project (research/bimcollab-models.tsv, fetched by Measure with -f bimcollab=true, STE1200's pointer) |
IFC2X3 CoordinationView 2.0, Revit Architecture 2015, 2014-10-08, rewritten by Solibri's IFC Optimizer; the model was renamed after it | held out when measured (RE-198); RE-208 and RE-220 have since used it, so it no longer counts as held out: all 241 exported elements by ElementId, in Revit's class or IFC4's for its IFC2X3 one, 3 more written, GlobalIds not in the file (#878, RE-208), 16 footings on no storey (#879); wall faces and layer sets as Revit's |
STE1200 (Discussion #112) measured these and gave their provenance; rvt-rs has not measured them yet. They are public downloads without a stated redistribution licence, so they would be local-only oracles: fetched from their source by whoever runs the measurement, never committed.
| Model | Revit | Source | sha256 | Why |
|---|---|---|---|---|
| AA-SingleDwellingHouse-RVT-CIADD, with its IFC | 2026 | flowbim.ee | eeff78f3…0a654 (IFC c9e2986c…67342) |
the first 2026 project with Revit's export: the 2026 element-record gate (#421); measured in RE-124 (88 placed instances, all in Revit's export) |
| rac_basic_sample_project | 2017 | Autodesk sample | a1d3d077…5fefb |
the same, with no export; now fetched and measured with the other sample projects (below, RE-140) |
| Geberit VariForm washbasin PRO_1833290, two variants | 2018 family | Geberit | 28b9d111…e5e4, 0d48b22c…fbb9 |
DirectShape meshes in a family |
| Pucciplast Cassetta Eco 9/4 l (EN) | 2022 family | Pucciplast | a610ffcc…ae00 |
sketch forms and voids in a family |
STE1200's test vectors for the 2026 house, the BIMcollab model (now measured, RE-198) and the 2017 sample (record bytes, offsets and the values read) are the cross-check for any reader of them.
Autodesk publishes rac_basic, rst_basic and rac_advanced sample projects
for every Revit release from 2015 to 2027 on its own download host, 39 files,
and the MEP projects rme_basic and rme_advanced and the rst_advanced
project. Of those, the MEP projects of 2024 to 2027 are pinned (8 files: ducts
of every shape, fittings, connectors and systems the reference models lack),
and the MEP and rst_advanced projects of 2015 and 2019 (6 files), which check
the readers of 2015 to 2022 files (RE-180, RE-181). Revit 2015's are under
Docs/ on the host, not Docs/InProd/ as for later releases. Its multi-model
2024 sample, Snowdon Towers, is pinned as well (5 files: Architectural, Structural, HVAC, Plumbing and Electrical),
so that a regression on the models #736 found is seen in a run. It is the host the sample families of the phi-ag/rvt
corpus (CC BY-NC-SA 3.0) come from; the projects' own terms were not checked. They are pinned by hash in
research/autodesk-sample-projects.tsv
and fetched by tools/fetch-autodesk-samples.sh; the Measure workflow reads
them with -f samples=true (rvt-info, the IFC export's diagnostics, and the
probe given). They are never stored in this repository.
No Revit export of any of them is available to a Measure run (Snowdon Towers Architectural's is local only), so they measure the record envelope
and what a release's reader gives on the same model, not recovery against
Revit: reports/element-framing/RE-140-sample-projects-2016-2027.md compares
each release's records with 2024's by ElementId. They do not admit a release.
VTT's BIM4LCA project published Revit 2024 models of a housing and an office
building, each in a timber and a concrete version, with Revit's own IFC
export of each, under CC BY-SA 4.0
(BIM files to download).
They hold what the reference models lack, and several fixes rest on them:
a table of more than 65,535 records (#745), a reference Level at a storey's
elevation (#746), columns cut by the slabs they join (#756). The archive,
ARCH.zip, is 1.58 GB, so CI's tier-two job reads only the five files its
targets need, by byte range (tools/ci/fetch-bim4lca.py), and checks each
against research/bim4lca-models.tsv:
four .rvt models and Revit's IFC export of one. Locally, point
RVT_NORDIC_LCA_DIR at a folder holding them
(corpus/tier2/README.md). Measure scores the
concrete office, as built and at building permit, against Revit's exports of
both with -f nordic=true
(research/bim4lca-measure.tsv, #763).
A contributor, puzzbobb, made 23 small Revit 2025 projects. Each isolates
one feature: roofs of one and two slopes, hips and an L-shaped hip, slope
arrows, rafter cuts and a fascia, a roof by extrusion, rooms with a door
and windows, stairs with and without risers, monolithic and spiral, and
wall joins. All but one come with Revit's own IFC4 Reference View export.
He released the .rvt and .ifc files under Apache-2.0 on #356. Measure
fetches the archive by its pinned hash
(research/r2025-models.tsv,
tools/ci/fetch-r2025-models.sh) and, with -f r2025=true, scores each
model against its export like the reference models. They are never stored
in this repository.
The reference exports were made with different settings, and several differences between rvt-rs and "Revit's export" are settings, not decoding:
- View definition. A ReferenceView export (Core Interior, Snowdon) writes bodies as tessellations and no material layer sets, so layer sets are scored against the faces its bodies style with each material. A CoordinationView export (RE1) writes layer sets of its own.
- Schema. RE1 is IFC2X3 and Projeto1 IFC4X3; entity names differ from IFC4
(for example
IfcFlowTerminalin IFC2X3 for what IFC4 types more finely). - Coordinates. Every export here uses shared coordinates. rvt-rs writes Revit's internal coordinates, so compare after the export's own transform (Snowdon: rotate 26.0156°, translate (1370151.83, 258247.98) ft, z + 780.5 ft).
- What is exported. Revit's exporter leaves out non-primary design options, elements not in the exported phase, 2D-only families and some types (#309, #328); rvt-rs follows it where the bytes say which. Rooms are not checked against the phase, which Revit does by a room's own phase parameter (RE-184).
- Model state. An export can be newer than the
.rvtbeside it:teste_export_2025.ifcshows one wall in a later state than its.rvt.
A new reference model is most useful when its owner can licence it for
redistribution and it comes with Revit's own IFC export. Record it in the
registry's artifacts (id, node, sha256, bytes, source, url when fetchable,
licence, Revit release, derived_from and via for the export, an export
line with the view definition and exporter version, redistributable, and
the observations you checked) and open a pull request with the entry only.
See corpus-intake.md for the three intake lanes.
If you cannot share the file, share what rvt-rs says about it:
rvt-inspect model.rvt --json --anonymize and
rvt-ifc model.rvt -o /tmp/out.ifc --diagnostics diag.json --anonymize
(post the diag.json, not the IFC). They hold counts, releases and Revit
class and category names, and no geometry. Without --anonymize they also
hold the names the project gives things: the file and project names, the
levels, a sample of the materials and of skipped elements, and, in
rvt-inspect's report, the folder path Revit stored for the file (by default it
replaces only a path's \Users\<name>\ part and Autodesk build and
project-id folders). --anonymize
replaces those with placeholders such as Level 1, keeping counts and
ElementIds; the browser viewer's Download diagnostics does the same. Read
both before posting.
Several open questions need a Revit file whose answer is known in advance.
Each recipe is a new project from Revit's default architectural template,
saved in Revit 2024 or 2025, and exported with File > Export > IFC using
"IFC4 Reference View" and default options. Contribute the .rvt, the .ifc,
and a line saying you release both under MIT or CC0.
- Hip roof (#356). On Level 1, four Basic Wall "Generic - 200mm" walls forming a 10 m by 6 m rectangle, 3 m high. Roof by Footprint on Level 2, picking the four walls, every edge "Defines Slope" at 30°, roof type "Generic - 300mm".
- Gable roof (#356). The same walls; Roof by Footprint with only the two long edges defining slope at 30°.
- Wall joins (#238, #358). Four "Generic - 200mm" walls: an L corner (default join), a second L corner with the join set to Miter, a T junction, and one wall end with "Disallow Join".
- Room (#90). The rectangle of recipe 1 without a roof, one interior wall splitting it 6 m / 4 m, and a Room placed in each part.
- Opening (#227). One "Generic - 200mm" wall 5 m long with one "Single-Flush 0915 x 2134mm" door and one "Fixed 0915 x 1220mm" window.