BILT Speaker

BILT Speaker
RevitCat - Revit Consultant
Showing posts with label editor. Show all posts
Showing posts with label editor. 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.





Saturday, 20 February 2021

Cut with Voids when Loaded in Revit

When this new feature appeared in Revit about 10 years ago (v2012?), it was always a bit mysterious - it had many confusing restrictions about how and when you could use it

So, what is this family property that shows up in the Family Editor in Revit?

Autodesk Help in v2021:

"Cut with Voids When Loaded: When selected, voids created in the family will cut through solids. The following categories can be cut by voids: ceilings, floors, generic models, roofs, structural columns, structural foundations, structural framing, and walls."

That's it - all the help you will get from Autodesk on this one!  It hardly explains much about how to use it.  If you dig deep you might find more information - but there is no link to it.  

It is inaccurate in that it says "voids . . . will cut through solids".  It should say "may cut. . . "
It is also not up to date with its category list.

In Revit the tool-tip is pretty much the same, although it does at least have a diagram that shows why you might want to use it:

This is a classic example of inconsistency in help and tooltips.  I remember during beta testing that we asked for the ability to cut holes in worktops using this new feature - worktops are usually in the "Casework" category, which was not included in the list of cuttable categories.  Luckily it was added as a further enhancement a year or two later - but Casework does not appear in any lists from Autodesk, even though it was used in this illustration.

[Edit] If you dig deeper in the Autodesk Help files under 'Cut Geometry' , it does have an updated list of categories that can be cut by this method:

 "You can cut objects in a project when a family with unattached voids is loaded.

Objects that can be cut include: Walls, Floors, Roofs, Ceilings, and Structural Framing, Structural Columns, Structural Foundations, Casework, Furniture, Specialty Equipment, and Generic Models."

I recently had a requirement to use this "new" feature in a Revit family - but I could not get it to work.  So I decided to revisit exactly how to make it work:

How does it work?

  • A void form has to be created in a Revit family

  • Tick the "Cut with Voids When Loaded" checkbox in the family parameters
  • The category of the family is not relevant to this feature

  • Load the family into a project
  • Place the family in the project in a location where the void intersects with an element in the model


 

  • The element will not be automatically cut
  • Use the "Cut Geometry" command

  • Select the element to be cut, then the family with the void in it
 
  • The element may or may not be cut, depending on the following rules:

Rules and Exceptions

  • The element to be cut must be of one of the following categories:
    • Casework (not listed in the help file or tooltip),
    • Ceilings, 
    • Floors, 
    • Furniture (not listed in the help file or tooltip),
    • Generic models, 
    • Roofs,
    • Specialty Equipment (not listed in the help file or tooltip),
    • Structural columns, 
    • Structural foundations, 
    • Structural framing,
    • Walls
  • The void in the family must not be cutting anything in the family - this is the rule that caught me out recently.  To get around it I had to create two voids:
    • The first one to cut elements in the family
    • The second one to cut elements in the project 
      • [Edit]There are two ways to prevent the void from cutting elements in the family:
      • 1. You have to create the void in a location where it does not intersect any geometry,
        • then move it to the correct location - it will not cut any intersecting geometry;
      • 2.  Or create a solid where you want it, and change it to a void - it won't cut unless you tell it to [Thanks to Simon Weel for reminding me of this method]
 

  • [Edit] I have had problems with saving families that only contain a void element that is not cutting anything - but I think that only happens for in-place families.
  • Cutting only happens in a project
  • This capability does not work in the family editor - when one (cutting) family is nested into another family.  This is a very frustrating restriction - it means that you have to build additional voids into the parent family, which is a pain if you have complex angled geometry.

Once you understand those rules and limitations, you can use this capability to get families to selectively cut elements in a project.  It does have some advantages over 'Face-Based' families that also allow you to cut into a host element:

  • You can decide whether you want individual elements to be cut or not
  • It does not need to be hosted  - it can be placed directly in the model with its own parametric controls (height etc)
  • It can be moved away from or to an element to be cut (it remembers the cutting status if moved away and back)
  • This can be added to existing families (converting to face-based requires recreating families)
  • The void can be anywhere in the family - it does not have to be related to a host face in the family (as face-based families do)


I hope this saves time for anyone who cannot get this feature to work properly.  

In this example I have carefully made the void slightly bigger than the basin for clarity in the illustrations - and to make sure that water runs down the side of the basin into the casework and rots the timber.  I suggest that you make it a closer fit or use lots of silicon to seal it.


Wednesday, 20 July 2016

More on Parameter Grouping in Revit

Following my earlier post on the sort order of parameter grouping, here is another tip:

Weird sort order of parameter group headings


If you have a lot of calculations going on in a family or in Global Parameters, there is an easy way to make your own titles to the parameter grouping:
Just create a text parameter, that has a name beginning with an underscore - that puts it at the top of  the group;  I have made these ones all Caps to make it really stand out.
You could even add a formula that is just text giving it a description, but I prefer to use a tooltip.




Wednesday, 22 June 2016

Revit 2017 Global Parameter Grouping Titles

Working with global parameters in v2017 has quite a number of advantages over doing so in Revit 2016 R2.  One of those is the ability to assign global parameters to groupings so that they are segregated in the Global Parameter dialog box under each grouping title - much the same as we can do with parameters in the family editor.
In the family editor this is really important because when you load the family into a project, those groupings are visible in the properties dialog - and the parameters more or less stay where you put them * 
(* there is a bug such that sometimes it does not move them to the desired grouping in a project even if you change them in the family editor and reload).

Global Parameter Grouping

With Global Parameters, you only ever see the grouping when you open the dialog box;  when associating properties to Global Parameters you just see an alphabetic list of the appropriate parameter type (Length, text, number etc).  When you have a lot of Global Parameters in a project it is handy to use the grouping to organise your parameters into related items - you may have numerous groups of different parameters doing completely unrelated tasks, and they all get jumbled up, making it hard to track a particular operation or sequence of formulas.

I have taken to using these groupings for purposes unrelated to the actual titles, in much the same way that people often use 'Other' to hide calculations in the family editor because it is always last on the properties dialog box.  You cannot rename the groupings - they are hard-coded into Revit;  nor can you change the order of them.  And what a strange order they are in!

After a while I got fed up with assigning global parameters to a particular grouping and finding them jump way up or down the list in a totally unpredictable way.  Anyone remember the 'jumping lechrechaun' ribbon when it first came out in v2010?  Well it isn't quite that bad, but is annoying.  So I decided to document the order of the grouping titles, so I would have some chance of anticipating the location when assigned to particular groups - and here it is:

And how logical is that? 
  • It isn't alphabetical
  • It isn't discipline related
  • It isn't logical
But what I do know is that Constraints and Construction remain at the top, as the always have;  'Other' remains firmly at the end, which will be comforting to many people.  I find it disturbing that 'Dimensions' is languishing down in 20th spot; and as for 'Rebar Set', how did that muscle its way into third spot?
Visibility is way down near the end, as befits its alphabetic status - much the same as I was always close to last for anything at school, with a 'W' surname.   But Visibility is actually a useful grouping, that I'd like to make more use of (in the family editor too), but since it is at the end, users are unlikely to ever find it.

Oh well, at least I now have this list to help me predict where the parameters will jump to.  I hope it helps other Revit users out there too.


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.