BILT Speaker

BILT Speaker
RevitCat - Revit Consultant

Sunday, 28 July 2013

Revit Scaleable Spline Tree Family

Having returned from RTC in Vancouver a couple of weeks ago, I decided to put into practice some of the things that I learnt at the conference.  It was another great Revit conference in a fabulous location - Vancouver is a beautiful city, and the waterfront has been really well designed and carried out.  Aside from catching up with friends, I met lots of interesting people and attended plenty of good classes.  Although I attended Marcello Sgambelluri's class on scaling families at RTC in Auckland, it was also a big talking point in Vancouver.  I asked several people if they had attended the class, and many enthusiastic people had;  some others said that they did not want to see how to scale a Revit cow or elephant - well they missed out on a treat, because we learned many tricks that could be applied to totally different areas of Revit. 

Here is one idea that I have developed based on one of the methods that Marcello used to scale classical column families:
Marcello Sgambelluri - Scaling Classical Order of Columns

Scale By Spline

This concept has also been explored by others, notably
Andy Milburn - Spline Sailing

but I first need to describe the concept here. 

A spline can be scaled just by dragging one of its end points.  To control this within a scaleable Revit family, you need to lock or attach the end points of the spline to something that you can dimension.  Although you can dimension the end points directly, it is better to use something like a reference plane.  Here is a simple rig to demonstrate this process:
The vertical reference planes and width parameter will be used to control the distance between start and end of the spline, and in turn its scale.
The offset reference plane and parameter are required in order to control the location of the spline.
Once the rig is set up, draw a spline between the two top reference plane intersections

Use the align tool to lock the ends to the reference planes, in both directions (4 locks required)

Change the width parameter to check that the spline is locked to the vertical reference planes and that it scales properly.
Change the Offset parameter to check that the spline is locked to the horizontal reference plane.

This example establishes the principle of being able to control scaling and location of splines using reference planes.  The spline end points do not need to be orthogonal to each other - they can also be at an angle.

Revit Scaleable Spline Tree Family

We can now apply this principle to multiple splines linked to each other, to create a simple tree family.  This example is proof of concept, and is only done in 2D, but it could be applied to 3D trees.

First make a rig of reference planes that are controlled by parameters
Then draw a series of splines between each reference plane intersection.
Lock the ends of the splines to the intersections using the Align tool (and then padlock)
Try flexing the overall height parameter - this will not only change the overall height, but it will not affect the other parameters.  So only parts of the tree will scale, and others will not be affected depending on how the parameters are arranged.  In this example, the tree trunk is not affected by the change in height - only the top part of the tree scales.
Changing the intermediate parameters will alter the overall shape as well as the width
 Different tree forms can be achieved by playing around with the parameters
One tree family can be used to create multiple tree types that vary in shape and height
By adding a few more reference planes and splines it should be possible to create a family that has independant tree height and spread parameters.  And all this can be done without having to nest one planting family inside another - it works without nesting.

No doubt there will be people who say that this is not practicable, or that the trees look terrible - but this is only a proof of concept.  I'm hoping that it will give more ideas to others who can run with the concept and create wonderful flexible tree families.

Wednesday, 12 June 2013

Revit Step Pattern Repeaters Part 2

Further to my recent post of 6 June on Revit Step Pattern Repeaters, here are a couple more methods to achieve step repeaters:

Step Patterns Method 3

  • The previously created 1 point adaptive box could have an additional parameter added to it - to allow it to be offset to the right from its centrepoint origin.  At its simplest it just needs a parameter from centre to left side - if set at half the width value it will be centred;  if set at zero it will be offset by half its width.  You could put in a formula to make it offset using a checkbox but its not really necessary.


  • Create a new type that is offset to the right by half its width.
  • Place a centred type box on a node of the divided surface
  • Place an offset type box on the node above it on the next row

  • If you try to "repeat" this it will only create a linear pattern;  so you need to teach Revit what you want - place two additional boxes in a cluster of four (two of each type)

  • Select all four boxes and click on the "Repeater" (array) command to get a two directional step pattern.
  •  This will create four separate interlocking repeaters

  • The edges will not be finished correctly, so you need to create a new half width offset box and swap out the overhanging edge pieces.

  • NB. If you change the number of divisions on the surface, you cannot control where the half width types appear in the overall pattern.

