rvt 0.4.0

Apache-2.0 clean-room reader for Autodesk Revit files (.rvt, .rfa, .rte, .rft) without Revit: metadata, previews and the embedded schema of 2016-2026 files, and typed elements with measured geometry from Revit 2024 and 2025 projects, exported as IFC4, glTF and plan SVG.
Documentation
{
  "version": 1,
  "description": "Pre-loaded RVT demos (VW1-22 / M6-03) for the rvt-view browser viewer. Real-project entries are MIT-licensed samples from magnetar-io/revit-test-datasets, staged from the _project_corpus/ checkout and hash-verified. Tier-1 entries are redistributable synthetic CFB fixtures from corpus/tier1/. Optional phi-ag family RFAs stage when the LFS corpus is present.",
  "attribution": "Real projects: magnetar-io/revit-test-datasets (MIT). Tier-1 synthetics and reference IFC fixtures: rvt-rs (Apache-2.0, generated by gen-fixture). Optional family RFAs: phi-ag/rvt sample LICENSE when staged.",
  "source_repo": "https://github.com/DrunkOnJava/rvt-rs",
  "license": "Redistributable samples only; every staged file ships with a .license.json sidecar.",
  "demos": [
    {
      "id": "einhoven-2023",
      "name": "Einhoven (Revit 2023, real project)",
      "file": "demos/Revit_IFC5_Einhoven.rvt",
      "revit_version": 2023,
      "format": "rvt",
      "size_bytes": 913408,
      "sha256": "d3a0c6d37d3f47a1726bc5aa7fe3880ed3c13bbe819b5e64680f6710b15aa948",
      "element_count_hint": 24,
      "thumbnail": "demos/thumbnails/einhoven_2023.svg",
      "description": "Real Revit 2023 project from magnetar-io/revit-test-datasets (MIT). Decodes 24/24 ArcWalls with bodies across four elevation-derived storeys plus 42 materials; floors, doors, windows and rooms remain open on this file. This is the file the CI browser regression gates.",
      "tags": [
        "real-project",
        "magnetar",
        "architectural"
      ],
      "loadable": true,
      "expected_quality": "Geometry",
      "expected_quality_note": "Real-project wall geometry (decoder baseline in tests/fixtures/project-counts/revit-ifc5-einhoven.json). Not a full typed model: no floors, doors, windows or rooms yet.",
      "license": "MIT (magnetar-io/revit-test-datasets)",
      "provenance": "magnetar-io/revit-test-datasets: Revit/Revit_IFC5_Einhoven.rvt",
      "source_candidates": [
        "_project_corpus/Revit/Revit_IFC5_Einhoven.rvt",
        "../_project_corpus/Revit/Revit_IFC5_Einhoven.rvt"
      ]
    },
    {
      "id": "core-interior-2024",
      "name": "Core Interior (Revit 2024, real project)",
      "file": "demos/2024_Core_Interior.rvt",
      "revit_version": 2024,
      "format": "rvt",
      "size_bytes": 33718272,
      "sha256": "c805df445d613b408e37337765572021265e3f5dfdc7d1fa53b22ba1600b8014",
      "element_count_hint": 869,
      "thumbnail": "demos/thumbnails/core_interior_2024.svg",
      "description": "Real Revit 2024 project from magnetar-io/revit-test-datasets (MIT). Partition element records reproduce Revit's own exported ElementId sets exactly: 360 walls, 132 doors, 6 windows, 256 columns, 80 slabs and 20 shading devices across 15 levels (RE-21 to RE-26). 32 MB download; decode takes a moment.",
      "tags": [
        "real-project",
        "magnetar",
        "architectural",
        "large"
      ],
      "loadable": true,
      "expected_quality": "Geometry",
      "expected_quality_note": "Cross-witness gated element sets with bodies (tests/fixtures/project-counts/2024-core-interior.json). Rooms and materials are known gaps.",
      "license": "MIT (magnetar-io/revit-test-datasets)",
      "provenance": "magnetar-io/revit-test-datasets: Revit/2024_Core_Interior.rvt",
      "source_candidates": [
        "_project_corpus/Revit/2024_Core_Interior.rvt",
        "../_project_corpus/Revit/2024_Core_Interior.rvt"
      ]
    },
    {
      "id": "architectural-2024",
      "name": "Architectural 2024 (tier1)",
      "file": "demos/architectural-2024.rvt",
      "revit_version": 2024,
      "format": "rvt",
      "size_bytes": 20480,
      "element_count_hint": 25,
      "thumbnail": "demos/thumbnails/architectural_2024.svg",
      "description": "Redistributable architectural synthetic: Level, Wall, Floor, Door, Window (5 each). Opens cleanly; expect scaffold ~25% export confidence — typed real-project extraction is unsolved.",
      "tags": [
        "synthetic",
        "tier1",
        "architectural",
        "mvp"
      ],
      "loadable": true,
      "expected_quality": "Scaffold",
      "expected_quality_note": "Scaffold ~25% is expected for tier1 synthetics. Useful for File status, confidence, and export buttons — not validated walls/doors/levels.",
      "license": "Apache-2.0 (corpus/tier1)",
      "provenance": "corpus/tier1/architectural-2024/architectural-2024.rvt",
      "source_candidates": [
        "corpus/tier1/architectural-2024/architectural-2024.rvt"
      ]
    },
    {
      "id": "structural-2023",
      "name": "Structural 2023 (tier1)",
      "file": "demos/structural-2023.rvt",
      "revit_version": 2023,
      "format": "rvt",
      "size_bytes": 20480,
      "element_count_hint": 20,
      "thumbnail": "demos/thumbnails/structural_2023.svg",
      "description": "Redistributable structural synthetic: Level, Wall, Floor, Column, Beam. Scaffold-only decode is expected.",
      "tags": [
        "synthetic",
        "tier1",
        "structural"
      ],
      "loadable": true,
      "expected_quality": "Scaffold",
      "expected_quality_note": "Scaffold confidence is expected. Not a claim of typed structural geometry from real projects.",
      "license": "Apache-2.0 (corpus/tier1)",
      "provenance": "corpus/tier1/structural-2023/structural-2023.rvt",
      "source_candidates": [
        "corpus/tier1/structural-2023/structural-2023.rvt"
      ]
    },
    {
      "id": "mep-2024",
      "name": "MEP 2024 (tier1)",
      "file": "demos/mep-2024.rvt",
      "revit_version": 2024,
      "format": "rvt",
      "size_bytes": 20480,
      "element_count_hint": 20,
      "thumbnail": "demos/thumbnails/mep_2024.svg",
      "description": "Redistributable MEP-leaning synthetic: Level, Wall, Door, Window, Duct. Scaffold-only decode is expected.",
      "tags": [
        "synthetic",
        "tier1",
        "mep"
      ],
      "loadable": true,
      "expected_quality": "Scaffold",
      "expected_quality_note": "Scaffold confidence is expected. MEP typed recovery from arbitrary real projects is not claimed.",
      "license": "Apache-2.0 (corpus/tier1)",
      "provenance": "corpus/tier1/mep-2024/mep-2024.rvt",
      "source_candidates": [
        "corpus/tier1/mep-2024/mep-2024.rvt"
      ]
    },
    {
      "id": "synthetic-mvp",
      "name": "Synthetic MVP fixture (2024)",
      "file": "demos/synthetic-mvp.rvt",
      "revit_version": 2024,
      "format": "rvt",
      "size_bytes": 20480,
      "element_count_hint": 25,
      "thumbnail": "demos/thumbnails/synthetic_mvp.svg",
      "description": "License-free CFB fixture from gen-fixture — fallback when corpus/tier1 is unavailable. Same scaffold expectations as architectural-2024.",
      "tags": [
        "synthetic",
        "mvp",
        "workflow"
      ],
      "loadable": true,
      "expected_quality": "Scaffold",
      "expected_quality_note": "Partial / scaffold export (~25%). Useful for status, diagnostics, and export buttons — not full walls/doors/levels.",
      "license": "Apache-2.0 (generated by rvt-rs gen-fixture)",
      "provenance": "Generated at build time by viewer/scripts/stage-demos.mjs via gen-fixture."
    },
    {
      "id": "rac-basic-2024",
      "name": "RAC Basic Sample Family (2024)",
      "file": "demos/rac_basic_sample_family_2024.rfa",
      "revit_version": 2024,
      "format": "rfa",
      "size_bytes": 1080832,
      "element_count_hint": 88,
      "thumbnail": "demos/thumbnails/rac_basic_2024.svg",
      "description": "Family-scale sample — the canonical reference across every rvt-rs test. Optional; staged only when the phi-ag LFS corpus is present.",
      "tags": [
        "family",
        "furniture",
        "reference"
      ],
      "loadable": true,
      "expected_quality": "Scaffold",
      "expected_quality_note": "Honest partial decode: metadata/schema and spatial scaffold; typed project geometry is not claimed.",
      "license": "phi-ag/rvt sample redistributable (see upstream LICENSE)",
      "provenance": "phi-ag/rvt examples/Autodesk/racbasicsamplefamily-2024.rfa",
      "source_candidates": [
        "_corpus/examples/Autodesk/racbasicsamplefamily-2024.rfa",
        "../_corpus/examples/Autodesk/racbasicsamplefamily-2024.rfa"
      ]
    },
    {
      "id": "rac-basic-2026",
      "name": "RAC Basic Sample Family (2026)",
      "file": "demos/rac_basic_sample_family_2026.rfa",
      "revit_version": 2026,
      "format": "rfa",
      "size_bytes": 1093120,
      "element_count_hint": 88,
      "thumbnail": "demos/thumbnails/rac_basic_2026.svg",
      "description": "Same family upgraded through every Revit release — shows cross-version reading. Optional corpus.",
      "tags": [
        "family",
        "furniture",
        "cross-version"
      ],
      "loadable": true,
      "expected_quality": "Scaffold",
      "expected_quality_note": "Honest partial decode: metadata/schema and spatial scaffold; typed project geometry is not claimed.",
      "license": "phi-ag/rvt sample redistributable (see upstream LICENSE)",
      "provenance": "phi-ag/rvt examples/Autodesk/racbasicsamplefamily-2026.rfa",
      "source_candidates": [
        "_corpus/examples/Autodesk/racbasicsamplefamily-2026.rfa",
        "../_corpus/examples/Autodesk/racbasicsamplefamily-2026.rfa"
      ]
    },
    {
      "id": "synthetic-project",
      "name": "Synthetic IFC project fixture",
      "file": "demos/synthetic-project.ifc",
      "revit_version": null,
      "format": "ifc",
      "size_bytes": 8195,
      "element_count_hint": 12,
      "thumbnail": "demos/thumbnails/synthetic_project.svg",
      "description": "Hand-built IFC4 fixture — shows what the exporter produces without a Revit input. Not opened by the RVT parser; download/reference only.",
      "tags": [
        "ifc",
        "synthetic",
        "exporter-demo"
      ],
      "loadable": false,
      "expected_quality": "Geometry",
      "expected_quality_note": "Reference IFC4 with typed elements from synthesized inputs. Viewer cannot parse IFC as input.",
      "license": "Apache-2.0 (rvt-rs tests/fixtures)",
      "provenance": "tests/fixtures/synthetic-project.ifc"
    },
    {
      "id": "synthetic-structural",
      "name": "Synthetic structural fixture",
      "file": "demos/synthetic-structural.ifc",
      "revit_version": null,
      "format": "ifc",
      "size_bytes": 7882,
      "element_count_hint": 8,
      "thumbnail": "demos/thumbnails/synthetic_structural.svg",
      "description": "Columns + beams + structural framing — exercises the IfcMember routing + RepresentationMap paths. Download/reference only.",
      "tags": [
        "ifc",
        "structural",
        "exporter-demo"
      ],
      "loadable": false,
      "expected_quality": "Geometry",
      "expected_quality_note": "Reference IFC4 structural sample. Viewer cannot parse IFC as input.",
      "license": "Apache-2.0 (rvt-rs tests/fixtures)",
      "provenance": "tests/fixtures/synthetic-structural.ifc"
    }
  ],
  "schema_note": "Frontend loader reads the staged catalog at /demos/catalog.json (written by viewer/scripts/stage-demos.mjs), copies redistributable binaries to /demos/, and renders a gallery with provenance + expected quality labels. The element_count_hint is a display value — the actual viewer runs its own element enumeration on load.",
  "privacy_note": "Every demo listed here has redistribution rights confirmed. Demo bytes are same-origin static assets fetched only when the user clicks a gallery entry (or during initial catalog load). Adding a new demo requires either (a) the contributor holds copyright and chooses to open-source it, or (b) the file is already under an open license allowing redistribution (e.g. phi-ag/rvt's MIT / sample-content clause). See docs/viewer-privacy-posture.md (VW1-21) for the broader client-side-only posture."
}