Parametric Monkey reaches 100k views!

When starting Parametric Monkey, my aim was to accelerate computational literacy within architectural design. The genesis of this idea was simple. Over the course of my architectural career, I continued to come across technical issues when working with digital design tools. Parametric Monkey was created as a platform so that I could share this knowledge with others. I had no idea the impact it would have.

I am humbled and proud to announced that Parametric Money has now passed 100,000 views and 40,000 visitors from over 100 different countries. This is a major milestone for us and I would like to thank everyone involved for making it such a success.


As evidenced by the three most popular posts, Parametric Monkey focuses on the intersection of parametric design and BIM:

  • Construction Communication – The outcomes of a BIM course I ran at Hong Kong University (HKU) where students were asked to encrypt and codify what are otherwise complex architectural effects into clear methods of construction.
  • Rhino to Revit workflowThis is a list of best practice workflows to follow when generating Rhino massing for importation into Revit.
  • Dynamo for GH usersA *PDF primer which contains tips and translations to help migrate your Grasshopper skills to Dynamo.

The most commented tutorial was Renumber Doors by Rooms which demonstrates how to automate the renumbering of Revit doors based on the room in which it is located using Dynamo. With now over 80 tutorials covering Revit, Rhino and numerous plug-ins, 2017 promises to be even bigger and better for Parametric Money.

Revit Splines

Splines can be created using either the Model lines (Architecture > Model > Model lines) or Detail lines (Annotate > Detail > Detail Lines) command. For a long time, splines in Revit have been a major bugbear. The reason for this is that it is currently not possible to make a closed, periodic spline nor is it possible to trim the spline once created.



Furthermore, it is (still) not possible to snap to the start/end point so that the points are coincident. Note that if you try to move the start/end point directly, it will scale and modify the entire spline. To move only the start/end point, you need to use Tab to select it.

All of these limitations makes working with splines very difficult. In fact, there is actually not much you can do with splines within Revit. However, here are your options if you do want to work with splines:



Option 1: Native Revit splines

Since you cannot create a single closed spline within Revit you can either:

  • Create a second spline or line and snap to the start and end point to fully close the spline. In this scenario, you’ll need to eye-in the tangency.


  • Model an in-place mass which only has 2D line work in it. This method will allow you to snap to the end point although technically it is not ‘closed’. Again you’ll need to eye-in the tangency. You will also receive an error stating that there are two overlapping points. This can be ignored since if you try to delete the duplicate reference point it will delete the last segment.



  • Create an adaptive component family, which is similar to the in-place mass method described above.



Option 2: Imported AutoCAD/Rhino linework

The workaround for this limitations is to use AutoCAD or Rhino. Create or modify the spline in AutoCAD or Rhino, and then re-import the geometry back into Revit. When importing, you’ll need to use ‘Import CAD’, not ‘Link CAD’. Once in Revit, you can then explode the Imported CAD spline. Revit will convert it into a Revit spline and split it into two parts. If a 3D spline is imported, it will be flattened to the current work plane once exploded within Revit. The method of course breaks the golden rule of not importing CAD geometry and especially not exploding CAD geometry. The CAD geometry therefore needs to be as ‘clean’ as possible and used sparingly.



Option 3: Dynamo

Using Dynamo to generate splines is probably the best workaround. Dynamo will allow you to create a closed, periodic NURBS curve, similar to what Rhino or AutoCAD can produce. (Although refer to this post to see some of the geometric differences when importing). In order to create Revit geometry, such as model lines or a floor, the closed spline will need to be split into two segments. Although we are left with two lines, they will be tangential unless modified manually. The final output of this workflow is similar to option 2 where we imported CAD linework however the benefit Dynamo has over this method is that you won’t need to keep deleting and reimporting the geometry. Re-running the Dynamo script will automatically update the Revit elements should the spline geometry change.



BILT 2017

Join me at this year’s BILT ANZ conference (previously RTC Australasia) where I will be presenting three classes:


‘Flux-ilicious: Open-data and cloud computing – This class will identify some of the interoperability limitations we currently face and introduce Flux as a contender to solve these issues. We will cover how to setup a project and share data across Revit, Excel and Rhino and we’ll also delve into the Flux labs as a means to harness the power of open-data and cloud computing.



‘In context: Working with GIS data sets’ – Working with Geographic Information Systems (GIS) and Airborne Laser Scanning (ALS) data can be confusing and difficult. This class will demystify the process of working with these data sets and demonstrate how such data sets can be optimised, cleaned and imported. Using the City of Sydney model as an example, attendees will learn how to:

  • Convert a detailed LiDAR terrain mesh into a simplified surface using Grasshopper;
  • Utilise Rhino to clean up building geometry for importation into Revit and 3D printing software; and
  • Position geometry accurately based on various coordinate systems such as WGS84 and MGA94.

Furthermore, we’ll explore how to enhance the data set by utilising Open Street Map data imported from Elk and Flux’s Site Extractor.



