Sunday, 9 December 2012

Revit v2013 Stair Shape Handles

Back in May 2012, I did a presentation at RTC on the new Revit 2013 stair tools. So far users have been giving a generally positive response to the new tools, but when they start delving into the detail of using them there are some tricky things going on. Here is an extract from my RTC presentation handout on the topic of the "Shape Handles" that come with the new tools:


Stair Component Shape Handles

                    
There are four different types of shape handles that you get on stairs, and they each behave differently to each other, and their methodology also depends on the situation and whether other components are joined to the selected stair component. You can only see these shape handles when you select a stair component.

1.   Arrow handles at base of run
  
This arrow handle will move the location of the first riser in the run. If it is a run linked to another run by a landing, it will add/remove risers to the base of a run; it will also remove/add the same number of risers from the top of the top run of the series of linked components in a stair. Hence the overall number of risers will be maintained using this method.
It will move the location of the first riser in the run according to the following rules:
    • For unlinked single run stairs it will move the riser by the exact distance the arrow is dragged;
    • For stair runs that are linked by landings to other runs, it will move the riser in plan in increments of the tread width (closest to where you drop the arrow); if you drag it less than half a tread width, it will not change anything;
    • Spiral stairs follow the same rules as straight runs;
    • Winder stairs follow the same rules, but usually you will only have one run (not linked) so it will try to move to exactly where the arrow is dragged to (not tread increments); however, if your winder stair is single-point, you will almost certainly get an error message if you try to drag the arrow handles because it cannot maintain the number of parallel treads that you have set on each leg of the winder.
    • Refer to Winder Stairs for how to get around this issue.

      2.   Round Dot handles at base of run
       
      This dot has two functions:
      a). It will allow you to swing the run around to a different angle, rotating around the other end of the run. Be very careful with this, for two reasons:
      • It moves off its original axis far too easily – it only stays locked to the axis when the cursor stays within about one degree;
      • Once it goes off axis, it is difficult to move it back – in v2013 it will not automatically snap to axis, even if it looks close. The solution is to put in a reference plane and snap to it, or use the Align tool.
      b). Dragging the round dot parallel to the run direction will add/remove risers to the base of a run; it will not remove/add any risers from the top of the run. Use this handle with extreme caution because it will also change the “Relative Base Height” of the run, meaning that the base of the stair run can be accidentally raised above the overall stair base – it may not become obvious until much later .
      • It will also change the riser number that you see above the first riser when in edit mode (normally "1"). You cannot change this number directly, even though it displays in blue when the run is selected.
      • Once you have raised the base of the stairs, there are only two ways to change it back (apart from Undo) – these will effectively “Undo” the change: You can drag the dot shape handle back to where it was originally (the number will return to 1); or you can change the Relative Base Height back to zero – this will move the riser to its original position in plan and reset the riser number to 1. You cannot move the run down vertically in a section view to correct the base height.
      • The only situation where you might legitimately use this handle to remove risers from the base of a stair run would be if the selected run is no longer to be the lowest one – for example when you want to add another run (and landing) below it.

      3.   Arrow handles at side of stair run
             
      These handles can be used to change the width of the selected run (and probably a linked landing component along with it).
      NB the side shape handles will always drag only that side of the run, even if the location line is set to “Center”, so the other side is never affected – this is not consistent with the way the Run Width instance property behaves.
      4.   Arrow handles at top of run  
                
      This arrow will add/remove risers to the top of a run; it will also remove/add the same number of risers from the base of the run (if not linked) or base of the lowest run of series of linked components in a stair. Hence the overall number of risers will be maintained using this method. Be aware that if you use this shape handle the plan location of the first riser of your stair will move in plan – if you don’t want that result, use another method of modifying the stair.

      5.   Round Dot handles at top of run
           
      This dot has two functions:
      a). It will allow you to swing the run around to a different angle, rotating around the other end of the run. Be very careful with this, for the same reasons as the dot handle at the base of the run (snapping and locking to orthogonal).

      b). This dot will add/remove risers to the top of a run; it will not remove/add any risers from the base of the run or stair. It will also change the riser number that you see above the last riser when in edit mode (eg. "23") – if you go above the required number of risers (set in stair instance properties), it will show that number plus the extras (eg. “23 + 1”). This method is usually quite safe to use, as it is easy to adjust later.

      6.   Arrow shape handles on Landing Components

      When you select a landing it has several shape handle arrows. This was changed in v2014 with the addition of handles where the run and landing meet.Refer to Landings for more information
      • Landing side arrows. You can use a side arrow shape handle to make a landing width greater than that set by adjacent runs, but it will not let you make it less
       
      • Landing Depth. 
        For a dogleg landing the shape handle on the outside face can be used to make the landing depth greater that the adjacent run widths.  In v2013 it cannot be made less than the narrowest adjacent run.  In v2014 it allows any landing depth - so you will need to use reference planes to make it accurate


      • Stairwell Shape Handle Arrows. 
        If the two adjacent runs align, there will only be one stairwell handle - this can be used to drag the stairwell to cut into the landing;  in v2013 the landing depth will be maintained so the outside edge will move out;  in v2014 the landing depth will change (outside of landing will not move, so be careful that your landing depth is adequate).
        Once you have created a staggered landing (runs do not align) or a stairwell cutout in the landing, you will get one or two more shape handles on the sides of the landing stairwell.  These can be used to make that section of the landing wider than the adjacent run (but never smaller), although I can't imagine anyone wanting to do this

      7.   Circle handle in the middle of a curved stair run

         
      This circle will adjust the radius of the arc defining the centreline of the stair run. It does not change position with the location line – it is always the centreline of the stair. This is the only way to change the radius of a curved stair in v2013. This will currently (in v2013 & 2014) not snap to any increments or elements, which renders it effectively useless – hence you cannot accurately change a curved stair radius after placing it!!! In v2014 the temporary dimension has been activated so that you can now accurately change the stair radius by that method only. Refer to Curved Stairs for more information

      8.  Square shape handle on winder stairs   
                                                   
      This square handle will adjust the location of the selected leg of a winder stair. If your winder stair is single-point, you will almost certainly get an error message if you try to drag the square handle – this is because it cannot maintain the number of parallel treads that you have set on each leg of the winder, so you may need to set those values back to one before dragging the shape handle. The placement of these handles does depend on the location line of the stair (left, center, right). Refer to Winder Stairs for more information

      Sketch Components

      • Stair components created by the sketch method will not have shape handles.
      • Once you convert a stair component to a sketch, you will lose the ability to adjust the component using shape handles.
      • No shape handles will appear after selecting a sketch component

      In summary:

      Some shape handles are easy to use, with logical results; but not others - you may get unexpected results, or it may be very hard to control the end location. It all depends on the situation. Sometimes you can’t use shape handles at all, and have to use the move command instead. This is the first iteration of these shape handles with the new stair tools, and hopefully they will improve in usability with future releases.

      Sunday, 18 November 2012

      Revit Multiple Host Repeater Patterns



      Two Point Repeaters on Divided Surfaces and Divided Paths in Revit

      Last time we looked at two point adaptive components hosted on a single divided surface, and turning them into "Repeaters" in Revit 2013.  The different patterns that can be achieved in a Repeater are often surprising, and usually difficult to predict until you understand the rules that they follow.  The images from sample repeaters shown here help to figure out those rules, although one example in the previous post defied the logic that I had figured out.   It starts getting even more interesting with two point adaptive components when they are hosted on nodes of two separate divided paths and surfaces.
      In the images below, the original hosted component is shown on the left, and the resultant repeater shown on the right:

      Single Divided Surface and Divided Path

      A two point adaptive component hosted on nodes of a separate divided path and surface will repeat in a single direction, quite unlike a single component on a single surface, which repeats in both directions.  It is not clear how Revit decides which direction to repeat on the surface – in this example it goes vertically:


      Reversing the direction of the adaptive component makes no difference to the pattern, it just changes the adaptive component itself (if it is not symmetrical between points 1 and 2).


      Rehosting the adaptive point on the surface also makes no difference to the orientation of the pattern, it just changes the location of the vertical pattern, and in this example it stretches the adaptive component more:

      So, what if we want the pattern on the surface to be horizontal?  Maybe rotating the grid by 90 degrees on the surface will do the trick (by changing the instance property “All Grid Rotation” of the surface)?  Well, not exactly because although it does make it horizontal, it goes in the wrong direction – reverse to the divided path on the spline:

      Rehosting the point of the adaptive component on the surface makes no difference to the direction of the repeat wherever it is placed – it still crosses over itself, so it obviously is not affected by the relative position of the hosted nodes (unlike when it is on a single surface):
        
      We’ll try doing the opposite of what we expect to work, and rotate the surface grid by negative 90 (or 270 degrees) – Bingo, it works.  Ok, this means it is using mathematical rotation (anti-clockwise), rather than compass rotation (clockwise), which is logical, but my brain learnt about compass rotation first, and never naturally thinks the other way despite years of working with computers :

      There is another way to control the direction of the pattern, but it gives a slightly different result.  By placing two adaptive components on adjacent nodes on the surface and path, it tells Revit exactly what you want – however it actually creates two interlocking repeaters rather than one.  This is a different rule to the situation when a repeater is created by two adjacent single point adaptive components (only one repeater is generated):

      Using this method allows you to generate a diagonal pattern on the surface:

      It also allows you to precisely control the spacing of components in the pattern:  
        
      Note that it only creates as many repeats as it can using the lesser number of available nodes it finds in either direction, depending on the spacing of the two components – in the first example below it is dictated by the surface, and the second example by the spline divided path:


      When two adjacent components share one node it gives quite a different result, more like a radial pattern.  It is actually using the same logic – just using a spacing of zero in this example:

      You can place additional adaptive components (you must select all when creating the repeater).  The resulting repeater patterns are a little confusing – in this example it creates three interlocking repeaters from three original hosted components; the adaptive points are on adjacent nodes, but the resulting patterns go every second node in the vertical direction, and every third node in the horizontal:

      When two of the components share a node, the resultant spacing is changed – it looks like the repeaters are sharing nodes, but in fact they are not.  It seems like each repeater takes the total number of adjacent nodes used for hosting in each direction, and uses that number plus one for its own spacing.  In this example the total number of occupied nodes in each direction is two, so each repeater has a spacing of three nodes in both directions:

      It is also possible to use components with more than two adaptive points, and to host on more varied combinations of divided surfaces, paths and points.  Next time . . . .

      Saturday, 10 November 2012

      Revit Multiple Point Repeaters



      Multiple Point Repeaters on divided surfaces in Revit

      In Revit 2013 it became possible to host adaptive component "Repeaters" onto divided surfaces, and paths.  The adaptive components can have one or more adaptive points - last time we looked at single point components.  It starts getting more interesting with two point adaptive components - they can be hosted on nodes on a single divided path or surface.  They can also be hosted on nodes on two separate divided paths or surfaces – in this situation their behaviour becomes more difficult to predict as the logic is more complex.

      Following on from the last post on single point adapters, here we will look just at two point components on a single divided surface:

      Single Surface

      A two point adaptive component hosted on adjacent nodes on a surface will initially behave much the same as a single point component - in the images below, the original hosted component is shown on the left, and the resultant repeater shown on the right.


      The exception to this being that it will not place repeats where it cannot find equivalent locations for both nodes – so it may omit half a row/column.  In this example the repeater is stretched across two non-adjacent nodes, so that when it gets to the last column, it can only place the first adaptive point on a node, but the second one would be off the surface – so it omits them:

      We can also see what happens when two components are placed on a single surface and then both selected to turn into a repeater pattern - the results are similar to the single point adaptive component patterns - you get a linear pattern.
       


      If you want to alternate the direction of patterns by row, it will not work if you just place two similar components adjacent to each other in the reverse direction – it will just create a repeater in exactly the same place as the originals – not across the whole surface.  We will try to figure out why later.

      To achieve the full pattern you need to place two pairs of alternating components in a square pattern.  It will actually create four separate repeaters but it looks correct (one repeater highlighted to show it is not a single pattern, but one of four interlocking patterns):

       If you try a different approach of placing just two alternated components  staggered on the surface, you get some surprising results:
      This seems pretty weird -  what it appears to be doing is only repeating the second of the two components (top right).  It repeats it in the same distance and increment as the distance between the end of the first and end of the second component (point 2, narrow end) - ie. one grid module up the screen;  but at the same time it takes the distance between the start of the first and start of the second component (point 1, large end), and stretches the component, which is one grid up and 4 to the right.  It would put another component above, but that would be two up and 8 to the right - in which case it has run out of nodes on the surface so it gives up.  It is easier to see this pattern in the next example where it has room to fit more in the pattern:


      If we try putting alternating components in line before repeating, the results are rather weird again - but at least we can understand the logic, that it is repeating only the second component but stretching its start and end points by the same proportion as the distances between the start and ends of the originals.
       
       It is a little clearer when the repeated component is smaller so that they don't overlap:



      The next one has got me stumped - I just don't get it.  I guess it is following the same logic but its too weird that it flips the direction as well!

      The good news is that once you begin to understand how these repeater patterns work, you can make some crazy diminishing patterns really easily.  This one didn't require any formulas (aside from creating the original adaptive component) - it just needs careful placement of the components before repeating them.  It would also be easier to understand the patterns with a larger surface where it does not run out of nodes so quickly:

      Next time we might look at 3 or more point adaptive components;  or hosting them on multiple paths/surfaces . . . . Two-Point Repeaters on Multiple Hosts