DYN
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
Dynamo Graph Preview.
At a glance
| Original creator | Autodesk (Dynamo) |
| Purpose | A Dynamo visual program: a graph of nodes and the connectors between them, used mostly with Revit. |
| Extensions | .dyn |
| Poka parser | poka-dyn |
| Viewer | poka-tree-viewer |
| Depth tier | Parser with a shared viewer (see Depth tiers) |
| Breadth tier | B3 Core (see Breadth tiers) |
How much Poka reads
B3 Core. Only the main content type or types are decoded (for example geometry but not materials, layers or annotations, or only one version family). The list of gaps is substantial.
Confidence: high (the reviewer read the code and a test that proves the claim). Basis: Reviewed 2026-10-16: parsers/poka-dyn/src/lib.rs (XML reader, generic JSON tree, header counts) and unit tests, tests/samples.rs over the 4 corpus graphs (2 Dynamo 0.8 XML primer graphs, 2 Dynamo 2.x JSON). Covers both serialisations as a node and connector tree. XML connectors are resolved to node nicknames and ports (tested against the Flatten primer graph). JSON is shown as a generic tree with no Dynamo-specific decoding. Only 0.8.1 XML and 2.x JSON are exercised; no 1.x XML sample exists.
What Poka does not read
- 2.x JSON connectors are not resolved to node and port names (only the XML form is)
- no graph or canvas view: node positions, wires and groups are not drawn
- node type, inputs, outputs and port names are not interpreted; fields are shown raw
- any string is cut at 160 characters, so long Code Block, DesignScript or Python node source is truncated
- arrays beyond 300 items, nesting past 8 levels and graphs past 4000 tree nodes are cut
- package dependencies, run settings and view and camera data are shown raw, not interpreted
Background
Dynamo has written two unrelated serialisations under this extension: JSON from version 2.x, and XML with a Workspace root in versions 0.x and 1.x. Poka reads both into the same tree, with the XML sections renamed to the JSON form's names (Elements becomes Nodes). Field names inside a node vary across versions and custom nodes, so the JSON form is shown as a generic tree rather than against a fixed schema. Strings are cut at 160 characters, the tree is capped at 300 items and a depth of 8, and connectors are resolved for the XML form but not the JSON form.
Versions
| Version | Identifier | Poka | Note |
|---|---|---|---|
| Dynamo 0.x and 1.x XML | <Workspace Version=…> |
Read | |
| Dynamo 2.x JSON | Read |
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- roxmltree (used; MIT OR Apache-2.0; Rust)
- serde_json (used; MIT OR Apache-2.0; Rust)
- Dynamo (candidate; Apache-2.0; C#; https://github.com/DynamoDS/Dynamo)
Software that uses it
- Autodesk Dynamo
Sources
- parsers/poka-dyn/src/lib.rs