‘Everyday Dynamo: Practical uses for BIM managers’ (Lab)There are many day-to-day laborious tasks that an Architect needs to perform. Whether it is sequentially renumbering doors or rooms, cleaning up the Revit model, or a host of other tasks, this class will demonstrate how to automate these processes so that you can spend more time on what you do best, design. By harnessing the power of the Dynamo Package Manager, the class will illustrate how to extend Revit’s capabilities to maintain your Revit model. We’ll cover how to automate: workset creation, renumbering rooms, renumbering doors, purging unused filters, adjusting a room’s upper limit, controlling a view’s underlay, creating unplaced rooms, and adjusting titleblock properties to name but a few. The lab recently featured in BILT ANZ Program Highlights.Dynamo_RenumberRoomsPlan_1600x800

Registrations for BILT ANZ open soon and the conference will be held in Adelaide from 25-27 May 2017.

Detailing in Revit

Within Revit, there are essentially two forms of detailing:

  • ‘Hybrid’ detailing which is drawing additional information over the detail view, so the detail produced is a combination of 2D information and the 3D model behind; and
  • ‘Complete over-Detailing’ which is where the 3D model is used to trace over in 2D; with the 3D model turned off on completion of the detail.

Although it is possible to model everything in the design, this should be avoided, as it will lead to large file sizes and model degradation. You need to be smart about what to model in 3D and what to detail in 2D. In general, it is recommended that you model to a point, then head to the details to document the rest. Here is a brief introduction into some of the tools at your disposal to achieve that.


You can add a callout to a plan, section, detail, or elevation view. In these views, the callout tag is linked to the callout view. The callout view shows an enlarged version of part of the parent view, and provides more information or details about that part of the building model. You can add a detail callout or a view callout to a plan, section, detail, or elevation view. When you draw the callout bubble in a view, Revit creates a callout view. You can then add details to the callout view to provide more information about that part of the building model. The view in which a callout is drawn is the parent of the callout view. If the parent view is deleted, the callout is also deleted. To create a callout go View > Create > Callout. You have the option of creating a simple rectangular callout or by sketching the boundary.



It is also possible to create a referenced callout. This can be used when you don’t want to reference the model directly, but rather to another detail, e.g. drafting views. To create a reference callout go View > Create > Callout and on the Options Bar, select Reference other view, and select a reference view name.


Drafting views

During the course of a project, you may want to create details in a view that are not directly associated with the model. You can create this un-associated, view-specific detail using a drafting view. In a drafting view, you create details at differing view scales (coarse, medium, or fine) and use 2D detailing tools: detail lines, detail regions, detail components, insulation, reference planes, dimensions, symbols, and text. Drafting views do not display any model elements. To create a Drafting View go View > Create > Drafting View.


Graphic representation

Within Revit, the graphic representation of how elements appear can be controlled a number of ways. Before objects can be assigned a particular graphic representation, we first need to set the line graphics. This consists of three categories:

  • Line Weights – Model line weights control the line width for elements like walls and windows in orthographic views (plans, elevations, etc). They depend on the view scale. There are 16 model line weights. Each can be given a size for each scale view. The sizes are loosely related to the nib sizes of technical pens used before the invention of CAD. A full set of pens would have the following nib sizes: 0.13, 0.18, 0.25, 0.35, 0.5, 0.7, 1.0, 1.5, and 2.0 mm, which correspond to the line widths as defined in ISO 128. However, the International Organization for Standardization (ISO) called for four pen widths and set a colour code for each: 0.25 (white), 0.35 (yellow), 0.5 (brown), 0.7 (blue); these nibs produced lines that related to various text character heights and the ISO paper sizes. To modify the line weights go Manage > Additional Settings > Line Weights.



Note that in order to preview line weights in a view you need to disable Thin Lines (TL) by going View > Graphics > Thin Lines.


  • Line Patterns – Controls the line patterns such as dashed, centreline, etc. Regardless of if you have imported or linked  AutoCAD drawings, then the default line pattern list will be contaminated. The best way to avoid this is to use a ‘CAD Links’ Revit model which is then linked into the main Revit model. To modify the line weights go Manage > Additional Settings > Line Patterns.


  • Line Styles – Combines line weights and line patterns into a line style. To modify the line styles go Manage > Additional Settings > Line Style.




Once the line styles have been established/ modified, we can then assign these styles to elements. This can be done in a number of ways:

  • Globally This will affects all objects in a particular category. To modify an object’s style globally go Manage > Settings > Object Style.


  • By view – This will manually override the global settings by changing how the all the object in one category appears in that view. This approach can be combined with filters to identify specific elements, such as Fire rated walls. To manually override a view go View > Graphics > Visibility/Graphics (VV or VG).  Alternatively, select an object and right mouse click and choose Override graphics is View > By Category.



To add a filter to a view (optional):

– Visibility/Graphics > Filters > Add > Edit/New. Or View > Graphics > Filters.

– Add filter and give it a name, e.g. ‘Fire Rating’. Use ‘Define rules’ as the option.


– Assign the relevant categories, e.g. Walls.

– Under Filter by, select a parameter, e.g. ‘Fire Rating’.


– Once the filter is created, assign it to the view by going Visibility Graphics (VG) > Filters tabs > Add and select the filter. Then set the overrides as required.


  • By element This will modify only the selected element in that particular view. To override an element, select an element > right mouse click > Override graphics in View > By element.



Linework tool

