Relay

Logo

Relay allows for you to add Dynamo graphs to your Revit ribbon.

View the Project on GitHub johnpierson/Relay

❓ What is Relay for Revit?

image

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

⚖ License

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.

🆘 Support

💻 General Support:

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

🛠 Tested Revit & Dynamo Versions:

| 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.

⏯ Usage

🔧 Installation:

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. relayInstall

These instructions from Radu, describe the process for unzipping folders for Revit add-ins.

image 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.
image 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.

🏗 Dynamo Graph Structure:

How to structure your folder for success.

💡 Example folder structure: (included in base installer):

📁 Base Folder Structure:

image

📂 Grouped Folder Structure (buttons in panel):

Single Button Folder View: Resulting Panel View (in Revit):
image image
image image

🏆 Best Practices for Graphs

🔌 Working with Inputs:

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.

📤 Showing Results:

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.

💡 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.

Selecting Model Elements:

Using Data-Shapes for selection. image

📦 Managing Packages:

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.

For further reading on making your graph UI-friendly, here are some great resources:

Winning-Revit-Dynamo-Player-2017

Dynamo-BIM-Managers-Managing-Dynamo-and-Dynamo

💽 Included Sample DYNs