rvt 0.3.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": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://drunkonjava.github.io/rvt-rs/schemas/decoded-elements.schema.json",
  "title": "rvt production decoded elements JSON",
  "description": "Array of production-walker decoded elements emitted by rvt-elements (default) and mirrored by Python RevitFile.decoded_elements(). The optional typed object is the Lane Five MVP projection (Level/Wall/Floor/Door/Window/Room/Material).",
  "type": "array",
  "items": {
    "$ref": "#/$defs/decodedElement"
  },
  "$defs": {
    "byteRange": {
      "type": "object",
      "required": ["start", "end"],
      "properties": {
        "start": { "type": "integer", "minimum": 0 },
        "end": { "type": "integer", "minimum": 0 }
      },
      "additionalProperties": false
    },
    "field": {
      "type": "object",
      "required": ["name", "kind"],
      "properties": {
        "name": { "type": "string" },
        "kind": {
          "type": "string",
          "enum": [
            "pointer",
            "element_id",
            "ref_container",
            "integer",
            "float",
            "bool",
            "guid",
            "string",
            "vector",
            "bytes"
          ]
        }
      },
      "additionalProperties": true
    },
    "decodedElement": {
      "type": "object",
      "required": ["id", "class_name", "byte_range", "fields", "parameters", "provenance"],
      "properties": {
        "id": {
          "type": ["integer", "null"],
          "minimum": 0
        },
        "class_name": { "type": "string", "minLength": 1 },
        "byte_range": { "$ref": "#/$defs/byteRange" },
        "fields": {
          "type": "array",
          "items": { "$ref": "#/$defs/field" }
        },
        "parameters": {
          "description": "AProperty* value carriers for this row; empty for host elements until host↔parameter joins recover (#35).",
          "type": "array",
          "items": { "type": "object", "additionalProperties": true }
        },
        "provenance": { "$ref": "#/$defs/provenance" },
        "typed": {
          "description": "Lane Five MVP typed projection, or null/omitted for non-MVP classes.",
          "type": ["object", "null"],
          "additionalProperties": true
        }
      },
      "additionalProperties": false
    },
    "provenance": {
      "type": "object",
      "required": [
        "source_stream",
        "source_offset",
        "record_kind",
        "decoder",
        "confidence",
        "missing_required_fields",
        "warnings"
      ],
      "properties": {
        "source_stream": { "type": ["string", "null"] },
        "source_offset": { "type": ["integer", "null"], "minimum": 0 },
        "record_kind": { "type": ["string", "null"] },
        "decoder": { "type": ["string", "null"] },
        "confidence": { "type": "number", "minimum": 0, "maximum": 1 },
        "missing_required_fields": {
          "type": "array",
          "items": { "type": "string" }
        },
        "warnings": {
          "type": "array",
          "items": { "type": "string" }
        }
      },
      "additionalProperties": false
    }
  }
}