Although the techniques above help you control the graphic representation of how elements appear, sometime it doesn’t do what you need it to do. Lines might be heavier or thinner than you require. This is where the Linework tool (LW) comes in handy; it allows you to modify existing lines in a view-specific context. To modify linework:

  • Modify > View > Linework
  • Choose the linestyle you want from the type selector
  • Select the line or boundary of an element to change



You can also choose to remove lines using this tool. By selecting the <Invisible> line type, you can make some linework disappear. This is a good alternative to having to cover unwanted linework with a masking region (refer below).

Show hidden lines

Model and detail elements that are obscured by other elements can be displayed using the Show Hidden Lines tool. You can use the Show Hidden Lines tool on all elements that have the Hidden Lines subcategory. The Remove Hidden Lines tool is the inverse of the Show Hidden Lines tool. To show hidden lines go View > Graphics > Show Hidden.


Regions are areas of any shape or size that you can fill with a pattern. There are two types of regions within Revit: Masking regions and Filled regions.


  • Masking regions are white boxes that can have (or not have) discernible borders to them. Masking regions are typically used to ‘hide’ or mask certain content from a view that you don’t want shown or printed. To create a masking region go  Annotate > Detail > Region > Masking Region


  • Filled regions allow you to choose from a variety of hatch patterns to fill the region. These are commonly used in details to show things like rigid insulation, concrete, plywood, and other material types. To create a filled region go Annotate > Detail > Region > Filled Region.



Beyond the ability to control opacity (transparent or opaque), two other variations of filled region types are available, Drafting regions (2D) and Model regions (3D):

– Drafting regions are a region type typically used for patterns. Some examples of a drafting region hatch might be diagonal lines in an area plan, or crosshatched lines to show the difference between two departments. Drafting regions are created by specifying a distance between two or more lines relative to the printed sheet.

– Model regions keep a consistent spacing relative to the model, not the view. You might use a model region to show ceiling tiles or brick courses, or tile pattern in a bathroom tile pattern. Model regions will keep their scale relative to the model.

Family library

Not all families need to be modelled from scratch. If the family you are after isn’t in the default Out-of-the-Box (OOTB)Revit library, try doing a quick search on line. Here is a list of useful websites:


Detail Components are schedulable, taggable, keynotable 2D families that allow an additional level of standardisation within your model. Some examples for things you’d use detail components are blocking in section, steel shapes, metal studs in plan or section—just about any replicated 2D element that comes in a standardized shape. You should use Detail Components wherever possible, rather than drafting lines. Detail components are more efficient and they are easier to copy and constrain. Remember to lock or check the box ‘moves with nearby objects’ when placing them to ensure they move if the model does. To create a Detail Component go New > Family > Metric Detail Item. Draw as required and save. In the project go Insert > Load from library > Load family. Once loaded, the family can be placed in views by going Annotate > Detail > Component > Detail Component.


The Repeating Detail Components tool allows you to place a detail component in a linear configuration where the detail component repeats on a set interval. This allows you to draw a ‘line’ that then becomes your repeating component. An example of this would be brick courses. To draw a Repeating Detail first create a detail component. Then load into project by going Insert > Load from library > Load family. Next we need to create a repeating component from the detail component. Go Annotate > Detail > Component > Repeating Detail Component. In the Properties window, Edit Type and Duplicate. Change the referring detail to the one just created and modify the spacing. Draw a simple line to array the repeating detail component.



The best way to think of the Insulation tool is like a pre-made repeating detail. Selecting this tool allows you to draw a line of batt insulation, much like a repeating detail. To draw insulation go Annotate > Detail > Insulation. The width and the bulge ration can be modified in the Properties pallet.



Revisions allow designers, builders and others involved in the project to track changes made to a set of drawings. This process is most important during the construction documentation phase. Since the construction documents usually consist of numerous sheets, this methodology allows everyone on the team to track and identify which changes were made and when they were made during construction. The purpose is not only to ensure correct construction but also to create as-built documentation recording how the building was actually created to be delivered to building owners upon occupancy. To create a revision go View > Sheet composition > Revisions. Numbering is generally ‘Per Sheet’ and you can then choose between ‘Numeric’ (1,2,3,etc) or ‘Alphanumeric’ (A,B,C,etc).


Once the revisions are created, they then need to be applied to the relevant sheet(s). To do this, go to a sheet and in the Properties window, under ‘revisions on sheet’ apply the revision just created. This will update the titleblock automatically.


To identify the part of the sheet that has changed, revision clouds are used. To create a revision cloud go Annotate > Detail > Revision Cloud. Note that for the clouds to be visible, ‘Cloud and Tag’ must be selected when creating the Revisions (View > Sheet Composition > Revisions).


Worksharing in Revit

If you plan to work as part of a team within Revit it is important to setup file sharing capabilities within your model. Revit behaves differently to other software and it isn’t always possible to do a simple, copy and paste from one file to another as you may be used to in other programs like Rhino or AutoCAD. Because Revit is a BIM authoring tool, elements can be hosted into other elements making simple amalgamation of files difficult.

The default, non-workshared Revit file can be used by one person as a time. This file can be copied and pasted like any other file you normally use. However in order to allow multiple to use the same model simultaneously, you’ll need to enable worksharing.


