Sunday, 15 December 2013

Rival Revit Environments - Traditional vs CME

For the first decade of its life, Revit really only had one method of creating 3 dimensional forms - in the Family Editor (aside from those generated by system families).  When Revit 2010 was released we suddenly had a whole new way of doing things with the new conceptual massing tools.  Since then, many people have been grappling with the seeming divergence of these two very different Revit environments.  Now we have the prospect of such tools as Dynamo introducing yet more ways to work in Revit - however exciting it seems, Dynamo has the potential to cause even more disparity and fragmentation of not only the workflow but the development effort by Autodesk.  This has been worrying me for some time, and I've been thinking about how best to convey our concerns to Autodesk in a positive constructive way.

Recently I was reading Paul Aubin's new book:
Renaissance Revit:  Creating Classical Architecture with Modern Software
In chapter 1 he discusses some of the differences between the Traditional Family Editor and the Massing Environment (Conceptual Massing Environment or CME as Autodesk refers to it).  I realised that there are a whole lot more differences, that are not clearly documented anywhere, so I thought I would try to address the issue here.

Before I do that, a little more about Paul's book: 
Greek Doric
Although the overall intent of the book appearsto be about using Revit to create classical architectural elements, it is in fact all about using Revit to create some tricky geometry - and the techniques that he describes could be used for all sorts of purposes.  For example, in chapter 4 he describes how to constrain arcs, circles, elipses and splines that might be used to parametrically control families.  I wish I had read that before embarking on my own exploration of the subject, which had nothing to do with classical architecture - it would have saved me a lot of time and effort.   The early chapters of the book also set out a lot of good practise that anyone should apply when creating Revit families, for whatever purpose.

Skipping on to Chapter 11 gives us a good general introduction to creating families in the Conceptual Massing Environment before launching into ways to apply that specifically to classical architecture.  Again, these principles are relevant to many other situations when building Revit models.  Thanks Paul for a fascinating new book.

Traditional Family Editor vs Conceptual Massing Environment

Below is an analysis of the differences between the traditional Revit Family Editor and the Conceptual Massing Environment, follwed by some specific differences that apply to Adaptive Components - these generally follow the massing methodolgy but have a few more quirks of their own.  The table below is compiled from some of Paul's observation and some from my own experiences of working with adaptive components in particular.  This is not a definitive list, and I may have made errors or omissions.  Please feel free to comment, and I may update the list in the future, based on feedback.

I hope that Autodesk can make use of this analysis to help bring the two rival Revit environments back together in the future – and I use the word rival quite deliberately because they seem to be fighting each other much of the time.

I have traffic-light colour coded the comparisons:

Red = Bad
Orange = Getting there
Green = Good

Conceptual Massing Environment
Traditional Revit
3D work environment
·      Offers greater flexibility
·      Can be very confusing
·      Need to continually set work plane;
·      Can pick work plane on the fly just by picking level or reference plane
·      But it is easy to make mistake with work plane
·      Levels visible in 3D (but not for in-place massing)
·      Reference planes visible in 3D (but not for in-place massing)
·      Reference lines used extensively to generate forms or host elements
2D work environment
·      Limitations  when working with unusual shapes in 3D
·      Simple, familiar workflow (for Revit users)
·      Work plane often set automatically by the view; 
·      Can set reference plane as work plane only if named first
·      Must use set work plane command (unless prompted)
·      Hard to make a mistake with work plane
·      Levels not visible in 3D
·      Reference planes not visible in 3D
·      Reference Lines used almost exclusively for controlling angles
·      Can create multiple levels within family (but not In-Place CME) 
·      Created levels do not relate to levels in project
·      Cannot create multiple levels within family (unless already in template) 

