Dynamo for Revit: Your First 5 Useful Scripts, Node by Node
Dynamo for Revit from scratch: where to open it and five useful scripts, node by node: fill parameters, Excel round trip, empty data and naming.
Dynamo · Revit · Getting started
Five Dynamo scripts for Revit you'll use in your first week
Where Dynamo opens, how to read a graph, and five short routines with the exact nodes: fill a parameter across a whole category, export to Excel, push changes back, find empty data, and clean up names.
What is Dynamo for Revit and where do you open it?
Dynamo is installed with Revit. You open it from Manage › Visual Programming › Dynamo. Dynamo Player sits on the same panel.
A graph reads left to right: nodes on the left pick elements, nodes in the middle read or transform data, and nodes on the right write to the model.
Two habits before you start:
- Set the run mode to Manual (bottom left) whenever the graph writes to the model. In Automatic, every change you make to the graph writes again.
- Test on a copy of the model. What Dynamo writes can usually be undone with Ctrl+Z in Revit, but don't rely on it.
Script 1: how do you fill a parameter on every element in a category?
For example, writing "Checked" into the Comments parameter of every door.
- Categories: pick the Doors category.
- All Elements of Category: gets every door in the model.
- String or Code Block: the parameter name, "Comments", and the value, "Checked".
- Element.SetParameterByName: writes the value on each door.
Three things that make this node fail:
- The parameter name must match exactly, including capitals, and in your Revit's language: "Comments" in English Revit, "Comentarios" in Spanish.
- Instance or type. If it's a type parameter, you write it on the type, not on each element. The Family Types node picks a type.
- The data type. A number parameter won't take text. Numbers are written in the project's units.
Script 2: how do you export elements and parameters to Excel?
Since Dynamo 2.12 there are nodes that read and write .xlsx files without Excel installed.
- Categories and All Elements of Category: the elements you want to list.
- Element.Id: each element's ID. It always goes in the first column, so the changes can come back.
- Element.GetParameterValueByName: one node per parameter, for example Mark and Comments.
- List.Create joins the columns and List.Transpose turns them into rows.
- File Path and Data.OpenXMLExportExcel: the file, the sheet name and the data.
Script 3: how do you push changes from Excel back into Revit?
It's the round trip Revit doesn't offer.
- File Path and Data.OpenXMLImportExcel: reads the edited sheet.
- List.Transpose: separates the ID column from the new values.
- All Elements of Category and Element.Id: reads the model's elements again.
- List.IndexOf and List.GetItemAtIndex: finds, for each Excel row, the element with that ID.
- Element.SetParameterByName: writes the new values.
The golden rule: match by ID, never by row order. If someone sorted the sheet, the value would land on a different element. We go deeper in exporting Revit schedules to Excel and importing them back.
Script 4: how do you find elements with an empty parameter?
The quality check before a deliverable: which doors have no Mark.
- All Elements of Category and Element.GetParameterValueByName: the Mark value of every door.
- Compare each value with an empty string and with null (Object.IsNull): you get a list of true and false.
- List.FilterByBoolMask: keeps the doors with no value.
- List.Count: how many there are.
- Color.ByARGB and Element.OverrideColorInView: paints them red in the active view.
Script 5: how do you standardize names in bulk?
For example, making every room name uppercase.
- Categories (Rooms) and All Elements of Category.
- Element.GetParameterValueByName: the Name parameter.
- String.ToUpper: converts it to uppercase. To add a prefix, use a Code Block with
"B1-" + x. - Element.SetParameterByName: writes the new name.
How do you get the team using them without opening Dynamo?
With Dynamo Player:
- Save the .dyn scripts in a shared folder.
- In each graph, right-click the nodes users should be able to change (the category, the value, the file) and check Is Input.
- Open Manage › Visual Programming › Dynamo Player and point it to that folder.
The team sees a list of scripts, changes the inputs and clicks run. Nobody touches the graph.
When should you move from Dynamo to a plugin?
When the script runs every day, many people use it, it handles thousands of elements, or it needs serious validation before writing. At that point a C# plugin is faster, sturdier and doesn't depend on whoever built the graph. We compare them in Dynamo vs C#: which one fits each case.
Sources
- Dynamo Primer: selecting Revit elements, editing parameters and documenting and color overrides.
- Dynamo 2.12: the OpenXML Excel nodes, no Excel install needed.
- Autodesk: Dynamo Player.
Data verified on October 23, 2026.
Related resources
- The full round trip: export Revit schedules to Excel and import them back.
- What to automate first: automate Revit tasks with Dynamo and plugins.
- The same in Civil 3D: Dynamo for Civil 3D scripts.
- When to move to C#: Dynamo vs C#, which one fits each case.
Frequently asked questions about Dynamo for Revit
Does Dynamo come with Revit?
Yes. Dynamo is installed with Revit and opens from Manage › Visual Programming › Dynamo. Dynamo Player sits on the same panel and runs scripts without opening the graph. You don't need to download anything extra to start working with the Revit nodes.
Why doesn't Element.SetParameterByName write the value?
Almost always for one of three reasons: the parameter name isn't exact or is in a different language from your Revit, it's a type parameter and you tried to write it on each element, or the value has the wrong data type, such as text going into a number parameter.
How do you export Revit data to Excel with Dynamo?
With the Data.OpenXMLExportExcel and Data.OpenXMLImportExcel nodes, which since Dynamo 2.12 read and write .xlsx files without Excel installed. Always put the element ID in the first column: that's what lets the changes go back to the right element even if someone sorted the sheet.
What is Dynamo Player?
It's a Revit window that runs Dynamo scripts in one click, without opening the graph. It reads the .dyn files in a folder and shows the nodes marked as inputs as editable fields. It's how the whole team can use the scripts without knowing Dynamo.
When should you move from Dynamo to a C# plugin?
When the script runs every day, many people use it, it handles thousands of elements, or it needs serious validation before writing to the model. A plugin is faster and sturdier, and it doesn't depend on whoever built the graph. The usual path is to prove the idea in Dynamo, then turn it into a plugin.
Keep reading on this topic
Revit and Civil 3D Add-in Development: The Complete Guide (2026)
The complete guide to Revit and Civil 3D add-in development: what add-ins are, what to automate, C# and the Autodesk API, deployment and cost.
How to Build a Civil 3D Plugin with Claude Code Without Being a Programmer: End-to-End 2026 Guide
How to build a Civil 3D plugin with Claude Code without coding experience: architecture, prompts that work, and how to compile and deploy it.
Dynamo vs C# in Civil 3D and Revit: when to use each + automations that save hours
Dynamo or C# for automating Civil 3D and Revit: the real differences, when each one is worth it, and automations that save hours, with examples.
How much does a Revit or Civil 3D add-in cost? 2026 pricing and timeline guide
How much a Revit or Civil 3D add-in costs to build: what drives price and timeline, and how to calculate whether it pays for itself in hours saved.