Relay allows for you to add Dynamo graphs to your Revit ribbon.
Relay is a plugin for Revit developed by john pierson. Relay allows you to add Dynamo graphs (.dyn files) to your ribbon as push button tools. This is achieved by launching Dynamo in the background (UI-Less) and running the given Dynamo graph. This requires you to have only one version of Dynamo installed. Graphs with nodes marked as inputs (the same convention Dynamo Player uses) automatically get a generated input form before the run. More info here: Working With Inputs
https://tldrlegal.com/license/gnu-general-public-license-v3-(gpl-3) Relay is available through the GPL-30 License. This means you can do anything with this code except distribute closed-source versions of the base code in the repo.
| 🙌 Permissions | 📖 Conditions | 💡 Limitations |
|---|---|---|
| 🟢 Commercial use | 🔵 Disclose source | 🔴 Liability |
| 🟢 Distribution | 🔵 License and copyright notice | 🔴 Warranty |
| 🟢 Modification | 🔵 Same license | |
| 🟢 Patent use | 🔵 State changes | |
| 🟢 Private use |
💡 Basically, please be nice and contribute / improve this tool if you can.
This code is provided “As-Is” and without warranty. The idea was to expose how to do this within Revit, while developing a tool for our own internal uses. If you encounter anything that you want to report, please do that on the Github Issues page,
💡 note: there are no guarantees regarding development based on the posted issues
| Revit | Dynamo | Relay support | |:——|:——-|:————–| | 2025 | 3.0.x | Current | | 2026 | 3.6.x | Current | | 2027 | 4.0.x | Current |
Breaking compatibility note: Current Relay builds support Revit 2025-2027 only. Revit 2021-2024 users should remain on Relay v1.5.2, the final historical release that includes those build configurations.
Preferred Installation Path: C:\Users\%username%\AppData\Roaming\Autodesk\Revit\Addins\202x
| For a simple install, simply unzip the folder from releases, to the above directory. Your folder structure should resemble the GIF to the right if you did it correctly. |
These instructions from Radu, describe the process for unzipping folders for Revit add-ins.
| Relay.addin → This loads the tool into your version of Revit and references the .dll in the Relay folder. | |
| - | Relay.dll → The code that actually loads and runs the tool. |
| Relay Folder → Contains the .dll file and the Dynamo graph folder structure. |
💡 The above would be the minimum to get started. Below we break down the graph folder structure in more detail.
How to structure your folder for success.
| Single Button Folder View: | Resulting Panel View (in Revit): |
|---|---|
Relay generates an input form on the fly for any graph containing nodes marked as Is Input — the same authoring convention Dynamo Player uses. When you click the graph’s ribbon button, Relay reads the .dyn file, finds the declared inputs, and shows a dialog to collect values before running. Graphs without marked inputs run immediately, exactly as before.
Supported input nodes:
| Dynamo node | Relay control |
|---|---|
| String | Text box |
| Number Slider / Integer Slider | Slider with a synced value box (integer sliders snap to whole numbers) |
| Number / Integer (no range) | Text box with validation |
| Boolean | Checkbox |
| File Path | Text box + Browse… file picker |
| Directory Path | Text box + Browse… folder picker |
| Categories (and other Revit dropdowns) | Dropdown populated from the active document |
| Select Model Element / Elements | “Select in Revit…” button that lets you pick in the model |
Tips for graph authors:
Data-Shapes UI graphs remain fully supported — if your graph opens its own input window, simply don’t mark nodes as inputs and it will run as-is.
Mark any node as Is Output (again, the same convention Dynamo Player uses) and Relay shows its value in a results window once the graph finishes. Graphs with no marked outputs finish silently, exactly as before.
Watch to something meaningful.💡 Reading results never fails a run. If Relay can’t read a value, that one output says so and the rest still display — your graph has already executed by that point.
Using Data-Shapes for selection.
By design, Relay requires your users to have all Packages installed that you use within your Dynamo graphs. This tool does not manage package dependencies for you in any way. If a user runs one of your Dynamo graphs that uses a package and they do not have it, it simply will not run to completion.
If managing packages on the fly with Dynamo graphs on the ribbon is a requirement for you. You should definitely check out, Orkestra from Data-Shapes.io.
Winning-Revit-Dynamo-Player-2017
Dynamo-BIM-Managers-Managing-Dynamo-and-Dynamo