·       Upper level in columns & 2 level Generic model do relate to project levels
3D forms created from selected elements
·      Greater flexibility
·      Harder to understand 
·      Unpredictable – eg. Cannot nominate which element is for path (result is a guessing game) 
·      Easy to make mistakes
·      Often fails to create form
3D forms are sketch-based, on a 2d work plane
·      Limited range of 3D forms
·      Simple to understand 
·      Predictable – eg. Sweep path is nominated   
·      Hard to go wrong once learnt
·      Seldom fails to generate form (usually understandable when it does – eg lines zero length)
3D forms “unlimited” 
·      Limited by what you can draw, and by certain software limitations (unknown so can’t be listed here!)
·      Can be solid or void
·      Boolean combinations –  does allow solid to cut solid
·      Booleans can be confusing (must control picking of form vs surface)
·      Can loft multiple selected shapes, which can be at varied angles
 ·      Cannot create form from loop within loop (must use void to cut out shape)
Five basic 3D forms
·      Limited to: Extrusion, Blend, Revolve, Sweep, Swept Blend
·      Can be solid or void
·      Also limited boolean combinations of above (join & cut)
·      Can only create lofting between 2 shapes - with “blend” (ends must be parallel) or “swept blend” (ends perpendicular to ends of sweep path).
·      Extrusion allows loop within loop
Profile families
·      Cannot use traditional 2d profile families to generate forms in CME – but can use flat generic adaptive families (easy enough but different methodology). Refer links at end for how to do this
Profile families
·      Can use traditional 2d profile families to generate forms
Editing Forms
·      Forms can be changed from one type to another (extrusion to blend to loft etc)
·      Lock/Unlock Profile command to enforce extrusion
·       Add Profile command available
·      Boolean commands to cut or combine forms
Editing Forms
·      Forms cannot be changed from one type to another – each of the five primitives are not interchangeable
·      Profiles, sweep paths, and dimensions can be changed easily
·      Boolean commands to cut or combine forms
Editing shapes of profiles
·      Complex rules;  easier to make mistake
·      Depends on how the lines/form were created:
o  Base  reference lines can be moved without editing profile
o  From lines and profile is “locked” – can edit
·      Edit Profile command sometimes available (like trad. edit sketch)
·      Add/remove segments in Edit Profile mode
·      Add Edge command sometimes available
Editing sketch profile
·      Very simple;  almost foolproof
·      Select form, “Edit Sketch”
·      Adding/removing segments very simple in sketch mode
Changes to Work Plane of profiles in forms   
·      Somewhat complex and not intuitive:  need to select original elements that were used to create form – only works if reference lines;  model lines get consumed by form, so cannot select them.
·      Can only change work plane of selected elements to a parallel plane
·      Extrusion with “locked profile” will display Positive and Negative Offsets if top or bottom face is selected;  (but work plane of original lines is not displayed at the same time) – so it is possible to change location of a top face relative to bottom face (not possible with blend or loft)
·      User can place a dimension for the height of the form, but this involves extra steps; it stops temporary dimensions working for that face;
·      If the height dimension is turned into a parameter it may remove spot elevations and shape handles of forms back in the project environment
Changes to sketch profile Work Plane   
·      Very simple – “Edit Work Plane” or “Pick New” commands available to relocate original sketch and thus modify or move form
·      Using “Pick New” work plane, can totally change orientation of an extrusion or blend.
·      Extrusion or blend have properties:  Workplane; First End; Second End so it is easy to change the opposite end of the form by amending End property.
Identify or Change absolute location of a face in CME (eg. If you need to know RL of top of an extrusion)
·      This is a nightmare!  It is really difficult:
·      Extrusions display a positive & negative offset for a face only if profile is locked – therefore it won’t work for a blend
·      Work plane property is only displayed in a separate dialog box; and only if the original reference planes are selected; not possible with model lines.
·      It is not possible to place a Spot Elevation annotation in the CME
·      If you place a Spot Elevation annotation onto an in-place mass before editing, the annotation disappears as soon as you edit – so you cannot see the RL as you drag the face of an extrusion!
·      In the project environment, if you drag the face of an extrusion (mass family) using the shape handle, an attached Spot Elevation will not update dynamically – only updates after you let go the handle
Identify or Change absolute location of a face in Model In-Place family (eg. Need to know RL of top of an extrusion)
·      Very simple: Edit Family; select form to see properties
·      Extrusion or blend have properties visible in same dialog box:  Work Plane; First End; Second End (dimensions) so it is easy to know its absolute location.
·      Easy to change Second End property of extrusion or blend to an absolute location (assuming base work plane is a level, grid or named reference plane)
·      It is not possible to place a Spot Elevation annotation within In-Place family
·      If you place a Spot Elevation annotation onto an in-place family before editing, the annotation disappears as soon as you edit – but this is not so bad because it easy to identify RL from work plane + second end property
·      In the project environment, if you drag the face of an extrusion (in-place family) using the shape handle, an attached Spot Elevation will update dynamically
·      Divided surfaces can only be done within CME, not in project environment
·      Divided surfaces are fairly flexible (grids or intersects),
·      Divided surfaces are not always predictable or easy to control
·      Curtain Panel Pattern families are special types of components that can only be applied or modified as patterns within the CME.  This is very “unRevit-like”.
·      Only Curtain Panel Pattern or Adaptive families can be applied to a divided surface as a pattern of panels or repeater – but this must be within CME
·      Adaptive and Curtain Panel Pattern components can be individually placed on divided surface nodes (only if visible) in CME – they will move with changes to nodes
·      Curtain walls and systems can be placed in the project environment; 
·      Curtain wall/system divisions are limited
·      Curtain wall/system divisions are fairly predictable
·      Panels in curtain walls and systems are regular components that follow normal Revit rules
·      It is not possible to apply a traditional Revit family to a divided surface as a pattern of panels (or suchlike) – it may be technically possible by nesting, but that is not a realistic option
·      Adaptive components can be placed on divided surface nodes (only if visible) in Project Environment – but they will not move with changes to nodes.  NB. Node visibility can only be changed by editing the mass family.
Categories - CME
·      Mass family cannot be changed to other categories
·      Adaptive families can be changed to some limited other categories (but not to structural)
·      Adaptive families cannot be changed to mass category
Categories - Regular family
·      Regular family can be changed to many other categories but not to mass, adaptive or system  (except by obscure workarounds)
·      Changing category will inherit some characteristics of new category but depends on what is normally in pre-set templates
File size & performance - CME
·      much larger files
·      multiple nesting can increase size significantly
·      can run very slowly, especially with multiple nesting
File size & performance
·      smaller  files
·      multiple nesting only increases size a small amount
·      run moderate to fast depending on formulas and nesting
Line selection in CME
·      Chain of lines is automatically highlighted for selection (this is mighty confusing and wastes much more time than it could ever save)
Line selection in traditional family editor / project environment
·      Chain of lines is only highlighted for selection using the tab key
Copy and Paste
·      Cannot copy and paste into CME from traditional family
·      Cannot copy and paste from project environment into CME
Copy and Paste
·      Cannot copy and paste into traditional family from CME
·      Can copy and paste lines from project environment into traditional family editor (limited)
·      Cannot nest CME or Adaptive families into traditional families
·      Can nest traditional families into CME or Adaptive
Group command not available
Group command is available
Create Similar command not available
Create Similar command is available for in-place families
Does not have “Annotation” tab in the ribbon
·      Cannot place text
·      Cannot place symbols
·      Cannot place Symbolic Lines
·      Cannot place Detail Components
·      Cannot place Detail Groups
·      Cannot place Masking Region

