Friday, 14 April 2017

Revit Dialog Box Shortcut Keys

I was recently doing a very repetitive task on a Revit dialog box - it involved changing the order of many View Filters in the View Template dialog box (Filters tab).  This list of added filters does not sort alphabetically - the dialog box has no means to do so because the filters are applied in order, which means you don't want it to sort automatically.

In the process I decided to check if there are any keyboard shortcuts for the 'Move Up and Down' commands.  Yes, there are indeed some hidden keyboard shortcuts. This can be very useful as you can keep your finger on the key for multiple moves, unlike using the mouse, which requires a click for each move (a sure recipe for RSI):

[Edit] After further testing prompted by comments by 'infeeeee' I have realised it is simpler to use than I first thought.  I knew about the Alt key shortcuts that work on the ribbon (or Keytips as the Autodesk helpfile refers to them) - but I was not aware that they also work on some dialog boxes.  I have amended the instructions below accordingly.

Here is how it works:

View Filter tab View Template dialog box

The command icons will show the keyboard shortcut underlined if you press the Alt key (as shown above).
  • First select the filter in the list
  • Then get the focus onto the icons for up/down by pressing the Tab key, or by clicking on one of the up or down icons
  • Then use the following single key shortcuts:

D = Add

R = Remove

U = Up

O = Down

E = Edit

Esc = Cancel
  • Alternatively, you can press the Alt key + a shortcut key, which negates the need to get the focus onto the command icons in the first place (much easier)

Line Styles Dialog Box

N = New (Subcategory)

D = Delete

R = Rename

I = Invert

Fill Patterns

Although the keyboard shortcuts are programmed, the Tab key does not put the focus onto the icons, so you cannot use the keyboard shortcuts that way. However, the Alt key works like a charm.

N = New

E = Edit

D = Delete

U = Duplicate

R = Drafting

M = Model

Even the Modify and New Pattern dialogs have their own key tips:

Line Patterns 

Line patterns work the same way as the Fill pattern dialog - you have to use the Alt key combination as you can't get the focus to move using the tab key (except at the end of the list)

N = New

E = Edit

D = Delete

R = Rename

Family Editor ‘Family Types’ dialog box.

Some keys are programmed (weirdly) but it is hard to get the focus onto the icons. It is best not to use this because it is too easy to put the focus back into the parameter values and you get into all kinds of trouble changing values and formulas. However, it should be ok to use this with the Alt Key combination.

G = Manage Lookup tables

C = Sort reverse alphabetically

D = New parameter

M = edit

N = New type

R = Rename type

S = Sort alphabetically

U = Up

W = Down

Global Parameter Dialog Box

Yes, the keys are programmed here too - but it is way too dangerous to use, so I won't even list them.  Just as an example, D = Delete (now that is scary because D means new parameter, or Add on other dialog boxes).  In addition to that, it is tricky to get the focus onto the command icons, and to keep it there, so the chances of wiping out a value or a formula are quite high.

[Thanks to 'infeeeee' for the comments that helped me to improve this blog post]

Tuesday, 4 April 2017

Transferring Global Parameters Between Revit Projects

In preparation for my upcoming presentation 'Power to the People - Global Parameters' at BILT ANZ 2017 in Adelaide (2.3 at 1.30pm Friday 26 May), I have done some in-depth analysis of how Global Parameters work. I don't want to spend too much time during the presentation on the nuts and bolts as there is much more exciting stuff to look at with what Global Parameters can achieve - so I plan to publish some of that research here . . . .

. . . . .Starting with how to copy Global Parameters between Revit projects:

There are two ways to achieve this, with varying results.

Transfer Project Standards

From v2017 it is possible to copy Global Parameters between projects  using the 'Transfer Project Standards' function.   However, it is 'all or nothing', as per usual for this feature - it copies every single Global Parameter in one project to the other one, along with all the values and formulas.  So it is like applying a sledgehammer - you could transfer two hundred parameters when you only want two. 

  • It does not copy any associations between modelled elements and Global Parameters - these would have to be re-associated to elements in the new project.
  • NB. If there are any materials selected for any material type global parameters, the materials will be transferred too.
  • If Global Parameters already exist in the project (with the same names), Revit will ask if you want to overwrite them - it will overwrite both values and formulas.
    Be careful not to lose any values or formulas if the names happen to be the same by coincidence.

Copy & Paste

