Monday, 2 May 2016

Global Parameters in Revit 2017

Global Parameters were introduced in Revit v2016 R2, and then improved in v2017.  The whole concept of parameters in Revit can be very confusing because there are so many different kinds of them - and they inter-relate in a complex matrix or rules and exceptions (welcome to Revit!).  I have done a detailed analysis of all those exceptions in order to understand the limitations.

Global Parameters: 

The Revit Help File states:  
"Global parameters bring the power of parametric families into the project environment.  You can create global parameters that are specific to a single project file but that are not assigned to categories. Use global parameters to drive the value of a dimension or a constraint, associate to an element instance property to drive its value, or report the value of a dimension, so the value can be used in the equations of other global parameters."
Global Parameters (GPs) can be applied in a similar way to the Family Editor:  
  • Apply to a dimension by selecting the dimension and changing its label (on the options toolbar in v2016R2 or the ribbon in v2017);  the label is not available for multi-segment dimensions in v2016R2, but can be applied to multi-segment dimensions in v2017 (NB. be very careful doing that as your whole model can move).
  • Once applied, the dimension has a small pencil symbol beside it.
  • This means that two (or more) non-adjacent dimensions can have the same parameter applied to them
  • Apply to the instance properties of an element by clicking on the tiny button that may appear to the right of a given property in the Instance Properties Palette
  • Once applied, the button shows a tiny equals sign on it

  • A Global parameter (GP) can be used in formulas for other parameters;  

  • If a GP is deleted, then any formulas using that GP would also be cleared - luckily it gives a warning.  
 

  • If a GP is deleted, where it has been assigned to elements, it also gives a warning with a number of elements to be affected - if you proceed all those associations would be lost.  In the family editor deleting a parameter would affect only that family, but with Global Parameters it would affect the whole project.  So, be careful.

Limitations

This promises to be a very powerful new feature, but it has many limitations at this stage:
  • They can only be assigned to a very few system parameters on certain system family categories (eg. To beams but not to floors) – and most likely not the ones you want.
  • For external families global parameters can only be assigned to user defined instance properties in v2016R2 (not type properties or system properties).  In v2017 GPs can be applied to type properties and a few system instance properties too.
  • You cannot assign them to array numbers

The Global Parameters dialog is accessed from the Manage tab. 
In v2016R2 it has one long list of parameters, with no way to organise or group within the list apart from sorting alphabetically – so a naming convention will be vital, otherwise related parameters will be jumbled; 
There is a so-called search capability, but it is fairly crude - it is actually a filter, not a search (see more on this later). 
 
  • You can add tooltips to Global Parameters but in v2016R2 they only show up in the dialog box, which is of limited usefulness.  In v2017, they show in-canvas in the model when you select a dimension, which is much better.  They do not show in the model when assigned directly to an element property.   Tooltips should always be used as a record of what each and every parameter is for - as you may not remember what it is for 2 weeks later (or 2 days in my case). 

v2017 has much better organisational methods, along the same lines as the family editor:
  • It allows you to group parameters.

  • You can sort parameters alphabetically
  •  You can move parameters up or down the list
 

What Else is New for Global Parameters in v2017

Improvements listed in the v2017 help files include:
  • Type Parameters can now be linked to Global Parameters (GPs) - this gives us more power to make global changes, but it is less significant than instance parameters because type parameters in themselves allow limited global changes
  • Assign global parameters to groups within the list in the GP dialog box (NB. don't misread this as I first did, and imagine that you can assign GPs to model groups in the project - it is only in the dialog box as described above)
  • Reorder GPs in the list (as described above)
  • Filter a schedule by parameters that have GP associations - this should be invaluable for tracking down all those associations that are making unexpected changes to your model!

  • Show Label in View - hopefully useful, but that 'There is no open view. . .' message is a worry on large projects, where it often cannot find a view (for warnings), so I don't know how useful it will actually be?
  • Transfer GPs between projects (Transfer Project Standards) - yes, that is great but it is all or nothing, as per usual for this feature.  So it is like applying a sledgehammer - you could transfer two hundred parameters when you only want two.   NB. If there are any materials selected for any material type global parameters, the materials will be transferred too.
  • Project Parameters

    Whatever you do, don't tell anyone about this, but hidden away in v2017 help files it states that they have enabled us to assign Global Parameters to Project Parameters - for both system families and external families.. So what! you might think?

    In fact this is huge - what it means is that you can create a project parameter (of any kind) seemingly for any category, and then a little 'parameter link' button will appear to the right of its properties when the relevant element(s) is(are) selected, and you can assign a global parameter. That means we can add them to walls, floors, etc. And of course we can make the project parameters Shared so we can properly schedule and tag them. This is a big deal because you cannot tag the actual global parameters. Hmm, there must be some catch I haven't thought of yet.

    Thank you Autodesk - I am jumping for joy about this, even if you neglected to do your own flag waving! 

  • Secret Enhancements :

  1. They have enabled a few more system instance parameters so we can assign global parameters for categories that actually might be useful to both architects and structural engineers:
    Top and Base offsets for walls, columns and structural columns.  Wow!  I will be able to change the height of a whole bunch of pre-selected walls at the click of a mouse when a floor slab changes thickness (without having to use that 'attach' command that causes so much trouble).
    Sadly they are still ignoring Floor 'Offset from Level' which would be very useful to be able to assign GPs to.

Responsibility

With great power comes great responsibility.  If this feature is not well managed or controlled, it could make your models impossible to work with as they could end up with many hidden constraints and relationships. Changing parameter values can have dramatic effects on your model – like moving gridlines, so pinning and locking will be important.  How do you manage this?  Autodesk have given us some tools for this:

  • The 'Reveal Constraints' tool will show dimensions that have had global parameters assigned to them; It shows an additional red dimension with a label, below/beside the original dimension.  NB. If the original labelled dimension has been deleted but the constraint retained, it will still show the red dimension under Reveal Constraints, which is a very good thing.
  •  Reveal Constraints will not display global parameters assigned directly to instance properties - the only indication of that is the tiny equals symbol in the instance properties dialog box.  NB. even that may not show when the selected element is part of a model group - a bug I suspect.
  • There is a ‘Show…’ button that will highlight elements or dimensions that have been constrained by GPs; once displayed on screen, you cannot navigate in a view with the GP dialog open. This does also work for elements that have GPs directly assigned to a property (unlike the Reveal Constraints tool)


  • The aforementioned ability (in v2017) to filter a schedule by parameters that have GP associations will be an invaluable tool in your kit.
  • GPs can be applied to multi-segment dimensions in v2017 - this means that if you selected a dimension string that has various different values, as soon as you apply a GP to it, all the dimension segments would become the same.  This is very powerful, but also extremely dangerous - be very careful doing that as your whole model can move if the dimensions happened to be across a bunch of gridlines for example. 
    Quite frankly, I wish that they had not enabled this in v2017 - I predict more tears before bedtime!

Power To The People

If you want to know more about how Global Parameters can be used on real (and imaginary) projects please join me at RTC NA in Scottsdale, Arizona on 14 July 2016 for my presentation "Power to the People" Session 1.4 at 3.15pm.  I will be giving live demonstrations in Revit of a number of different possible applications for Global Parameters.

2 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. Thank you for clearing up some of my many questions regarding global parameters. I have one more. Is there a way to create a parameter in a material that would be read and reported by a floor? This is done natively with the structural material parameter that may be reported in the schedule but nowhere else. Any thoughts? (Clarification: I am trying to take our expansive material library and create automatic floor schedules in our template file that update whenever a material is added or changed.) Thank you in advance! -Rich C.

    ReplyDelete