You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Export a self-contained HTML file with an embedded 3D model viewer #25
Share an RVT model as a single HTML file that opens locally in a browser with an embedded interactive viewer and requires no Revit installation or application server.
Current behavior
RvtIO has no standalone HTML model-viewer export.
Scope and milestones
Embed the model scene, viewer code, styles and required assets so the delivered file works offline without CDN requests.
Provide orbit/pan/zoom, fit-to-model, element selection/highlighting, hierarchy or category browsing, property inspection and hide/isolate controls.
Expose API and CLI export options for model selection and included metadata.
Handle empty or partially supported models with a clear completeness summary.
Choose a redistributable rendering stack and include the required dependency notices.
Acceptance criteria
Open the generated file through a local file URL in supported browsers and verify that it makes no required network requests.
Select a visible element and show its corresponding identity and selected properties.
Test navigation, visibility controls, materials and a larger model.
Escape model text and property values so they cannot execute as page content.
Make omitted geometry and unsupported content visible without exposing implementation internals to the viewer user.
The standalone HTML/WebGL viewer belongs in IOExtend/IOViewer. This issue now tracks RvtIO integration with that viewer.
Responsibilities:
RvtIO: read RVT/RFA files, decode native geometry and parameters, and expose the geometry needed for triangulated export through a minimal public API.
IOViewer: own the generic viewer document, HTML/WebGL implementation, navigation, selection, visibility controls, and presentation features.
IOViewer.RvtIO: a separate optional adapter project/package in the IOViewer repository, depending on both libraries and converting an already opened RvtDocument into a ViewerDocument.
The core RvtIO and IOViewer packages remain independent. The adapter should use IOViewer's existing HTML exporter and preserve geometry-to-element identity, materials, selected properties, units, coordinate precision, and diagnostics for omitted geometry.
Implementation and acceptance:
Preserve reusable mesh prototypes and per-instance transforms for repeated families. Extend IOViewer's generic scene model additively where necessary, keeping existing flat meshes, importers, and supported JSON documents working.
Preserve instance-specific or host-clipped geometry; matching face counts alone do not establish that a symbol mesh is reusable.
Verify mirrored instances, transparency, large coordinates, element selection/property mappings, and partial models.
Verify that the generated HTML opens offline without required network requests and safely handles untrusted model text.
Add an integration example and tests on .NET 8 and .NET 10, including a representative larger model measurement.
Deliver the library adapter first; CLI integration can follow separately.
Related scene/geometry work remains tracked by #24. PR #186 can be used as reference material for reusable geometry work, with the HTML/WebGL implementation supplied by IOViewer.
This issue remains open until the adapter and the integration acceptance checks are delivered.
Activity
Export browser-ready 3D scenes (.glb, rvtio-scene/1) and standalone H…
mahach666 commentedon Nov 11, 2026
Architecture update: integrate with IOViewer
The standalone HTML/WebGL viewer belongs in IOExtend/IOViewer. This issue now tracks RvtIO integration with that viewer.
Responsibilities:
RvtDocumentinto aViewerDocument.The core RvtIO and IOViewer packages remain independent. The adapter should use IOViewer's existing HTML exporter and preserve geometry-to-element identity, materials, selected properties, units, coordinate precision, and diagnostics for omitted geometry.
Implementation and acceptance:
Related scene/geometry work remains tracked by #24. PR #186 can be used as reference material for reusable geometry work, with the HTML/WebGL implementation supplied by IOViewer.
This issue remains open until the adapter and the integration acceptance checks are delivered.