Categories
Tips and Tricks

True or False: Shared Parameters Can Be Renamed

Contrary to popular belief, Revit Shared Parameters can be renamed with this simple workaround.

I founded OpenRFA in 2017 with the goal to create a set of standard Shared Parameters which are developed by a community rather than by a closed-door committee. We shared a common vision: to create a data standard that is inclusive and free.

At the earliest stages of forming this standard, we had several online discussions to identify a naming convention for our standard set of Shared Parameters. We discussed everything from CamelCase versus ALL CAPS, macro to micro name segments, underscore or dash separators and everything in between. This was our primary focus when spinning up our shiny new standard because we knew that Shared Parameters cannot be renamed once they’ve been defined in a family… Or so we thought.

We were convinced that if we ever had to implement a new naming convention or fix a silly typo, we would have to generate a new GUID only to have to go through the time-consuming and costly process of updating entire libraries of families. This was not a scalable solution.

Luckily, I found this workaround and I hope it helps some of you folks who manage enterprise-level BIM standards.

Why would I want to rename a Shared Parameter?

Like many programs on the client/owner side, there are several consultants involved who can create Shared Parameters in projects (for better or for worse). At some point the owner will need to standardize their parameters which includes implementing a naming convention. If the Shared Parameters have already been defined, it is not possible to rename them without a workaround such as this.

Sure, the “easier” route would be to create a new Shared Parameter with a new GUID, however that has a massive downstream impact across the entire program. If you were to go that route, you’d be required to reissue families, schedules, and more to all of your consultants and projects. That’s a costly change for a large scale program with several projects just because you didn’t like the way a Shared Parameter was named.

An alternate method would be to simply delete the Shared Parameter from the family and replace it with the new name, however this is not ideal as you will lose parameter values (including formulas). If you need to retain these values, then I recommend you give this workaround a go to save yourself a lot of time.

With that being said, it is more efficient and cost-effective to retain the GUID and redefine the parameters in your Revit project template. That way at some point the old name will get phased out naturally, with no cost incurred.

The Workaround

Revit workarounds

Contrary to popular belief, you can rename Shared Parameters after they’ve been defined in a family. In fact, I stumbled on a ridiculously simple workaround which does not involve any add-ins, macros, or Dynamo graphs. Although these tools are ideal for automating tasks such as this, they have a bit of a learning curve.

Put simply, the first time a Revit project has a Shared Parameter defined, it is practically written in stone. You can’t rename it or even completely delete it from the frontend of Revit.

With that being said, I found a simple way to trick Revit into renaming a Shared Parameter. Simply create an empty project and define the Shared Parameter with the updated name as a Project Parameter before loading in any families. Once the Shared Parameter is defined, you can load any families and they will acquire the new name. Too easy.

This is a fairly straightforward process, but I’ve outlined it in detail below to walk you through it step-by-step.

1) Start with a clean slate.

For this initial step, don’t use your standard Revit template. Start a new project with no template defined to ensure the Shared Parameters that you want to rename have never existed in the new project.

2) Initialize the Shared Parameter in the Project

Once the new Revit project is created, add the Shared Parameters with the finalized name as Project Parameters. I call this “initializing” the Shared Parameter because you are introducing your Revit project to this GUID for the first time.

This is the most critical part of the process because once this Shared Parameter is initialized, it will live in this project forever unless you purge the Shared Parameter using yet another workaround (#ThanksRevit).

Note: The selected model category for the Project Parameter doesn’t matter at this point, so don’t waste your time selecting more than one. The only goal of this step is to define the Shared Parameters in the Revit project.

3) Load ’em up!

Finally, load the Revit families containing the Shared Parameters that you are seeking to rename into this project. Once they’re loaded, the magic has already happened. Look through the family parameters and you’ll notice they have already acquired the new Shared Parameter names.

The key takeaway here is Revit does not reference Shared Parameters by their names, but rather their GUID. So any family loaded into this project will adopt the new name if it has the same GUID.

4) Publish.

Now that you have your families with the desired Shared Parameter names in the project, you’ll want to export them to be used in other projects with the new Shared Parameter names.

Use your preferred method to export all families out to your libraries and share with your team. The easiest way to do this is to save the families as a library using Revit’s out-of-the-box workflow.

Success

With this workaround, Revit users can finally accomplish something that I’ve personally thought to be impossible throughout my 15 years of Revit experience; we can finally rename Shared Parameters. Happy modeling!

Edit: Special thanks to Jeremy Tammick, aka The Building Coder, for validating that this concept is a valid workaround!