RevitCat

BILT

Monday, 19 June 2017

I recently did a presentation on ‘Global Parameters’ at BILT
ANZ 2017 in Adelaide.I listed the two
updates in Revit 2018 related to Global Parameters – one a bug fix, and the
other being support for radius and diameter dimensions.At the time I suggested that this was not a
particularly interesting enhancement, and that I could not think of any particular
uses for it.However, in discussions
with Frank Crisp of KTA (in Sydney), he came up with a brilliant idea for how
to take advantage of this feature – so I have tested the idea and made a
working example as follows.

Curved Curtain Walls

Everyone knows that Revit cannot do curved curtain walls –
or at least the walls can be curved but the panels are flat, so that you get
segmented curtain walls.

In some situations this can be appropriate, but if you have
enough budget for this, it may be desirable for the panels to curve too.Some years back I created a curved curtain
panel family but it was very clunky to use, and you had to manually match the
radii of the wall and the panels.Frank
and I have now worked out a method to use global parameters to keep the radii
in sync so that you don’t need to change the panel radius if the wall radius
changes.I have also improved my curtain
panel family to make it much simpler to set up and to modify, as well as putting
in some check formulas.

The Panel Family

My original curved curtain panel family had a series of
reference line arcs in plan, running between the sides of the panel – one each
for centreline, front and back of glass (and for any transoms).These were used to define the outlines of
vertical extrusions.This was quite
fiddly to set up and I have since learnt that it is much better to use sweeps
for defining such geometry – this means that it is only necessary to draw one
curved reference line to be used for the sweep path in plan.All the sketch (or profile) geometry is drawn
at the midpoint of the arc in a left or right view.This means that an additional reference plane
needs to be placed in plan at the furthest offset from the baseline or chord of
the arc – this is used to host the profile sketches and it moves relative to
the chord baseline depending on the radius of the arc and the length of the
chord.

A formula is required to calculate this offset from the
chord baseline – this dimension for the height of an arc above the chord is
called a ‘Sagitta’.Using Pythagoras’
Theorem it can be easily calculated from the chord length and the arc
radius.The radius is defined as the
hypotenuse of the triangle (long side) while half the chord length forms one of
the short sides (B).The other short
side (A) is calculated:

A = Square root of (C squared – B squared)

In Revit this formula is written as

A = SQRT(C ^ 2 – B ^ 2)

The arc height (Sagitta) is simply the Radius (C) minus the
short triangle side (A), so the overall formula is:

Sagitta = C - SQRT(C ^ 2 – B ^ 2)
where
B = Chord / 2
C = Radius

A few check formulas need to be put in as Revit does not
like to calculate square roots of minus numbers, nor to have the radius equal
or less than half the chord length.

The Radius parameter can be changed to ‘Radius desired’,
which is the input value;A new
parameter ‘Radius actual’ checks the input value for anything less than or
equal to half the chord length:

In the Project

This curtain panel family can be loaded into a project and used in a curved curtain wall. Initially the radius of the panels have to be manually set to match the radius of the wall.

If the wall radius is changed, the panel radii will be wrong

A curved wall does not automatically have a system property
for Radius, so you need to add a dimension.

This dimension can then be associated to a global parameter
but it must be a ‘reporting‘ parameter, so that all it is doing is getting the
radius information from the wall element and pushing it back into the parameter
for use elsewhere.

The curved curtain panel family can then have its radius matched to the
curtain wall.The ‘Radius desired’
property of each panel needs to be associated to the reporting parameter Radius
of the wall.

Alternatively, you can
create a new global parameter that will represent the curtain wall radius if
you need any calculations based on the reporting parameter.

Type vs instance

Depending on how you want to use the panels, the ‘Radius
desired’ property could be either instance or type.If you want to define the curved curtain
panel as the default panel for this particular curtain wall type, then it must
also be a type property.

If the curved curtain panel family Radius property is a type
property, then you would need a panel type for each particular curtain wall
otherwise it may break.As a type
property you only need to set it once regardless of how many panels you have in
the curtain wall.

If the curved curtain panel family Radius property is an
instance property, then you only need one panel type.However, you need to associate the radius to
the global parameter for each panel, which means extra work whenever the number
of panels changes.

Warning: if you delete a radius dimension with an associated global parameter, it does not ask you if you want to remove the constraint. This means you could end up with hidden constraints.

Tuesday, 13 June 2017

Global parameters allow you to introduce many new constraints and dynamic ways to manage your model. This gives us more power, but makes it harder to understand what is driving changes to the model - so Autodesk have given us a suite of tools to track where global parameters have been implemented. Amongst these tools are additional filtering capabilities.

One of the features introduced in Revit 2017 was the ability to filter elements by Global Parameter Associations (this is not available in Revit 2016 R2). There are two ways to do this:

in schedules - clearly explained in the help files, but has significant limitations

View filters - this is not well documented in the help files, but is very powerful and extremely useful

Filter Schedule by Associated Global Parameters

You can filter a schedule by parameters that have GP associations – a new ‘is associated with’ filter method is available. This should be invaluable for tracking down all those associations that are making unexpected changes to your model

Unfortunately you cannot filter a schedule associated with more than one global parameter – well, you can but it would always force a blank list in the schedule because Revit only allows the operator ‘And’ within schedules (it is not possible for one element to be associated with more than one global parameter).

Until we have an ‘Or’ operator in schedule filters, this is a singularly useless capability unless you are working with only one global parameter!

There is also an option to filter by ‘is not associated with’ – this does allow you to add multiple parameters because excluding by several associations works with the ‘And’ operator. This is somewhat more useful in that it does work, but you are less likely to want to do this.

Filter Views by Associated Global Parameters

View filters also now work with properties that have GP associations – a new ‘is associated with’ filter method is available. This allows you to visually highlight elements by different associations. This suffers from the same problem as schedules, in that filters can only have the ‘And’ operator, meaning you can only filter by one parameter at a time. However, there is a big difference in that you can add multiple filters per view; you can then make each filter work differently (on/off, or different hatching or colours) – making this very useful, and much more effective than scheduling by association. It will of course give you a visual result rather than a schedule