Copy & Paste of elements between projects will also transfer any associated Global Parameters. This will in turn bring with it any formulas included in those Global Parameters, and any further GPs referred to within those formulas. This does not guarantee that the whole GP relationship will necessarily work properly once copied because there could be GPs that rely on such things as reporting parameters driven by dimensions that were not copied.

  • The benefit of this method is that it only brings with it the Global Parameters associated with the elements that you want to copy anyway.
  • It also maintains any associations between selected elements and Global Parameters.
If identically named Global Parameters already exist in the project:
  • It does not copy/overwrite existing Global Parameters
  • If the Global Parameter values and formulas are the same, it maintains them, and maintains the element associations to the Global Parameters.
  • If the Global Parameter values and formulas are different it will try to maintain associations, but using the new values - if this causes significant changes it will warn you that it needs to break the associations


Use whichever method best suits your purpose:
  • If you want to overwrite Global Parameters, use 'Transfer Project Standards - but it copies all your Global Parameters.  You may need to transfer them to an intermediate blank project, then delete the ones you don't need, keeping only the ones to transfer - then transfer those into the final destination project.
  • If you want to maintain associations with elements, or only want to copy specific Global Parameters - use Copy and Paste.

Wednesday, 15 March 2017

Nested Revit Repeaters - Gare do Oriente pt 5

How to use Revit adaptive components and repeaters to create a model of Santiago Calatrava's roof structure of the Gare do Oriente in Lisbon:
Part 1 - The rig for one structural column
Part 2 - Placing roof panels onto the rig
Part 3 - Creating the structural elements 
Part 4 - Adding struts to the structure

Part 5 - Assemble Structure on Platforms

YouTube Link

Step by Step checklist:

Add Column Base

  • Open your column structure adaptive family created in steps 1 - 4
  • Set the work plane as the horizontal reference plane of adaptive point 1
  • Place a reference polygon centred on the adaptive point, first making it 4 sided
  • It will give four temporary dimensions, one for each side, from the centreline references
  • Make these into real dimensions
  • Select all four dimensions and associate them to a parameter called 'Half base'
  • Optional:  create a new parameter called Base Width
  • Optional:  add a formula to 'Half base' = Base Width /2
  • Select the four reference lines of the polygon
  • Create form
  • Drag its top surface up, and it should enable a temporary dimension for the height
  • Turn that into a dimension
  • Associate it to a parameter 'Base Height'
  • The family is now ready to use in a project model


Create an Array of Columns

  • Load the family into a project
  • Create railway platforms (floors or extrusions of some kind) 
  • Create an in-place Mass family
  • Draw a rectangle of reference lines, with the two long sides centred on the outside platforms
  • The length of the rectangle should be a multiple of the distance between each platform
  • Select the four reference lines (rectangle)
  • Create a form
  • Drag the top surface of the form up or down so that it is flush with the top of the platforms
  • Select the top surface of the form
  • Click on the 'Divide surface' icon
  • Depending on the number of platforms/tracks, and the length of the rectangle, adjust the number of U and V grid divisions to achieve a square pattern of grids, one per platform - remembering that the number matches the grid lines not the divisions
  • Change the surface representation of the divided path; make the Nodes visible
  • Place one of the structural adaptive components onto any one of the nodes
  • Select the component and click on the Repeater icon
  • It should create an array of columns, one on each node
  • Select the divided surface and hide its nodes again, so that they will not be visible in the project in any views.  NB. if any divided path nodes are visible in the structure, you need to hide those back in the family and reload them (which can be painfully slow, so its better to do so before creating the repeater) 
  • Finish the Mass family
  • In the project Browser, select the column family and change its 'Inside Radius' property to match half the spacing between nodes (platforms) - this should ensure that the overall size of the roof matches the divided surface grid size
  • Adjust any of its other properties as desired - eg. Base Height
  • The individual nested families will most likely be shared families, unless you changed that when creating them - so you should be able to adjust other parameters by selecting the nested families in the project browser - eg. Number of struts. NB. it can be slow to make those property changes depending on your computer, but remember that Revit is doing a lot of calculating for each change, and it is still much quicker than creating such a structure by conventional Revit modeling tools.
  • You should now have a basic parametric model of the railway station roof of Santiago Calatrava's Gare do Oriente in Lisbon

Tuesday, 7 March 2017

Revit Nested Repeaters - Gare do Oriente part 4

How to use Revit adaptive components and repeaters to create a model of Santiago Calatrava's roof structure of the Gare do Oriente in Lisbon:
Part 1 - The rig for one structural column
Part 2 - Placing roof panels onto the rig
Part 3 - Creating the structural elements 

Part 4 - Struts

Now it is time to really challenge the nesting capabilities of  'Repeaters' in Revit by placing struts on the structure.
Gare do Oriente structural element with struts added

