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
{
  "schema_version": 1,
  "description": "Runtime and memory budgets for the rvt-rs performance gate. Wall-clock thresholds are intentionally broad enough for shared CI runners; local benchmark documentation carries tighter reference numbers.",
  "helper_example": "perf_budget_op",
  "operations": [
    "open",
    "summarize",
    "schema_parse",
    "element_decode",
    "ifc_export",
    "viewer_parse_render"
  ],
  "categories": {
    "small": {
      "description": "Under 1 MiB. Reference: phi-ag/rvt racbasicsamplefamily-2024.rfa.",
      "env": "RVT_PERF_SMALL_FILE",
      "iterations": 3,
      "default_paths": [
        "../../samples/_phiag/examples/Autodesk/racbasicsamplefamily-2024.rfa",
        "../../samples/racbasicsamplefamily-2024.rfa",
        "_corpus/examples/Autodesk/racbasicsamplefamily-2024.rfa"
      ],
      "budgets": {
        "open": { "max_ms": 250.0, "max_rss_mb": 192.0 },
        "summarize": { "max_ms": 750.0, "max_rss_mb": 256.0 },
        "schema_parse": { "max_ms": 350.0, "max_rss_mb": 256.0 },
        "element_decode": { "max_ms": 2500.0, "max_rss_mb": 384.0 },
        "ifc_export": { "max_ms": 3500.0, "max_rss_mb": 384.0 },
        "viewer_parse_render": { "max_ms": 4000.0, "max_rss_mb": 384.0 }
      }
    },
    "medium": {
      "description": "1-50 MiB. Reference: magnetar-io/revit-test-datasets 2024_Core_Interior.rvt.",
      "env": "RVT_PERF_MEDIUM_FILE",
      "iterations": 2,
      "default_paths": [
        "/private/tmp/rvt-corpus-probe/magnetar/Revit/2024_Core_Interior.rvt",
        "_project_corpus/Revit/2024_Core_Interior.rvt"
      ],
      "budgets": {
        "open": { "max_ms": 1500.0, "max_rss_mb": 512.0 },
        "summarize": { "max_ms": 5000.0, "max_rss_mb": 768.0 },
        "schema_parse": { "max_ms": 1500.0, "max_rss_mb": 768.0 },
        "element_decode": { "max_ms": 12000.0, "max_rss_mb": 1024.0 },
        "ifc_export": { "max_ms": 15000.0, "max_rss_mb": 1024.0 },
        "viewer_parse_render": { "max_ms": 18000.0, "max_rss_mb": 1024.0 }
      }
    },
    "large": {
      "description": "50 MiB and up. Provide RVT_PERF_LARGE_FILE when a redistributable large fixture is available.",
      "env": "RVT_PERF_LARGE_FILE",
      "iterations": 1,
      "default_paths": [],
      "budgets": {
        "open": { "max_ms": 5000.0, "max_rss_mb": 1536.0 },
        "summarize": { "max_ms": 18000.0, "max_rss_mb": 2048.0 },
        "schema_parse": { "max_ms": 4000.0, "max_rss_mb": 2048.0 },
        "element_decode": { "max_ms": 35000.0, "max_rss_mb": 3072.0 },
        "ifc_export": { "max_ms": 45000.0, "max_rss_mb": 3072.0 },
        "viewer_parse_render": { "max_ms": 50000.0, "max_rss_mb": 3072.0 }
      }
    }
  }
}