·     Does not have model text.
·     only way to get any kind of text/label/tag into a mass or adaptive component is to nest a generic component that has model text in it
Does have “Annotation” tab in the ribbon
·      Can place most detail/annotations to represent 2D information in plans sections and elevations
·      Cannot place filled region in model families (have to be nested)

Divide line & Divide Surface available
·      Mismatch between numbers on divided path vs surface
·      Divided path/surface node visibility setting is obscure
·      Divided path/surface nodes visible in project
Divide line & Divide Surface not available
Arrays – in CME / Adaptive
·      Repeater command available
·      Repeaters relatively flexible but hard to predict
·      Repeaters can be 2 or 3 dimensional (inc radial)
·      Array command not available
·      Repeater command not available
·      Array command available
·      Arrays very limited but predictable
·      Arrays only 2 dimensional or radial
Volume properties
·      “Gross Volume” mass property cannot be scheduled or tagged
Volume properties
·      “Volume” property of forms in generic category (only) can be scheduled but not tagged
Control command not available
Control command available (for flipping components in project)
Visibility Settings only available by right-clicking
Visibility Settings available (for controlling display levels and 2d view visibility)
Parametrics & Formulas
·      Allows all available Revit formulas (with many limitations)
·      Reporting parameters can be used in formulas only if derived from Adaptive points (? No other “host” elements)
Parametrics & Formulas
·      Allows all available Revit formulas (with many limitations)
·      Reporting parameters can be used in formulas only if derived from “host elements” – ie. Baked into templates (eg. reference planes, levels, walls)

