← Back to blog
DynamoRevitVisual programmingAutomationRevit parametersExcel

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.

··6 min read
Share on LinkedInDynamo for Revit: Your First 5 Useful Scripts, Node by Node

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.

  1. Categories: pick the Doors category.
  2. All Elements of Category: gets every door in the model.
  3. String or Code Block: the parameter name, "Comments", and the value, "Checked".
  4. 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.

  1. Categories and All Elements of Category: the elements you want to list.
  2. Element.Id: each element's ID. It always goes in the first column, so the changes can come back.
  3. Element.GetParameterValueByName: one node per parameter, for example Mark and Comments.
  4. List.Create joins the columns and List.Transpose turns them into rows.
  5. 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.

  1. File Path and Data.OpenXMLImportExcel: reads the edited sheet.
  2. List.Transpose: separates the ID column from the new values.
  3. All Elements of Category and Element.Id: reads the model's elements again.
  4. List.IndexOf and List.GetItemAtIndex: finds, for each Excel row, the element with that ID.
  5. 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.

  1. All Elements of Category and Element.GetParameterValueByName: the Mark value of every door.
  2. Compare each value with an empty string and with null (Object.IsNull): you get a list of true and false.
  3. List.FilterByBoolMask: keeps the doors with no value.
  4. List.Count: how many there are.
  5. 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.

  1. Categories (Rooms) and All Elements of Category.
  2. Element.GetParameterValueByName: the Name parameter.
  3. String.ToUpper: converts it to uppercase. To add a prefix, use a Code Block with "B1-" + x.
  4. Element.SetParameterByName: writes the new name.

How do you get the team using them without opening Dynamo?

With Dynamo Player:

  1. Save the .dyn scripts in a shared folder.
  2. In each graph, right-click the nodes users should be able to change (the category, the value, the file) and check Is Input.
  3. 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

Data verified on October 23, 2026.

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.

Talk to an engineerReply today · No commitment