Here is a YouTube link to see it as a tutorial


Step by Step Checklist

In case you prefer reading it step by step:
  • Open the 'one-eighth' adaptive component created in the previous blog post
  • Select the structural elements and temporarily hide them, to leave the rig visible
  • Place two hosted points each on the arc and two of the reference lines
  • Link the points with reference lines - in the case of the arc, snap to the intersection point along the middle of the arc (NB. make sure 3D snapping is on)
  • The purpose of placing new shorter reference lines over the top of the existing ones is to create a rig for the struts to snap to the ends of those shorter lines while still being offset from the adaptive points
  • Select the 3 points near the start of each line/arc - remembering the direction you placed the lines/arc
  • Associate the Normalised Curve Parameter to a parameter called 'Segment proportion'

  • Select the other 3 points near the end of each line/arc
  • Change their Measure From properties to 'End'
  • Associate their Normalised Curve Parameter to 'Segment proportion'

  • Select the reference arc, click on the 'Divide Path' icon
  • Repeat this for each of the two reference lines
  • Select the 3 new Divided Paths
  • Associate their number of divisions with a new parameter 'Number of Struts'
  • Add a formula to the Segment proportion parameter:
  • Segment proportion = 1 / (Number Struts + 1)
  • This will make the distance each hosted point is from the adaptive points to be equal to the segments on the divided path
  • Flex the Number of Struts parameter to make sure the divisions change and the end points move

Create the Struts

  • Open the previously created 2 point adaptive tube family
  • Save it as a 3 point strut family
  • Add another point in free space
  • Make it adaptive (point 3)
  • Place a reference line between points 2 and 3
  • Place 2 hosted points on the line
  • Make their Show Reference properties to be Always visible
  • Change their Measurement Type properties to 'Segment Length'
  • Change the Measure From property of the second point to 'End'
  • Associate their Segment Lengths to the 'Offset from End' parameter
  • Set the work plane to be the reference plane of the first point
  • Place a reference circle on the point
  • Give it a radius dimension and associate it to the Radius parameter
  • Repeat for the second point - add a reference circle
  • Select both circles and the host reference line
  • Create Form - it should create a second tube
  • Flex the parameters and the adaptive point locations
  • Load the V-shaped strut into the other adaptive family

Place the Struts

  • Place a component, snapping to the divided path nodes on each path - it is important to select the same node number on each one
  • It is better to avoid the end nodes so that you don't accidentally snap to a host point - choose nodes one in from the end
  • Select the strut
  • Click on the Repeater icon
  • If the divided path host references were all created in the same direction, it should create a regular pattern of struts
  • Flex the number of struts parameter and the adaptive point locations
  • It should overwrite the family already placed on the rig (without struts), and display all the struts
  • Try flexing the dimensions and the number of struts

The last stage is to add a base and place the columns on the station platforms . . . .TBA

Saturday, 25 February 2017

Gare do Oriente - Revit Nested Repeaters - part 3

In previous posts I described how to use Revit adaptive components and repeaters to start creating a model of Santiago Calatrava's roof structure of the Gare do Oriente in Lisbon:
Part 1 - The rig for one structural column
Part 2 - Placing roof panels onto the rig

This time we will look at creating the structural elements to put on the rig.

Here is a youtube tutorial on creating the structural elements as an adaptive component, and placing the adaptive components to become a 'Repeater'


Here is a quick checklist of steps required:
  • Start new adaptive family
  • Place a point at the origin, plus two more points
  • Make the points adaptive
  • Join all three points with reference lines, ensuring that 3D snapping is ON
Add an arc between points 1 and 3;  the arc must be kept planar with the 3 points, so it needs to be hosted to a rig (or alternatively a plane - not shown here)
  • Place a hosted point midway along the line between points 1 and 3
  • Place a reference line from that hosted point to adaptive point 2
  • Place another hosted point on that new line
  • Place a reference arc by Start-End-Radius, snapping to adaptive points 1, 3 and then to the latest hosted point
Create a curved swept blend along the arc:
  • Place two more hosted points close to each end of the arc
  • Create a new profile family from a generic adaptive template (not a traditional profile family template)
  • It does not require an adaptive point
  • Draw a 2D profile closed shape on the level work plane - in this example a T-shape
  • Dimension it and make it parametric
  • Save and load into the first adaptive family
  • Place a profile component onto each of the hosted points on the arc
  • NB. The reason for hosting the profiles onto points that are themselves hosted on the arc is that it gives much better control:  The points have rotation parameters as well as parameters to control their distance along the arc - required to vary depending on the structural connections. Hosting the profiles directly on the arc would not give those controls.
  • Duplicate the type of the profile component closest to adaptive point 1
  • Make its dimensions larger
  • Select both profiles plus the reference arc 
  • Create form
  • It will generate a swept blend that tapers to a smaller size towards point 3 
  • NB. For more detail on this procedure, refer to my post on Adaptive swept blends
