BILT Speaker

BILT Speaker
RevitCat - Revit Consultant
Showing posts with label project. Show all posts
Showing posts with label project. Show all posts

Sunday, 14 March 2021

Shared Parameters in Revit View Filters

Here is another Revit Gotcha for young and old: 

Family Editor Shared Parameters

If you add a new Shared Parameter in the family editor, you might expect that parameter to be available in a project in all situations.  You would be wrong!



Shared Parameters created in the family editor, and then loaded into a project have two entirely different (inconsistent) behaviours:

  • In Schedules, the shared parameters will automatically be available to add as fields
  • In View Filters, the family shared parameters will not be available to add as fields

This is quite confusing and inconsistent.  It can also catch you out, however experienced with Revit you might be - as I recently discovered when demonstrating how to create View Filters to a client

Schedules

If you create a new schedule  for the category of the recently loaded family, the Shared Parameter is automatically available in the list of available fields - as you might expect:  it is one of their mystical powers.

View Filters

Try the same trick with View Filters and you will probably get a nasty surprise


 

 Workaround

To make the shared parameters available for use in View Filters, you have to add them (again) as Project Parameters.


 
  

 

View Filter

If you go back to the View Filter definition, you will see that the Shared Parameter is now available as a field to be added.


As a BIM Manager, I would once have known about this Revit inconsistency - but I just plain forgot!  There is no way we can remember all of the inconsistencies.  And why should we have to?

Fortunately, Autodesk are slowly addressing some of these irritations - but it is such a laborious process.





Monday, 23 September 2019

Inconsistent Units Settings UI in Revit


There are several very different ways of getting to Units Settings in the Revit User Interface.  Most of them are not very intuitive - and certainly they are totally different from each other.

Project Unit Settings

There are 3 different icons on the 'Manage' ribbon, depending on your screen resolution and size:

Largest resolution or screen
 If you are operating on a laptop or low resolution, the icon automatically reduces in size, and you may or may not get a text description:
Medium resolution or screen

Smallest resolution or screen

Once you click on the Project Units icon it takes you to the units dialog box, which has a list of different kinds of units:


Once you choose a particular unit type, it gives the project-wide 'Format' settings for that type.  Since this is the project settings, the checkbox at the top is greyed out.   Some of the checkboxes are related only to imperial measurements so would always be greyed out for metric users.

This dialog box is the one common UI that appears for all methods of accessing units - but different items are greyed out in each situation that the dialog box appears.


Dimension Units

  • Select a Dimension in the project 
  • Click on Edit Type


  • Click on the Units Setting property
  • This takes you to the Units Format dialog box where you can override the project settings
Alternatively you can access this units dialog box from the Annotation ribbon:
  • Click on the Dimensions drop-down arrow
  • Select the kind of dimension you want


Schedule Units Settings

  • In the Schedule Properties, go to the 'Formatting' tab
  • Select a field (on the left)
  • Click on the 'Field Format...' button on the right


  • Once you click on this, you get the standard Units dialog box
  • Typically the 'Use default settings' checkbox is ticked 
  • You can untick it if you want to over-ride the project settings


Tag Units Settings

Refer to Revit's Most Hidden Commands (part 2) for more detail on this.  It is quite tricky to find this setting:

  • Edit the tag family
  • Select and Edit a label

  • The parameter in the label may look like it is selected (on the left), but it is probably not
  • Select the relevant parameter (on left, even though it shows on the right)

  • The 'Properties' icon (a hand) will be enabled
  • Click on it

  • Finally you get to the units settings, which is normally defaulted to 'Use project settings'
  • It is not possible to get to this unit override setting within the project environment (unlike dimensions and schedules)

Summary

Here we have at least 4 completely different ways to access Revit units settings:

Method 1 (Ribbon in the project ):



Method 2 (Dimension Type properties in the project ):

or

Method 3 (Schedule formatting properties in the project ):


Method 4 (Tag properties in the Family Editor ):




Why does something so simple have to be so inconsistent, and complicated ?


Sunday, 28 July 2019

Arrays in Revit Global Parameters

Continuing with the theme of  Global Parameters in Revit . . . . .

Global Parameters and Arrays


Global parameters do not directly support arrays – you cannot associate a parameter to an array number in a model (unlike the ability to do so in the family editor).

When you select an array number in a project, have a look at the Options Bar - there is no label for you to associate a global parameter.












In the family editor, when you select an array number - there is a label on the Options Bar for you to associate a family  parameter to the array number.

 

 

 

 

 


Workaround


To work around this Global Parameter limitation, you need to build the array into an external family:
  • The family needs to have an integer instance parameter - this can be created directly when associating the array number (or created prior).
  • The array could consist of nested families or arrayed elements - it is usually much easier to control the array when it is a nested family, but that may slow response times if there are too many levels of nesting.
  • If you need to be able to schedule, tag or select individual families in the project (from the array), then the nested family should be 'Shared'.

  • Once you have associated the array number to a controlling parameter, it is wise to use that as a check parameter, to prevent users from inputting a value of less than 2 - because this would break the array.
  • You need to then create a User Input parameter, which is the one used in the project.
  • The check parameter is then driven by the User Input array number, with a check formula in place to prevent an input less than 2

  • Load the family into project then its instance property (Array Number) can be associated to a global parameter.