A few more comparisons related specifically to Adaptive Components:

Adaptive Component Environment
Traditional Revit Family Environment
Can snap in 3d - this is a huge advantage, allowing easy creation of geometry in all kinds of directions in 3d.
·      3D snapping is off by default, leading to frequent errors
Cannot snap in 3d in family editor (big limitation in flexibility)
·      Limited line selection for 3d sweep paths
Placement of adaptive components in the project model:
·      Does not lock to orthogonal (bad news)
·      Does snap to vertices in 3d; 
·      adaptive points remain locked to vertices even when they move
·      Does not snap to toposurface even when category is “Site”
-   "Load Family" command is not available on the ribbon when placing a component  if an adaptive component is active in the Type Selector (In project and family editors)
Placement of regular components in the project model:
·      Does lock to orthogonal, and take advantage of all the Revit automatic snapping options
·      Only snap to vertices in 3d on a preselected work plane/surface; limited 3D line selection for beam placement
·      Does snap to toposurface when category is “Site or Entourage”
Voids in adaptive components:
·      Adaptive components cannot have a host element baked into the template – so It is not possible to include a void element in the adaptive component that will automatically cut the host face it is placed onto
·      “Cut with voids when loaded” capability is very limited in categories it can be applied to – it cannot cut curtain panels, curtain systems,  mass categories (big limitation). Only works in projects.
·      void repeaters have very limited usage – they can only be placed on flat surfaces of walls, floors, furniture, casework etc.  This is a huge wasted opportunity as it means that we cannot place void repeater patterns onto massing (to quickly represent windows on a mass model), curtain panels (perforated metal panels), or any curved surface of any category
Voids in regular components:
·      Some family templates have a host element baked into the template (face-based generic, doors, windows etc)– so It is possible to include a void element in the component that will automatically cut the host face it is placed onto
·      Regular components cannot be used in repeaters, so the “face-based” families with voids in them cannot be used

·      “Cut with voids when loaded”  only works in project, not in nested families

Point Elements
·      Points are available in CME and Adaptive components
·      Points can host  geometry and components
·      Points can be hosted on lines/arcs
·      Points can be used to control arc midpoints using “Start-End-Radius” arc (from v2014 only)
·      Placement of (Adaptive) points on Level work plane do not snap to reference planes in 3d views (but do in plan)
·      Points not available
·      Traditional families can be nested into adaptive components
·      Nested family behaviour is unpredictable – particularly location and 2d rotation – behaviour changes radically depending on whether hosted on points or just placed on a work plane
·      Line based traditional families can be nested in, and two ends can be hosted on adaptive points
·      Adaptive components cannot be nested into traditional families
·      Nested traditional family behaviour is fairly predictable – particularly location and 2d rotation
·       Adaptive components can be hosted by adaptive points onto vertices in the project - in 3D (not constrained to planar placement)
·      Adaptive components will flex when  host vertices are moved, when adaptive points are snapped to vertices. 
·      Adaptive components are deleted if any one of its (possibly multiple) hosts is deleted
·   Traditional families can be hosted onto other elements in different ways depending on the family template and category - eg. Non-hosted; face-based; line-based; wall-hosted, ceiling-hosted, floor-hosted
·   Hosting behaviour is very inconsistent between different categories and templates - very confusing.
·   Hosting behaviour can be modified in the project by other settings and automatic system constraints. 
·   Family hosting behaviour cannot easily be changed (except by obscure workarounds)