Method 4

  • If you want to create something more complex than a box on a rectangular surface grid, you may need to create an adaptive component that has multiple adaptive placement points 
  • Although this example is still a box, it has 3 adaptive points - the first two set out the left hand edge, and the third point the bottom right corner and length (reporting parameter).  The overall box length is calculated at twice the length between the adaptive points 1 and 3
  •  The adaptive component needs to be placed on 3 nodes on the divided surface in the correct order

  •  If you repeat this component, it will make a rectangular pattern, which is not stepped.  So you need to place three more adaptive boxes in the final pattern that you require

  •  Select all four boxes and click on the repeat command - to get a step pattern

  • The edge boxes on the right hand side, need to be individually exchanged for half size boxes;  the left side needs to have new half-sized adaptive component boxes placed in alternate gaps.  It should be possible to place just the first two and then repeat them vertically.
 
  • Although this method is more complicated, the principle it shows would allow more complex patterns than the one point adaptives.  For example, if you taper the surface grid, the length of the box varies according to the node spacing


  • If you created a 4 point adaptive box, you could get it to distort itself to fit properly on a tapered grid

For methods 1 & 2 refer to previous post below:
Revit Step Pattern Repeaters

For information on how to achieve particular repeater patterns of adaptive components on a divided surface refer to:
Single Point Repeaters


Thursday, 6 June 2013

Revit Step Pattern Repeaters

I saw a question recently about how to create a step pattern repeater, so of course I had to figure out how to achieve it. You could just use a 1/2 step or 1/3 step curtain panel pattern on a divided surface, but that may not be exactly what you need, and the predefined surface patterns are not always easy to modify if they don't suit your purpose.

Here are a couple of ways to achieve it with Repeaters in Revit:

Method 1

  • Create a one point adaptive component, with a box centered on the point;
  • Give the box separate width and depth parameters to control its size;
  • Create the surface that you want to apply the step pattern to;
  • Divide the surface and make its nodes visible
 
  • Load and place four instances of the adaptive box on alternate nodes on two rows of nodes
  • Select all 4 components and click on the Repeater command, it will generate a checkerboard pattern
  • It is actually 4 separate but interlocking repeaters
  • Now change the V Grid spacing so that it is half the U grid spacing (or vice versa).  This will tighten the repeaters up into a step pattern
  • An alternative would be to leave the U and V grid spacing the same, but change the width of the box to be double its previous width
  • If you want to tidy up the edges, you may need to swap out the overhanging components for half-sized types, although they would need an additional offset parameter so that the width is not centered about the insertion point (& node).

Method 2

  • Start with the same divided surface but change the rotation angle of one of the grids.  It seems that if you make the V Grid angle 30.95 degrees it offsets the nodes on  alternating rows by half the spacing - I don't have time to figure out the maths but there must be a logical reason.
  • Place just one adaptive box component onto a node
  • Then repeat it

  • The resulting step pattern will have gaps in it, so the width needs to be changed - in this example from 1000mm to 1200 mm
For more on this topic refer to Step Pattern Repeaters Part 2 : Methods 3 & 4

Sunday, 2 June 2013

RTC and Revit Egress/Escape Path Update

RTC Australasia 2013

At the Revit Technology Conference (RTC) in Auckland a couple of weeks ago I learned a whole lot of new tricks in Revit.   I usually think that if I learn one or two things that might save me hours or even days of work in Revit then it is worth attending the conference.  This time I learned a whole swathe of new techniques, including (but not limited to):
  • How to scale families by 5 different methods in Revit (and I thought it was not possible at all);
  • How to control rotation of elements in all axes and directions in a family;
  • How to morph elements in a family;
  • How to create walls, roads and fences that follow a toposurface exactly;
  • How to get a chameleon to persuade a grasshopper to talk to a frog (Revit) ;
  • and the list goes on . . .
Many thanks to Marcello Sgambelluri, Alfredo Medina, Andrew Willes and all the others who taught me new things.  I'm sorry I missed so many other sessions that sounded interesting too.
I also did a presentation in Auckland titled "Fractal Fun with Revit Repeaters and Adaptive Components".   If that sounds complicated, it was actually a lot of fun - and I learned a lot in the research and testing that I did to prepare for it.   For those who missed it, you have another chance to see a new improved version of the presentation in Vancouver at RTC NA in July.  Luckliy I had "Fun" in the title because my presentation followed straight after the keynote speaker Nigel Latter, a psychologist and local TV celebrity - his talk was entertaining, but also had a serious message about how to deal with change (and how to deal with difficult people who are resistant to change!).

One of the other great things about RTC is that you get to talk to other users and Revit experts about what you have seen and heard.  This often leads on to other new ideas.  One of those discussions was about creating Escape or Egress paths in Revit - and this led to some new methods I could use for the adaptive component that I created last year:
Escape Path Adaptive Component

Update on Escape Path Component


The new idea came out of one of Marcello's new methods for scaling families - to play around with the adaptive point properties so that they behave differently in the project.  Comments on my earlier post rightly pointed out that there would be a lot of extra mouse-clicks if you did not require all the segments of a particular escape path component.  However, it is possible to change the properties of each adaptive point so that they are either:
  • a "Placement Point", which requires a mouse-click from the user when the component is first placed;  or
  • a "Shape Handle Point", which does not require a mouse-click on placement, but does allow the user to move it after placement - at which time it behaves as an adaptive point that will move/change any geometry that is linked to it.




