What Are Global Parameters?
Global parameters were introduced into Revit 2017 and it might have been a feature that on first inspection has little practical application. Despite getting some improvements over subsequent versions, that perception may not have changed much but I think they may be a very useful tool to certain people so it might be worth a few minutes of your time to check them out.
So what are they? A global parameter is a parameter that you create inside a Project that can be used to assign or report a value across the entire project. Still no clearer? Well, let’s look at some practical applications to show you how they work and most importantly, how they can work for you.
Firstly, we’ll use a scenario where we have a critical clearance required as a corridor along the edge of workstations in an office although this could be any number of objects that may need to shift around to meet an undetermined value. Without global parameters we would need to locate all the items that need to be shifted (which might be at multiple locations on multiple floors) and then shift the items. So let’s see how we can leverage the power of Revit to at least speed up the process!
Here are our workstations (well, one lot of them, there might be hundreds more in the project).
We know that the client is not sure about what the minimum clearance needs to be so we may need to come back to make adjustments throughout the project.
First we dimension the workstations across the aisles.
Next, we take the dimension and apply parameters to them (in a similar way to what we do in the Revit Family Editor). Note, you can add the same Global Parameter to multiple dimensions at once to save a lot of time. In this case I’ve simply made a Global Parameter for Corridors running in the “X” direction and another one in the “Y” direction. Please note that like all constraints, Revit will still require them to not interfere with each other so if we over-constrain the model and then make a change to the values of the Global Parameters, Revit may be forced to drop some of the constraints.
NOTE: You need to manually set Revit to display a dimension that has a Global Parameter associated with it.
Now we can start to show the time-saving potential of Global Parameters. The client has gotten back to us and it turns out the corridor “Y” dimension needs to be 1200mm and the Corridor “X” dimension needs to be 1300mm.
So tell the client that this is quite a bit of work so it will take quite some time to adjust (LOL) and then go back to the office, fire up Revit and make some changes to the values of the Global Parameters. Note that you can get to this dialogue very quickly by clicking on a dimension that has a Global Parameter associated with it, then clicking on the little pencil symbol that appears.
And now we have these new dimensional constraints pushed into the places where we’ve applied the Global Parameters. A quick check of any warnings will be required if any pop up and a perhaps a quick check off all the floor plans will be wise (1 click drafting has not yet been implemented in Revit!)
In some cases, we want or need to simply record a parameter rather than try to push values into it. In these cases, we make a global parameter but we make it a reporting parameter. It doesn’t attempt to control anything and it allows itself to be changed. Again, there are parallels in the component family editor where we need to record a distance without trying to control that distance.
The reason for this is that in some cases, when we try to assign a normal Global Parameter (i.e. not a reporting parameter) Revit may throw up an error at the time or it may throw up an error down the track when we try to manipulate the values of the parameters. That’s entirely to be expected as Revit cannot allow 2 parameters that can conflict with each other. If you do this inside the Family Editor, Revit will not allow it at all but inside the Project environment Revit may allow this conflicting condition until we make a change to a Global Parameter. It will then un-constrain the elements by removing the Global Parameter and turning the dimension back into a plain-vanilla one.
A practical example of this would be where we need to inspect the distance between an object in a linked file and an element in our host file. If you think about it, we don’t want to push this value around as we are trying to find the position of an element in a project file that we don’t control. So by using the Reporting Parameter option we effectively side-step Revit’s requirements to not have conflicting Parameters.
If the linked file changes then the reporting Global Parameters will be dragged around to reflect the change in the values. Be aware that in the case of linked files, Revit pretty much limits us to reporting “Length” (dimensional) parameters.
One the other hand, if we are monitoring changes to elements inside our host file then we can use many “flavours” of Parameter and report it. So for example, we could use a reporting parameter to derive a Global Parameter of the material on a component Family that might change over time. Anywhere that you see the small rectangle (see screenshot below) to the right of a Type or Instance Parameter means that we can make a Global Parameter.
A more advanced example(formulas):
So we’ve looked at some aspects of Global Parameters but lets join the 2 types of Global Parameters that we’ve discussed and look at how we can get even more automation by using formulas. In this case it’s going to be a formula that uses a YES/NO parameter. Let’s say we have a scenario where we have an MEP (HVAC) engineer who is shifting some low laying ductwork around due to a number of design changes. We have decided that if the duct gets within 3000mm of an adjacent plant room wall then we will need a bollard to be present to stop hitting the ductwork on the way past.
The first thing we do is make a reporting Global Parameter that reports the distance of the centreline of the duct from the adjacent wall.
Now we insert a Bollard Component Family. We can constrain the Bollard any number of ways depending on our requirements. If we open the Bollard in the Family editor we can add a parameter to the Visibility Parameter for the geometry that makes up the bollard – we’ll make that an Instance Parameter so that each Bollard Family can be individually shown or hidden. Inside the project, we now add a Global Parameter to the instance parameter in the Family that controls the visibility of the bollard.
Now we need to make a conditional formula. The formula reads “Duct Offset A < 3000”. In plain language this formula applies a test to the Global Parameter that we called “Duct Offset”. If says “if the parameter Bollard Offset is less than 3000mm then make the answer “yes” -the other answer to the test is “no” but in this case we don’t have to tell Revit that as it is implied. In the screen-cap below we note that the Duct Offset A parameter is 2400mm so being less than 3000mm (as per our test), the little tick box is filled, meaning the Bollard is visible in the view.
If needed to get the quantities to change on a Schedule of the items then we’d need to go a bit deeper in this exercise so for the sake of brevity, we’ll leave it at this point.
Summary and some thoughts:
A few things to think about. Firstly, as we’ve seen, Global Parameters can span a wide range of Parameter types. You can capture / manipulate materials, the visibility of objects, the number of items in an array and so forth. Lots of possibilities!
Hopefully we’ve provided some insight and inspiration to try this toolset out. You might save yourself some valuable time and energy if you use them wisely!
An adapted and expanded version of this article can be found here: https://knowledge.autodesk.com/community/article/190186