Worksets, which are part of the worksharing process, allow you to divide up portions of the model along logical building divisions. Don’t think of these as layers; think of them more as building assemblies and components. Whereas in 2D CAD you might have doors and walls as separate layers, in Revit you might have Facade, Core, and Interiors as separate worksets. Worksets act on many levels:

  • On a large project worksets afford team members a way to manage what goes into the active RAM on their individual workstations. Each workset can be selected to load or not load when you open a project. Think of this as partially opening a project. Choosing to leave a workset off means that you won’t load that information into the active memory of the computer, making the model easier to manipulate and manage. It will be ‘lighter’ and more responsive. Views will open quicker. And when you need to see your work in context with the other worksets, simply turn on the worksets that weren’t previously loaded. This is a much more powerful way of controlling graphics than simply using Visibility Graphics.
  • When working on a shared model, sometimes two people will try to edit the same element at the same time. If desired, worksets can be used to ‘own’ an element. This will prevent anyone from being able to edit that element. Generally, it is recommended that you don’t ‘own’ a worksets (or in Revit’s terminology, make it ‘editable’). Rather it is better to ‘borrow’ an element. When you edit an element that is not being edited by another team member, you automatically become the borrower of the element and can make the changes you need.


To activate worksets in Revit 2016 or earlier you could click on the ‘Workset’ button in the bottom ribbon or go to Collaborate > Manage Collaboration > Worksets.


However for whatever reason, in Revit 2017 it is no longer possible to activate worksharing via the Workset button. It is only possible via the Collaborate tab > Manage Collaboration panel > Worksets. In Revit 2017 you will be prompted to save the newly created central file before you can proceed.


Hit the New button to create as many worksets you require, then select OK.


When saving the project you will be warned that you are about to create a central model. Select Yes to proceed.


Once the central model has been created, you can then use the Synchronize With Central command and relinquish all the worksets you just created and hence own. Similarly, you can use the Synchronize With Central command when you are ready to publish your work to the central file for the rest of your team to see. Using Synchronize With Central also acquires all the changes that other team members have made and loads those into your local file. You can access this command in a couple of ways:

  • Collaborate tab > Synchronize > Synchronize With Central
  • Use the Synchronize With Central button up in the top left. This button has a lightning bolt on it and is different to the normal save button, which only saves your local file without publishing to central.

For both options, ensure to check all the available check boxes so that you relinquish elements so that your teammates can work on them.


Now that you’ve made a central file, you should work in a Local File from now on. There are two main ways to do this:

  • Firstly, you can simply open the network location of the central file and drag a copy from the network to your desktop or anywhere on your C: drive. Be careful not to move the file – only copy it. This option is fine but you must repeat this option each time you want to open the file so that when you open it, it will have the latest information from the Central file in it. Otherwise there is a risk that your local file will be out of date and have trouble Synchronizing with Central.
  • The second option and preferred option, is to use the open command, browse to the central file and open it. By default, it will be set to ‘Create new Local’ file. This prevents you from accidentally working in the central file, which can corrupt the file.


Dynamo view analysis

In this previous tutorial I demonstrated how to undertake various view analyses in Grasshopper with Ladybug. Some of these analyses can also now be performed in Revit within Dynamo. This tutorial will show you how to create a 2D isovist by creating filled regions and if desired, assigning the fitness of the view to a room parameter in which it is associated.


One of the simplest methodologies for undertaking a view analysis is to use an isovist. An isovist is the volume of space visible from a given point in space. Isovists are naturally three-dimensional, but they may also be studied in two-dimensions. Back in June, Nate Miller updated his LunchBox Dynamo Package to include a new isovist node, ‘Intersection.CreateIsovist’. Furthermore, with the release of Dynamo 1.2.0, there is now the ability to create filled regions with the ‘FilledRegion.ByCurves’ node. This means that not only can isovists be analysed but they can be visualised and documented within a Revit project. This is beneficial for projects where visibility is importance, such as urban planning, shopfronts in a retail mall, or patient visibility from a hospital’s nurse station. In this scenario, the ‘fitness’ of the solution can be considered the area of the isovist. The larger the area, the greater the visibility.



To simply the workflow I have created the ‘FilledRegion.ByIsovist’ node in the BVN Dynamo package. The script requires an element to define the centre or eye location. I have used a setout point generic annotation family for this. Once the script is complete, this category can then be turned off via visibility graphics if desired.



Next we need to select the walls which will act as a boundary for the isovist. The easiest way to do this on a floorplate is to select a couple of walls and then isolate by category. This will allow you to select all the walls by dragging a rectangular window. (Note that you are unable to shift select multiple elements in Dynamo). The isovist will conform to any window or door openings in the walls.




Revit annotations

Annotations in Revit are view specific meaning that you will need to duplicate annotations for each view. There are many types of annotations, including the following:


Tags are text labels for elements such as doors, walls, windows, rooms, and several other objects that architects typically need to reference in a set of drawings. These tags typically refer to other schedules or information in other portions of the drawing set and are unique to the view they are inserted within. In Revit, tags are intelligent, bidirectional symbols that report information stored in an object’s properties. You can enter a value directly into the family properties or right into the tag itself.