Once this is set up, your nested family array should be driven by Global Parameters in the project.

If you would like Autodesk to fix this annoying limitation, please go to Revit Ideas to vote:

Enable global parameters to associate to Array Numbers




Wednesday, 23 August 2017

Scheduling Global Parameters in Revit

Revit is all about data and displaying or extracting that data.  So, you'd think that when a new Revit feature  is added, like Global Parameters, you should be able to schedule them?
Wrong!  You cannot directly schedule or tag Global Parameters in Revit.

However, I have devised a workaround (NB. this won't work on Revit 2016 R2):

Example 1 - Reporting Dimensions

In this example there are several sloping ceilings.  Each ceiling has a built-in property 'Height Offset From Level', which represents the height of the base of the ceiling slope.  This can easily be scheduled.  It is not so easy to schedule the height of the top of the ceiling slope - unless you use global parameters:

Step 1 - Reporting Dimensions

  • In a section view, add a dimension from the level to the top end of the sloping ceiling
  • Associate this to a global parameter
  • Make it a reporting parameter
 

  • Repeat this step for each sloping ceiling


Step 2 - Project Parameters

  •  Create a new instance project parameter called 'Ceiling Top Height'
    • Make it a length type
    • Apply it to the ceiling category
    • Give it a meaningful tooltip
  •  Each ceiling will now have that property, albeit blank

 

Step 3 - Associating Global parameters

The Project parameter properties of individual ceiling elements then need to be associated to the relevant global parameters (reporting dimensions):

 

  • This obviously means that one global parameter is required for each ceiling, which could become tedious for many elements - but this a workaround, after all.

Step 4 - Create the Schedule

A schedule can be created to display this information:
  • A ceiling schedule could be created, showing the built-in height parameters and the project parameter with associated global parameter




Example 2 - Area Calculations and WC Numbers

Step 1 - Global Parameters

Create your global parameters, with formulas as required.  In this example, global parameters are being used to calculate the number of toilets required for a community hall, where the statutory regulations require a certain number depending on the floor area of the hall:


  • There are two reporting parameter dimensions for room width and length.  
  • These are used to calculate a room area - this is an extra step to be taken because even though Revit gives us room areas automatically, we are not able to associate areas as reporting parameters, so we can't use the system Area property (except as a check on the calculation)
  • There is a user defined "Area per WC" - which is set as 1 WC required per every 30 square metres of the hall area.  This value can be changed later.
  • To establish the number of required WCs, a simple calculation is done:
    Hall Area / Area per WC
    This is an integer parameter so it always gives a whole number;  however, you could make the formula a bit more complicated so it always rounds up to the next integer
  • There is another check formula that sets the minimum number of WCs to be 2 - this is partly because arrays will only accept 2 as a minimum.  There is an 'array workaround' if the minimum really needs to be 1, but that is not shown here.


Step 2 - Project Parameters

The trick for being able to schedule and tag global parameters is again to use an intermediary - namely Project Parameters:
  • As many project parameters are created as you need for scheduling/tagging global parameters
  • They are defined for the categories to be scheduled - in this example it will be for both rooms and generic categories
  • 'Area Calculated' is added to the room category so that it can be scheduled and tagged
  • It must be a shared parameter for tagging;  if you want to apply it to just one category and only schedule (not tag), you might get away with it not being shared;  for multiple category schedules it needs to be a shared parameter.

  •  'WC Numbers' is an integer parameter added to both the room and generic categories - for rooms it is just for schedules/tags;  for generic categories it is being used to drive the model - number of WCs in the array

Step 3 - Associating Global parameters

The Project parameter properties of individual elements then need to be associated to the relevant global parameters:
  • The room element for the hall has its 'Area Calculated' property associated to the 'AreaCalc' global parameter
  • Its 'WC Numbers' property is associated to the 'WCNumCalc' global parameter

  • The WC cubicle component has a family property for the 'Number of WC Cubicles', which is used to control the number in the array.  This is associated to the 'WCNumCalc' global parameter - so that when the hall area changes, the global parameters recalculate the number of WCs and push that change into the cubicle array component..
  • NB. It is not possible to associate a global parameter directly to an array number in the project environment, so the array has to be built into the family - another workaround.

Step 4 - Create the Schedule

Schedules can be created in a number of ways to display this information:
  • A room schedule could be created, which shows the contents of the room


  • A better way to achieve this is to create a multi-category schedule that includes one element in the required room (Hall) and also the WC cubicles in the other rooms
  • Room properties can then be added for each element - in particular the project parameters for the hall room
  • The one element in the room 'Hall' needs to be listed in order to display the associated global parameter values of the room (Calculated Area & Required WC numbers), even if we don't want to schedule that element itself. This is because a Revit multi-category schedule cannot contain rooms as one of the categories - only the room properties of other category elements.
  • In this example, the schedule needs to be filtered to restrict it to just show generic category elements (WCs) plus the category of the element in the hall (a door in this case, but it could be anything); and then further filtered to get only the relevant ones listing

  • The fields from Rooms and Count, can be renamed to indicate required and supplied WC numbers

Conclusion

These are only two specific examples of how global parameter data can be scheduled and displayed.  Of course it is unlikely to suit your exact requirements but it should demonstrate the principles to be applied to different situations.