Create a simple extrusion family
  • Create a new family from a generic adaptive template
  • Place two points (one at the origin)
  • Make them adaptive
  • Place a reference line between the points 
  • Host two points close to each end
  • Associate their 'Segment or Chord Length' properties to parameters for offsets from ends
  • Make the reference planes of the points always visible
  • Set the Work Plane as the reference plane of one hosted point
  • Draw a profile for the extrusion - I just made it a simple circle
  • Give it dimensions and associate to parameters
  • Repeat the same profile on the other hosted point
  • Select both profiles and the reference line
  • Create Form
  • Save the family - I like to use a code to indicate it is adaptive and how many placement points
    eg:  AC 2pt Tube
  • load it into the first adaptive family
  • Place one of the new extrusion components between adaptive points 2 and 3
  • Associate its properties to parameters in the parent family as desired
  • Flex the adaptive points to check it is all working

 This structure now requires an additional placement point in a different plane to the rest
  • Add another point close to point 3
  • Make it adaptive (4)
  • Move it down in the Z direction
  • Link points 2 and 4 with a reference line (optional)
  • Link points 3 and 4 with a reference line (optional)
  • Place one of the tubular 2 point adaptive components between points 2 and 4 
  • Place another between points 3 and 4 
  • The structure family is now ready to use
  • Save it and load it into the rig family created in part 1 - The rig for one structural column

Assembling the structure on the Rig

  • On the rig, add a new hosted point onto the vertical reference line - this represents the springing point of the structure where it starts to curve out
  • Below this will be a rectangular extrusion, to be added later
  • This point will host the base of the structure adaptive components
  • Change its Measurement Type property to segment or chord length
  • Associate its segment/chord length to a parameter for Height of springing point
  • If you have the roof panels already in place on the rig (Step 2), it will probably be easier if you temporarily hide them before starting, to make snapping easier.
  • Place one of the support adaptive components, making sure to snap the 4 placement points onto the rig in the right order:
    1. Springing point
    2. Central valley hosted point on vertical line
    3. Divided path point on inner circle (orthogonally, along X axis from origin)
    4. Divided path point on outer circle, one division around anti-clockwise
Array a pattern around the circle using the Revit Repeater function:
  • If you select just the one structural element and repeat it, you get a straightforward radial pattern - this is not what we want (so, undo it)
  • We need to teach Revit how the array pattern should go - so you have to place a second structural component:
  •  Place another adaptive component 90 degrees around the circle in the same sequence
  • The first two placement points go onto hosted points that are already occupied by the first structural component - so it is vital that you snap to the host points, and not to end points or adaptive points on the component.
  • Watch the prompt in the bottom left corner of the screen before each point placement - the first two should be to Point of Reference points
  •  The second two should be onto Point of Divided path
  • Use this technique for every subsequent placement of adaptive points - it gets progressively more tricky as you go
  • Select the two adaptive structural components
  • Click on the Repeater icon
  • You should get the desired pattern if all adaptive points were hosted correctly.  
  • If not you may be able to rehost the points (if you can guess which one is wrong!) - or just delete the adaptive component and place it again
  • The next step is to place two more structural components in the reverse direction (clockwise)
  • You could try placing them to the correct hosts, but it is really difficult with all those elements in the way - so it is easier to temporarily hide the repeater first
  • You may find that when you hide the repeater, the nested tubular components around the top do not hide.  In which case, you need to select one, then right-click to select all instances and hide those too
  • Once placed, the two new structural components will fit in the gaps between the first repeater element
  • Some of the structural members will be in the same place as the original ones, so you may get a warning message about identical instances.  
  • If this is an issue (for scheduling etc), then you will need to go back into the adaptive structural component and give the common elements a visibility instance parameter - back in the rig family, you can then switch off the duplicate structural members on the two newly placed components.
  • Select the two new components and array them using the Repeat function
  • Now the basic structure should be complete

  • Try flexing the parameters for the rig dimensions to check that the structure moves with it.
  • If you have the roof panels already placed, make them visible again to check that it aligns correctly

Click below to proceed onwards:
Step 4  Adding Struts to the structure
Part 5 - Assembling the Array of Structural Columns