Once you’ve tagged an element and given the tag a value, the element will retain that value until you remove it. The value lives with the elements within Revit; it is not a property of the tag. This allows you to delete or remove tags without any fear of losing the data entered into the tag. It also means that once an element is tagged with information in one view, that same element will report that same information in any other view that it is tagged in without you having to have the information entered twice.


When families such as doors and windows are placed into the project, they are automatically assigned a unique Mark number. These are sequentially numbered in the order they were placed.

To tag doors, go Annotate > Tag > Tag by category and select the door. To tag multiple objects at once you can use the Tag All button, Annotate > Tag > Tag all. Depending on the Door tag family loaded into the project, different information might be shown. However, typically it will be just the Mark value. The family’s mark number can be found in the Properties window. To change the door’s Mark value, you can either change it via the Properties window with the element selected, clicking on the tag itself, or within a schedule.


Doors and windows should be numbered logically. For example, typically they will be prefixed with the Level or Room Number is belongs to, as well as being numbered clockwise. Refer to this tutorial for automating the process of renumbering rooms.


Dimensions are used to convey the distance or angle between elements or parts of elements. In Revit, a dimension is a bidirectional annotation that essentially tags distance or size. This means that you can edit the distance directly within the dimension string to move elements to a specific distance apart; likewise, the dimension updates automatically as the distance between elements changes. Dimensions are annotations, making them view-specific elements that appear only in the view where they’re drawn. The Dimension tools are located on the Annotate tab. Like all annotations in Revit, dimensions adjust to the scale of the drawing. They will always appear at the proper scale in the view. If you change the view scale, the dimensions automatically resize.


By default, a linear string of dimensions only dimensions parallel entities. Nonparallel elements by their very nature have a dynamic dimensional relationship. Dimensions in Revit always read from the bottom or from the right following the standard architectural sheet layout conventions. To place a dimension, choose any dimension tool and begin selecting entities in a sequence. You can keep selecting multiple entities in a given direction creating a dimension string across your drawing.

Once the dimensions are placed, you can relocate them by selecting the dimension and grabbing the blue grips. By selecting and holding on this element, you can move the witness line to a new host element without having to recreate the entire dimension string.


Ensure that you only annotate only what’s in your scope of work. For example, don’t indicate structural sizes. Instead have a general note saying ‘Refer structural drawings’. It is the contractor’s obligation to read all sets of documents in conjunction. By going beyond your scope of work you are opening yourself up to liability.


In Revit, rooms are 3D objects. In addition to indicating the room name and area, they can be used for 3D environmental analysis. To add a room, go Architecture > Room & Area > Room. Select the zone you want to add the room. Revit will automatically find the bounding walls. However, be aware that there are multiple ways to calculate a room’s area. To change how Revit calculates the area, go Architecture > Room & Area and hit the arrow to see more options, and select Area and Volume Computations.



Keynotes are a means of annotating model elements. Rather than simply being discrete strings of text used to label things, they are a family or class of objects linked to model elements. This means that each instance of annotation will always be associated with the same object and that if one instance is changed, so will all the others.

In this way, annotations do not have to be typed over and over again. Instead, keynotes are defined in a tab-delimited text file, and linked to the relevant objects using the keynoting tool included in the BIM software. For the same reason, keynote text cannot be edited directly where it appears – it has to be edited in the keynote *txt file.


Keynote codes can be entered directly in the keynote parameter field of the Family Type dialogue box but it is generally easier to use the keynote *txt file, where all keynotes can be seen as a group. If the keynote in the text file is different to one already entered in the dialogue box, the keynoting tool will overwrite the one in the dialogue box if it is used on that object. Keynotes are generally associated to a country’s specification system. For example, in the UK the National Building Specification (NBS) is used to describe the materials, standards and workmanship of a construction project. In Australia, NATSPEC is used.




Schedules are important as both a Quality Assurance (QA) check and also as a documentation system. Typical schedules include: doors, windows, walls, furniture and equipment. To create a schedule:

  • Go to the Project Browser, right click on Schedule/Quantities > New Schedule/Quantities. Alternatively go View > Create > Schedules > Schedule/Quantities.
  • Select the category, e.g. Doors.
  • In the fields list, select the desired fields and click Add. Typical fields include: Level, Mark, Width, Height, Fire Rating and Family and Type.
  • Under the Sorting/Grouping tab, set sort by to Level, and check the Header and Blank line boxes.
  • Still within the Sorting/Grouping tab, set the ‘Then By’ to Mark.
  • Under the Formatting tab, select the Level field and check the Hidden field box. This ensures the Level is not repeated for every entry. Rather it will show up in a heading that we created in an earlier step.
  • Hit the OK button.
  • Selected fields in the schedule, for example, Mark, can be edited directly within the schedule and are often faster than editing via the plans.


Revit startup – Beginners

When teaching an introductory Revit class I’m often asked ‘where do I begin?’ Here is a step by step workflow to help newbies get up and running.



Step 1 – If tracing a design, vectorise drawings (optional):

  • To import a raster image in AutoCAD, type ‘XR’ to bring up the External Reference window and select Attach image (*jpg). Scale the image as required and trace.
  • To import a raster image in Rhino, go View > Background Bitmap > Place (*jpg). Scale the image as required and trace. Save file as a *dwg for import into Revit.
  • If the file is a *pdf, you can open the file directly in Rhino. Save the file as a *dwg for import into Revit.