3D Orientation
·      Adaptive families can be very unpredictable when placed in the project environment, especially when families are nested
·      Elements can be hosted on points, which have their own orientation controls – so that different parts of the model can be differently oriented
·      Options for point orientation are extremely confusing
·      Nested families can be oriented and located as part of the whole family or else controlled by points they are hosted on – can be very confusing
·      Nested components can orient themselves differently in the project environment to how they are oriented in their host family – can be very hard to manage (somewhat better from v2014 onwards)
3D Orientation
·      Most traditional families will be inserted into the project in the same orientation that they are modelled – the exception being face-based, or work plane based (where “Always vertical” is unticked).
·      The whole family is inserted in the same orientation
·      Nested families are oriented as part of the whole family, even if they have “Always Vertical” ticked (overridden by parent orientation in the project). Simple and predictable

See separate posts on Adaptive Components:


  1. Hi Tim:

    Great post. First: Thanks for the mention on Renaissance Revit. I appreciate all your comments and feedback both here and privately.

    On your comparisons, I would like to add a few comments:

    Limited by what the template contains, the levels do not directly translate to levels in the project unless baked in that way (like Columns, or GM two-level based)
    You cannot make a two-level adaptive component for example. (Changing it to a column category is possible, but it won't automatically relate to the upper level).

    Biggest weakness of Create Form is that it is a guessing game. Wonder if I can make it understand what I want with this...
    Traditional forms limited, but completely understandable. They have clear rules.

    Limitations on traditional, why can't profiles be used for extrusion, sweep and revolve?
    Why can't swept blends use multi-segment paths?
    Why can't they use more than two profiles?

    Booleans. Revit only recognizes Union (join) and subtract (voids). There is no intersect.

    The CME really needs to allow Profile families to be used directly, or a quick conversion routine. Having to recreate all of my profiles as GM was a major PIA.

    Categories is simultaneously one of the strengths and weaknesses of Revit. Sigh.

    Performance continues to plague all of these tools. If you create a family in either environment of any kind of complexity (nesting, formulas, heavily parametric, etc), be prepared to suffer on performance.

    Chain selection. Agreed. It should be one or the other. Period.

    Copy and Paste - Arrrggghhhh

    Nesting - Arrrrgggghhhh

    Create Similar - Right! Why not?

    Annotation - Agreed again. We should be able to at the very least nest in 2D families.

    Voids - Cannot make complex voids. If you want a void made from two forms, say an extrusion and a sweep. Then combine this as a single void, it cannot be done. (at least not in any reasonable or repeatable/teachable way). So your ability to use voids to sculpt form is limited.
    Voids greatly affect performance too. So that is another downer.

    Voids cut when loaded ONLY works when loaded in a project. NOT on nested families. Huge bummer.

    Points - the options for points are still very mysterious and require a soothsayer (or Zach Kron) to figure out.

    Thanks again. Terrific stuff. This will be a future "GoTo" post for my students.

  2. Just thought of another line item for your table:

    Parameters and Formulas. Both environments can be fully parametric, have types and use formulas.

  3. Thanks Paul, I will Edit to incorporate your comments soon

  4. there some excellent conceptual design models using the edit polygon modifier stack in 3ds Max Design. You can import in as a SAT file to Revit.
    fantastic tutorial here for creative designers:

  5. In response to "Building Design Suites": you have proved my point perfectly. Autodesk seems only to be interested in providing quick fixes - yet another software solution instead of fixing the one that we actually want to use. Have you ever tried to import a SAT file into Revit? Or, if you succeed, to then use it for something? NO! what we need is for the tools we already have in Revit to be made consistent. That would make them simpler to use, and we would not need all these other solutions.