Back to Blog
RevitDynamoAutomationShared ParametersExcel

Automating Shared Parameters in Revit with Dynamo and Excel

Learn how to create shared parameters in bulk using Dynamo, Excel, and proper Forge TypeId conversion — a complete practical guide.

Paulo Giavoni

Paulo Giavoni

Engineer & BIM Specialist

4 January 20268 min read
Automating Shared Parameters in Revit with Dynamo and Excel

The Challenge: Creating Shared Parameters at Scale#

Creating shared parameters in Revit is straightforward — when you need just one or two. But what happens when you need to create 50 parameters for a complex MEP project? Or standardize 100+ parameters across your organization's template?

The manual process becomes a nightmare:

  • Open the Shared Parameters file
  • Create each parameter one by one
  • Select the correct category, group, and data type
  • Repeat... 50, 100, or 200 times

This is where Dynamo shines. But here's the catch that trips up most developers: Revit's API doesn't accept plain text for parameter types. You can't just type "Length" or "Text" — you need specific Forge TypeId objects.

Understanding Parameter Types#

Before diving into the solution, let's understand the two critical type specifications:

Spec Type (Data Type)#

The Spec Type defines what kind of data the parameter will store — text, numbers, measurements, electrical values, etc.

Spec Type options in Revit
Spec Type options in Revit

Examples:

  • autodesk.spec:spec.string-2.0.0 → Text
  • autodesk.spec.aec:length-2.0.0 → Length measurement
  • autodesk.spec.aec.electrical:power-2.0.0 → Electrical power

Group Type (UI Placement)#

The Group Type determines which section the parameter appears in within Revit's Properties panel — Dimensions, Identity Data, Electrical, Mechanical, etc.

Group Type options in Revit
Group Type options in Revit

Examples:

  • autodesk.parameter.group:identityData-1.0.0 → Identity Data section
  • autodesk.parameter.group:dimensions-1.0.0 → Dimensions section
  • autodesk.parameter.group:electrical-1.0.0 → Electrical section

The Dynamo Solution#

The key insight is that Excel stores everything as text, but Revit's API requires specific object types. Our Dynamo script bridges this gap by converting text strings into proper Revit API objects.

Complete Dynamo script for creating shared parameters
Complete Dynamo script for creating shared parameters

Script Workflow#

The workflow breaks down into 5 clear steps:

1. Data Input (File Path)

  • Locates your Excel file containing parameter definitions
  • Simply paste the complete file path to your Excel file
  • Important: Make sure the Excel file is closed before running the script
File path input node in Dynamo
File path input node in Dynamo

2. Excel Reading (Data.ImportExcel)

  • Reads all rows and columns from your Excel spreadsheet
  • All data comes out as plain text (strings)
  • This raw data needs to be converted to Revit-compatible formats

3. Data Conversion (List.Deconstruct + List.Transpose)

  • Separates each Excel column into individual lists for processing
  • Results in 6 separate lists: name, category, group, instance/type, grouptype, spectype
  • Dynamo processes lists more efficiently than tables
Data conversion nodes in Dynamo
Data conversion nodes in Dynamo

4. Forge Conversion (TypeId Nodes)

  • Converts Excel text strings into proper Revit object types
  • SpecType.ByTypeId: Converts spec type strings into SpecTypeId objects
  • GroupType.ByTypeId: Converts group type strings into GroupTypeId objects
  • Category.ByName: Converts category names (like "Walls") into Category objects
Forge TypeId conversion nodes
Forge TypeId conversion nodes

5. Parameter Creation (Parameter.CreateSharedParameter)

  • Creates the actual Shared Parameters in your Revit project
  • Receives all the converted data from previous steps
  • Parameters appear in your Revit project immediately
Parameter creation node with all inputs connected
Parameter creation node with all inputs connected

Excel Template Structure#

Your Excel file must have exactly these 6 columns in this exact order:

1. parameter_Name — The name that appears in Properties
Examples: ELEC_PANEL_RATING, STRUCT_BEAM_CAPACITY

2. category — Which Revit elements get this parameter
Examples: Walls, Doors, Electrical Equipment

3. groupName — Custom folder in Properties palette
Examples: Electrical Analysis, Custom Dimensions

4. instance/Type — Instance (TRUE) or Type (FALSE) parameter
Examples: TRUE, FALSE

5. grouptype — Predefined Revit property section
Example: autodesk.parameter.group:electrical-1.0.0

6. spectype — Data type the parameter stores
Example: autodesk.spec:spec.string-2.0.0

Working Example#

Here's a ready-to-use example for elevator equipment parameters:

Text
1parameter_Name category groupName instance/Type grouptype spectype
2SRE_ELEVATOR_TYPE Specialty Equipment Specialty Equipment_SRE FALSE autodesk.parameter.group:identityData-1.0.0 autodesk.spec:spec.string-2.0.0
3SRE_ELEVATOR_STOPS Specialty Equipment Specialty Equipment_SRE TRUE autodesk.parameter.group:identityData-1.0.0 autodesk.spec.aec:number-2.0.0
4SRE_ELEVATOR_LOAD Specialty Equipment Specialty Equipment_SRE FALSE autodesk.parameter.group:identityData-1.0.0 autodesk.spec.aec:number-2.0.0

What this creates:

  • 3 parameters for Specialty Equipment category
  • Custom group called "Specialty Equipment_SRE" in Properties panel
  • Mix of text (TYPE) and numeric (STOPS, LOAD) parameters
  • Some instance-level (STOPS) and some type-level (TYPE, LOAD) parameters

Quick Reference: Common Parameter Types#

General Types#

Type

SpecType

Text

spec.string-2.0.0

Number

spec.aec:number-2.0.0

Yes/No

spec:spec.bool-1.0.0

Dimensions#

Type

SpecType

Length

spec.aec:length-2.0.0

Area

spec.aec:area-2.0.0

Volume

spec.aec:volume-2.0.0

Discipline-Specific#

Type

SpecType

GroupType

Electrical Power

electrical:power-2.0.0

electrical-1.0.0

Temperature

hvac:temperature-2.0.0

mechanical-1.0.0

Structural Force

structural:force-2.0.0

identityData-1.0.0

Note: All SpecTypes start with autodesk.spec.aec. and GroupTypes with autodesk.parameter.group:

Tips for Success#

Pre-Run Checklist#

  • Excel file saved and closed
  • Correct file path in "File Path" node
  • Data filled following template exactly
  • Revit open with an active project

Common Errors and Solutions#

Error

Solution

"Cannot find file"

Check if the path is correct

"Invalid SpecType"

Use exactly the codes from Forge list

"Parameter already exists"

Parameter was already created before

"Invalid Category"

Category name must be in English

Best Practices#

  • Multiple categories: Separate with semicolons: "Walls;Doors;Windows"
  • Unique naming: Use prefixes to avoid conflicts: "SRE_", "MEP_", "STRUCT_"
  • Test incrementally: Start with 1-2 parameters before creating large batches
  • Always backup: Save your Revit project before running the script
  • Close Excel: Make sure your Excel file is closed when running Dynamo

Conclusion#

Automating shared parameter creation saves hours of tedious manual work. The key insight is understanding that Revit requires proper Forge TypeId objects, not plain text strings. With the right Excel template and Dynamo script, you can create hundreds of standardized parameters in seconds.

The complete Dynamo script and Excel templates are available in our DynaGuide repository.

Have questions about parameter automation? Leave a comment below or reach out to our support team at support@unibim.io

Questions or Feedback?

I'd love to hear your thoughts on this article. Reach out directly and let's start a conversation.

Follow me on LinkedIn for more BIM tips and updates