Step 2 – Clean up the CAD drawings prior to import (optional):

  • Delete anything unnecessary, e.g. hatches. The simpler the better;
  • Flatten;
  • Purge unused;
  • Audit; and
  • Reposition to 0,0,0 if necessary.



Step 3 – Link *dwg plan in to Revit (optional):

  • Visibility Graphics (VV) > Model Categories > Site > Project Base Point, and check the box. This is Revit’s internal 0,0,0 point. It is best practice to also use this as your 0,0,0 point as if you move it too far away you will get rounding errors. To find out more about this topic, refer to this tutorial.


  • Link CAD plans. Insert > Link CAD (*dwg). Click to place the drawing anywhere and move so that the intersection of your grid (A1) aligns with the Project Base Point. Ensure that you ‘Link’, not ‘Import’.


  • Note that if your *dwg contains both plans and sections/elevations, you are best to separate these out into separate files as you will not be able to import the same link into both a floor plan and section.
  • Pin the base plan. Select the CAD plan > Modify > Modify > Pin (PN). This will prevent the plan from accidentally moving.


Step 4 Setup grids:

  • Architecture > Datum > Grid. Draw or copy as required.
  • Pin grids to prevent them from accidentally moving. Select all the grids > Modify > Modify > Pin (PN).



Step 5 Setup levels:

  • Create section to see level by going View > Create > Section. Draw the section mark. Right click on the section mark and select ‘Go to view’.



  • Create levels. In the section view, drag the level markers to the correct height as required. To add additional levels, Modify > Modify > Copy (CO) to copy up, or Architecture > Datum > Level to create new ones. Note that levels are 3D elements and that depending on where you create your section, you may or may not be able to see the levels.



  • Ensure that you have the ‘Make Plan View’ enabled when creating levels as it is possible to create levels without an associated floor plan. If you accidentally forget this, go View > Create > Plan Views  > Floor Plans and select the levels for which you want new views.



Step 6 Setup sheet list:

  • This will be your deliverables list. To create a new sheet go View > Sheet Composition > Sheet. Alternatively, you can go to the Project Browser, and right click on Sheets and select New Sheet.



  • Drag and drop views onto the sheets. Remember that a view can only exist on one sheet. If you want to show it twice, you’ll need to duplicate the view and assign each to a separate sheet.



Step 7 Conceptual modelling in Rhino/SketchUp/Maya/etc (if required):

  •  Revit has limited ability to deal with complex forms. If you need to incorporate this step, refer to this tutorial for more information.



Step 8 – Commence detail modelling in Revit:

  • Architecture > Wall: Architectural. Set the location as required (usually ‘wall centreline’ or ‘finished face exterior’). Under Draw, select ‘pick lines’. Pick the AutoCAD lines to recreate as walls within Revit.

Like anything, the trick is to start basic and gradually increase the level of detail. Best practice is to model how you would build it. Happy Revit-ing!


Revit’s coordinate systems

Navigating the complex world of Revit’s coordinates system can be tricky. There are plenty of tutorials available that explain how to set up shared coordinates in your project. (Check out Do-U-Revit and the Autodesk  University 2013 tutorials, both by David Baldacchino). However, what is often overlooked is Revit’s ‘internal’ coordination system, also known as the ‘startup location’, which is equivalent to 0,0,0. If you plan on using any of the interoperability plug-ins to transfer geometry from Rhino to Revit, then understanding how this system works is crucial.


When you first start a new Revit project, the Project Base Point is located at its default startup location. This is Revit’s internal coordinate system. Even if you reposition the Survey Point or Project Base Point, or setup shared coordinates, this point does not move. Ideally, you want to model around this point, for example, making it the intersection of grid ‘A1’.


So why is this important? If you plan on working solely in Revit, it’s not a major problem. However, when using interoperability plug-ins such as Hummingbird or Grevit, the Rhino geometry being imported will always be relative to the project’s startup location. If you have used an arbitrary point in space as your setting out point, then this coordinate system needs to be replicated in Rhino/Grasshopper. This may mean you need to re-work your grasshopper script which can be very time consuming.

To test if your project base point has been repositioned from its default startup location:

  • Turn on the Project Base Point (Visibility Graphics > Site > Project Base Point).
  • Select the Project Base Point and unclip it (paper clip with slash).
  • Right-click and select move to start up location.


If the Project Base Point moves, it has been moved from its original start up location. There are only really two options to fix this:

  • Unfortunately, neither the ‘specify coordinates at a point’ or ‘relocate project’ commands will physically move the geometry. Rather it will just change the value of the coordinate and keep the start up location in the same place. Therefore, the first option is to select all the Revit geometry in your project, group them, and then physically move the geometry. The later this is done in a project, the more difficult it will be. It will obviously cause problems with 2D drafting information and sheets.
  • If your model is too far progressed to physically move all the geometry, the second option is to keep everything where it is and calculate the translation vector. To do this, first mark with a model line where the current Project Base Point is located.


Next, unclip the Project Base Point and move it to its startup location. Mark this location with another model line before moving the Project Base Point back to its previous position.


