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

Thursday, 2 May 2013

Revit contour label orientation

A few times I have tried to search for information on how to control the orientation of contour labels in Revit - always without success.  It seems that Revit likes to orient the text of contour labels to be readable only if you are walking uphill on a Revit toposurface.  That works fine until "uphill" happens to be in an Easterly direction or even worse in a Southerly Direction, then the text can be upside-down.

All of the advice I have read is that this cannot be changed, and that you should not fight against Revit - just go with it and accept the way it is.  Most of the time I would agree with that advice, but just occasionally you might be forced into beating Revit in this battle . . . .
Like maybe your boss threatens to sack you if you can't make such a simple change to a drawing;  or the client threatens to sack your boss . . .

The Revit Contour Label Orientation Issue

Most of the time this issue is not a big deal, but some numbers can be confusing when read upside-down - 6 & 9 for example.
In this example, the contour labels are in millimetres, so it is pretty obvious that "0009" must be upside down, and it will be unlikely to cause a problem.  However, it is more common to work in metres on site plans and landscape drawings, so the numbers immediately become confusing, if not downright dangerous - especially if you can't easily trace the contours around to see the problem (unlike this example where it is easy to pick the mistake due to proximity of correctly oriented labels):
Your first response is likely to be to search the type properties for text orientation, but there is nothing there to change (at least not in Revit versions prior to 2014).  You can confirm this by looking at Wikihelp.


How to make Revit contour labels readable

The only solution to this problem that I could come up with is to put a tiny zigzag in the contour so that for a very short distance the contour direction is reversed.  you can then apply a lable to this section.  It is not so easy to do because when you edit a toposurface Revit likes to take shortcuts when you place points of a similar height very close together.
So you have to force Revit not to take shortcuts.  This can be done by inserting points of a slightly lower height - by trial and error to see where they need to go.  Fortunately Revit is very kind in that it shows the new contour lines as soon as you place or move a point.
The extra points must be very close in height to the contour height otherwise you'll get a nasty jagged area visible in 3d.  The zigzag also needs to be very small, so that it is easy to hide in plan.
Once the contour is "fixed" you can place a very short contour label line that only crosses only the reversed section of the contour.

With any luck, the contour label will obsure the zigzag.  Obviously you need to remove the upside-down label by shortening the line - that means you cannot have one continuous contour label line running across several contours.  You have to resort to lots of tiny separate label lines.

When Would You Use This Workaround?

I have to confess that this is a really nasty workaround - it is very labour-intensive and fiddly.  So I would advise you NOT to use this except in extreme circumstances where your credibility or job might be threatened. 
Sometimes it is not worth admitting to Revit's quirky behaviour and inconsistency if it might contribute to negative perceptions of Revit in your workplace.  So, do you fight Revit or fight your workmates/bosses?
Another situation that it might be worth doing is where you think there is a real risk that someone might dig a 3 metre hole on site when they misread a 6 for a 9 !!!

There is another possible solution that may avoid confusion, even if it does not placate the boss: Try making the label text underlined - that generally makes it obvious that it is upside-down, even if it looks horrible.