What this means is that you could make the first three adaptive points as placement points, and all subsequent points as shape handle points.  So the user initially has to place only the first three points (two line segments);  subsequent points would only come into play if those segments are activated using the visibility switch.

The downside of this idea is that all of the shape handle points are selectable in the project even when their visibility (and the line segments) is turned off - although moving them  would not have any effect if their segments are turned off.








To see how to create the egress path component, refer to:
Escape Path Adaptive Component

Sunday, 12 May 2013

Swept Blend using Profiles in Adaptive Components

This process might seem obvious to anyone who regularly works in the Revit Conceptual Massing Environment (CME), but for those who are starting out with Adaptive Components, it might help the transition from the old Revit family environment.

The question is:
How do you create a solid extrusion or sweep using a profile in an adaptive component ?

A lot of people advise against nesting components too much, but profiles are incredibly useful in Revit - they can save a lot of time and usually give much better control of geometry, rotation and parameters than just drawing linework within a family.  But the problem in adaptive components is that Revit won't allow you to load a traditional Revit profile family.  The adaptive component environment also does not have any of the "Edit Path", "Load Profile" sort of commands that you regularly find in the family editor.

The Solution:

How to create a Swept Blend using Profiles in Adaptive Components

The answer is really quite simple:  create an adaptive component that just has 2d linework geometry.  It can have dimensions, parameters and reference planes just like a profile.  the main difference is that it is visible in 3d in editing mode and after you have placed one too.





There are a number of tricks that you need to know:

  • The adaptive "profile" component does not need to have an adaptive point.  In fact it is better without, because then you can use the reference planes to lock the geometry to the origin as in a normal profile.
  • When you place an adaptive profile into another adaptive component, you can place it on a workplane or host it onto another element.  If you host it to a reference line it will automatically orient itself to be prependicular to the line (or arc).
  • You can also host it on a point, which may itself be hosted on a line - very useful for controlling its location along the line parametrically.
  • You can host it on a divided path node;  but don't bother to convert it to a repeater because it cannot then be used to create a solid form.
 Here is a quick description of how to use profiles to create a swept blend, but this technique could be used for any shape, solid or void.



  • Host two different size adaptive profiles (different types) on an arc reference line;

  • Select the profiles and the arc;  
  • Create a form;


  • Select a profile and slide it along the arc;

Flex the form by changing the sizes of the profile, the radius of the arc or move the adaptive points.

This techniques features briefly in my upcoming RTC presentation:
"Fractal Fun with Revit Repeaters and Adaptive Components" at RTC 2013

Creating a more Complex Form

You could try something a bit more complicated by first applying a divided path to the arc

Then try hosting some different sized profiles on the divided path nodes
You can turn these into a repeater - but sadly you can't select a repeater and turn it into a form (Revit won't allow that as of v2014 *see below)
The alternative is to manually host the profiles on each node - the end result may look the same, and be more laborious but it is not a repeater
These manually placed profiles can all be selected and turned into a form
The profiles are still visible, but they can be hidden
This form can be somewhat parametrically controlled - spacing of nodes, profile sizes, arc radius etc;  but the number of profiles cannot be adjusted after the fact.

Addition to Post  20 Dec 2013
I notice that this post gets a lot of hits so it must be an issue that people struggle with on Revit.  So I thought I'd add a bit more information:

It is possible to use a traditional Generic Model family with flat geometry nested into an adaptive or mass family to create your sweep or lofted form.  However, a traditional generic model does not have the advantages that and Adaptive Component (Generic or other category) has:

  • When a traditional generic family is loaded in, it will normally just place flat on the Level work plane.  If you want it to be in a different orientation, you need to set its properties to not be always vertical, and also to be work plane based.  Then you have to stuff araound setting the work plane before placing it - what a hassle.
  • If you use an adaptive component (with 2d linework, preferably in a closed loop), you don't need to mess with its settings - just load it into the adaptive or mass family;  when you place it, it will automatically rotate to its host - either perpendicular to a line, or snapped to a point.
  • If the point is in free space (ie not hosted on something else), it will snap to the default work plane of the point (most likely horizontal)
  • If the point is hosted on a line/arc/curve (it will look smaller than a free point), it will again orient to the default work plane of that point - but that will already be oriented perpendicular to its host.  Its very easy.
  • Another advantage of placing the adaptive profile onto a hosted point is that the hosted point has a "Rotation Angle" property that is simple to control - the profile will rotate with it.  simple.


You can use the Rotation Angle property of your hosted points to rotate individual profiles to achieve a twist in your form really easily.

Postscript 11 June 2015:
What happens if you want to create a hollow section sweep?  Refer to this post.

In Revit 2016, you can now create a swept blend or loft from a repeater (sort of) - refer to this post