By drawing a line between these two points, we can calculate the translation vector. You then have two options:

  • Incorporate this translation vector into the end of your Grasshopper script, or
  • Import the Rhino/Grasshopper geometry as-is, group the new geometry, and then physically move the group into the correct location by snapping to the newly created translation vector.  Obviously if you plan on continually re-exporting and importing geometry from Rhino, this will become quite time-consuming.


The lesson here is simple. Model correctly right from day one and save yourself a ton of time in the long run.

AU 2016 Wrap Up

Approximately 10,000 delegates attended this year’s Autodesk University (AU) which was hosted at the Venetian Hotel, Las Vegas from 15-17 November.  The theme this year was ‘The future of making things’.  As usual, the conference opened with keynote lectures from CEO Carl Bass and CTO Jeff Kowalski. Kowalski opened the keynote by talking about Artificial Intelligence (AI), Machine Learning, Generative Design, Virtual Reality (VR), and Robotic systems. These themes are not really new and have been a staple at AU conferences over the past few years. Next up was Carl Bass who spoke about technology disruption. Using the automotive industry as an example, Bass spoke about the issues facing traditional automotive manufactures: Autonomous vehicles; ride sharing, and electric powertrains. Many of the automotive companies accustomed to making vehicles to drive and own, are now having to reinvent themselves to produce cars which are not purchased but rather offer a service focused on a passenger’s experience. The lesson is simple – regardless of the scale of your company you still need to experiment and be proactive with new ideas and technologies.



Grand Canal, The Venetian


Opening keynote


BVN delegates at the keynote (L-R) – Scott Crichton, Jan Christel, Andrew Mehr and Paul Wintour


Hack Rod Coyote chassis – automotive chassis fabricated to match optimised geometry



Bass also spoke about machine learning to write software stating that in the past, the only way to get software to improve was to either re-write it or run it on a faster computer. However today, deterministic software writing is being replaced by machine learning. This enables software to learn and adapt. Bass concluded by stating that historically, Autodesk has been focused on building tools for individuals. But that just like the automotive industry, they are adapting by developing a new generation of building tools for teams.


Day two saw the Product Innovation keynote from Amar Hanspal, Senior Vice President, Product. This was a really insightful talk, as never in the history of AU has there been a complete overview of all products in a single session. Autodesk have created three streams within their products: Architecture, Engineering & Construction (AEC) with Autodesk BIM 360, Product Development & Manufacturing with Autodesk Fusion 360, and Media & Entertainment with Shotgun. Showcasing software of all three streams had the interesting side effect of clearly highlighting how far AEC is behind the rest. Within the AEC steam, there were several significant updates:

  • Autodesk Live – This was actually released July 2016 with the aim of transforming a modelling environment into an interactive experience. The latest release now fully supports VR and can be done with two clicks direct from Revit.


Autodesk Live on demo at the exhibition


  • Project Fractal – Still in alpha phase, Project Fractal allows users to explore the ‘design space’ of parametric models created in Dynamo Studio. (Note that it is not yet available in Dynamo for Revit). Project Fractal operates in similar manner to Grasshopper’s Galapagos by allowing multiple design options to be produced from a set of input parameters. However, Project Fractal is not yet developed enough to adopt generic algorithms and instead utilises brute force which is a significant limitation.


  • BIM 360/ Project IQ – BIM 360 is actually a suite of applications: Team, Docs, Glue, Layout, Plan and Field. Think of it as the lovechild of Aconex/Newforma/Revitzo where models and documents are integrated, correlated and accessible in a common data environment. Autodesk are looking to add to this ecosystem with Project IQ. Just like voice recognition software such as Siri, Project IQ aims to provide intelligent assistance by mining construction project data and applying machine learning and analytics.


Those wanting updates or fixes to existing software will be someone disappointed. Autodesk appear to be focused on migrating their products across to a platform known as Forge. First introduced last year, Forge represents a push by Autodesk to integrate products and services under a common set of APIs. Forge is thus the common platform for cloud-based micro-services.

The big announcement of probably the whole conference was ‘Project Quantum’. Project Quantum is touted as the next-gen BIM ecosystem built with Forge APIs. Project Quantum aims to evolve the way BIM works in the cloud through integrated platforms and experiences. Hanspal describes it as ‘not a single, monolithic, giant app, but really a family of web and mobile experience or workplaces that a woven together into the common data environment and that are kept in sync through a common communication bus.’ Thus it is not a single platform – It is a single experience across multiple platforms. While the details of Project Quantum are still in its infancy, here are some key points:

  • Like Flux and their motto ‘exchange data, not files’, Autodesk note that the current desktop and file format paradigm has made interoperability difficult. This has resulted in a new job role, that of the ‘data wrangler’.
  • Since no one program ‘owns’ the data, it is not a universal, native model. This marks a shift in how other team members interact with the data. Rather than trying to create a federated model (which as so many BIM managers loath to do currently), under Project Quantum buildings would be broken down into systems – façade, structure, internal partitions etc. Since not everyone needs the entire building’s detail, only certain data would be shared, such as coordination points. So rather than compiling a super-heavy, native Revit model, multiple models would exist which are all coordinated and in sync.


A diagrammatic workflow of Project Quantum


Using cloud-based systems affords the possibility of ‘branching’ and ‘merging’ in the design process. These are concepts which are ubiquitous in the programming industry and are used in applications such as GitHub. Not only is this a more flexible and agile working environment than simply using Revit’s design options, it affords the possibility for automatic revision-ing or ‘diffs’ to occur.


Branching and merging concept

In the past, interoperability has not been Autodesk’s strong suit. With the announcement of Project Quantum this marks a turning point in Autodesk thinking. It is now no longer about one particular software, namely Revit, but an ecosystem of specialised digital tools where data is distributed, yet can stay in sync. It is important to note that this is still in the development phase and is not yet commercially available. However, if Autodesk do manage to pull it off as prophesised than it could be a massive, positive change for the AEC industry. Given that Autodesk is already offering services via apps such as simulation and rendering, and more in their other software streams, it is not a far leap to imagine all design authoring tools transforming into a cloud-based micro-service.


In addition to the keynotes there was also a plethora of lectures on offer. Here are a few I visited and found useful:

  • Computation BIM workshop: Advanced – by Racel Williams, Matt Jezyk, Ritesh Chandawar, and Aparajit Pratap (Autodesk). The great thing with workshops is that often, it doesn’t matter what you think you already know, there will always be little nuggets of information that will surface that you never knew about. This was one such workshop. It covered topics such as lists, data types, dictionaries, replication, function passing, and ‘List@level’, mesh toolkit, and T-splines.


  • The Undeniable benefits of parametrics: A stadium-design case study‘ by Shawnee Finlayson (Arup, Sydney). Shawnee gave a lively and passionate presentation which demonstrated how every-day workflows could be improved and automated with Dynamo. Not only where these well-presented but they were backed with quantitative data to demonstrate their value in terms of time and resources, and hence cost. It was estimated that these tools reduce their documentation time by more than 500 hours (50%). However, what I found most compelling about the talk was the refreshing nature about how Shawnee implemented these tools into her office. Through a concoction of self-learning, perseverance, and in her own words, charm, she was able to convince senior management about the tools validity and to further investigate parametrics a methodology.


  • BIM for hotels: Revit automation for rule-based spaces‘ by Chiara Rizzarda and Claudio Vittori Antisari (Antonio Citterio Patricia Viel and Partners, Milan). This class was aimed at intermediate Revit and Dynamo users and demonstrated that hotel rooms are distinctively rule-based spaces. That is, there are a group of standardised key factors that govern its exact configuration. Once you determine those rules, you can use them to create the framework for a rapid generative exploration of alternatives. The class also illustrated how other useful applications including Revit’s Global Parameters, Flux and Venngage (data visualisation software) contributed to the workflow. But the main point I took away from the class was the notion of an instruments versus a tool. This idea is based on the work of the Russian science historian, Alexandr Koyré who theorised that tools merely extend our capability to do something in physical terms. On the other hand, instruments are the ’embodiment of the mind’ and ‘materialisation of thought’. While a tool plays a crucial role in helping us do something better before its invention, an instrument is something that allows us to see things differently and this is the power of computational design.


  • Revit API for Designers: Use cases for extending creativity‘ by Nate Miller and David Stasiuk. This course explored the use of the Revit API to enhance creative problem solving in the design process. Nate and David supplied boilerplate code, which was developed from their company, the Proving Ground. While this course was aimed at advance users interested in programing, it was great to see samples provided to help those people interested in creating their own stand-alone parametric interfaces with the Revit API.


  • Design Computation Symposium  featuring Industry leaders including David Gilford, Valentin Heun, Rajaa Issa, Fred Martin, Martha Tsigkari, Ryan Welch. This was a half-day symposium covering a wide array topics investigating how technology is becoming a mainstream focus, with the rise of STE(A)M in education and allowing for computational literacy in schools no longer the realm of computer nerds and scientists. The wide array of topics covered included, trends in digital practice, the potential impact of computational literacy education and impacts on the future of design, real-world applications for design computation workflows, and how to identify opportunities for design computation in new and traditional workflows.


Of course AU is not AU without all the extra-curricular activities. A big shout out to Shaan Hurley for organising the morning runs. These were a huge success and gave people the opportunity to not just get some fresh air, but also an opportunity to informally hang-out with the Autodesk staff.


Morning run with the Dynamo team (L-R: Zach Kron, Ian Keough, Matt Jezyk, Paul Wintour & Scott Crichton).


Morning run: Paul Wintour & Scott Crichton

Attendees at the ‘Dynamo After Hours’ where privileged to see Ian Keough, godfather of Dynamo, ride a mechanical bull. Well actually it was more like a rooster…

The Flux party at Canonita saw CEO Jamie Roche outline his plans for Flux. It is great to see how far Flux has come and all the new and exciting developments they are making. I’m sure Autodesk is taking note of their success in developing cloud-based collaborative tools. It was refreshing to see almost, or at least what appear to be, the whole of the Flux team at the party. This was incredibly useful and allowed clients to speak directly to the various developers and not just a sales rep.


Overall I was significantly more impressed with AU over previous years. With announcements around Project Quantum and the continued development of Dynamo, I am more optimistic about Autodesk’s future. Let’s hope Autodesk is able to deliver on their vision outlined in the various keynotes and I look forward to seeing their development next year when AU returns from 14-16 November 2017 at the Venetian.