Skip to content

Complete nested extensible-storage decoding in schema-driven records #15

Open

Description

@mahach666

Problem

The schema-driven field walker cannot interpret all extensible-storage payload layouts. Encountering one can leave later fields in the record unavailable, including data used by reinforcement shape definitions and data-storage elements in newer files.

Expected behavior

Use the file metadata needed to decode supported nested payloads and continue reading the remaining record fields within their declared boundaries.

Public coverage sample

rvtio rstbasicsampleproject.rvt structural.compact.json 2> record-read.log

Use the Revit 2027 file to investigate partial field walks involving reinforcement shapes and data-storage records. Inspect diagnostics and the fields following nested extensible-storage payloads. A reduced fixture isolating an unsupported payload remains part of this issue.

Acceptance criteria

  • Add reduced cases for the missing reinforcement-shape and data-storage payload layouts.
  • Cover newer file versions, including Revit 2027.
  • Preserve record boundaries and decoding limits for nested data.
  • Test truncated and unknown payloads with clear partial-read diagnostics.
  • Preserve fields successfully decoded before an unsupported payload.

Activity

  1. mahach666 commented on Nov 12, 2026

    @mahach666
    CollaboratorAuthor

    Status against main at 74e80fc. The field walk reads extensible storage entities by their stored schema (#181, #182), and so do the readers behind the output (#183, #184). Long texts and family-document schemas came in #185, and rvtio coverage (#180) reports every record of the 52 measured files of releases 2020 to 2027 walked to its last byte. Synthetic tests cover unstored schemas, unread field types, bad handles, stops inside values and truncated texts. Still open: reduced cases for the reinforcement-shape and data-storage layouts named here, use of family-document schemas by the output readers (they still pass over an entity they cannot read instead of stopping), and the parameters behind an entity, which are still left out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions