Revit 2021 Tutorial – Structural Data Extraction Part 1

It has been a while since my last post, and surprisingly, I have been very busy working from home with all sorts of projects, software development and online training/consultancy engagements. It is good to know the world is still turning!

Anyway, perhaps some of you have less demands on your time and something I wanted to share was the ‘easy’ method of extracting data and metrics from your Revit models without expensive software or Dynamo skills. When we think/talk about BIMs the important part is really the information that is held within your very expensive Revit models. Only a select few have the privilege of looking into this sea of data. In this tutorial we will take a look at how you can extract some basic information from Revit and present this in meaningful ways using MS Power Bi. You could do some of these things just with MS Excel, but MS Power Bi is much better a presenting and sharing data visualisations.

Part 1 of this tutorial writes data to MS Excel and Part 2 will show some basic operations to read this into MS Power BI and create some data visuals.

The only software you will need is Revit and MS Excel/MS Power BI.

However, if you do not have the MS Excel drivers you can download and install the AccessDatabaseEngine_X64.exe from the link below,
Then run ODBC Data Sources (64-bit) and Microsoft Excel Drive (xls, xlsx, ….) can be found.
Make sure MS Office installed is 64-bit.

Below is an extraction of an automated report showing the Revit categories and total material consumption. So much easier to understand the data when presented in a graphical form.

Structural Materials from REvit

So, let us start by looking at ODBC. Some of you may have seen the option to export to ODBC within the Export options of Revit. If you have not seen this, then the image below shows how you can navigate to this option.

Revit ODBC

ODBC is an acronym for Open Database Connectivity and it essentially is a tool to connect databases together. Most of us will know that Revit is fundamentally a database with a graphics engine for the visualisation of the building elements.

The ODBC option gives us a simple platform to extract data from a Revit project and view the data in applications such as MS Excel, traditional databases, or software tools such as MS Power BI.

Lets first create a new MS Excel file to store our data. Open Windows Explorer and create a new Microsoft Excel Worksheet by right clicking and selecting the New option.

Create New MS Excel Workbook

Name the workbook RevitDataExtraction.xlsx

Lets now configure the ODBC Datasource!

The first step to export some Revit data is to configure a data source, I am assuming we are all using Windows 10 so this will be for 64-bit systems. To access the ODBC Data Source Administrator, type ODBC at the search bar.

ODBC Data Source Administrator Search

You will then see the ODBC Data Source Administrator dialog box. Here you will see data sources that are already configured. We are going to Add a new Data Source. Click Add

ODBC Data Source Administrator

There are many options here but to keep things simple, select the Microsoft Excel Driver option as shown below.

Create New Data Source

Click the Finish button. You should then be presented with the ODBC Microsoft Excel Setup dialog box as shown below.

ODBC Microsoft Excel Setup Dialog

Click the Select Workbook button and browse to the MS Excel document you just created. The file navigation is very old so be warned!

Once you have located the Excel workbook you need to give the Data Source a name. In the below example I am naming this DataExtractionFromRevit

ODBC MS Excel DataExtractionFromRevit

Click OK

You will now have your data source configured.

ODBC Data Source Configured

Click OK to the ODBC Data Source Administrator dialog.

Extracting Data from a Revit Model

Now that the ODBC driver is configured, we can use this data source to extract information from a Revit model. To begin, lets extract data from a sample file that ships with Revit. Click the File Ribbon, then Pause over the Open command and select Sample Files from the menu.


From the Open dialog select rst_advanced_sample_project.rvt. This is a basic structural model with a variety of elements that will serve as a tutorial.

The model should look like the example shown below.

rst_advanced_sample_project Tutorial

We are now ready to extract the Data. From the File Ribbon select Export and then ODBC Database as shown below.

Revit ODBC

From the Select Data Source Dialog click the Machine Data Source tab as shown below.

Machine Data Source

Once in the Machine Data Source Tab, select the Machine Data Source that we just set, ‘DataExtractionFromRevit’.

Revit Select Machine Data Source

Click OK

Select your workbook and click OK

Select Workbook

There should now be a slight pause while Revit writes the data to our MS Excel document.

Open your Excel file and you will notice that the categories are arranged as work sheets. Scroll to the Structural Columns and you should see the following data. Each column has a separate row with all the data displayed.

Excel - Structural Coulmns

It is worth noting that if additional shared parameters are added, these will also appear in the workbook.

In the next session we will use Microsoft Power BI to present this data!

Hope this was useful,



Revit 2021 – What’s new in structures

So, it’s that time of year again to review and comment on the new features and improvements in Revit 2021, as always, I will focus on the structural features and mention a couple of core platform features which will be useful. Don’t forget to check out the new features in 2020.1 and 2020.2 as I will not be reviewing these in this blog post.

Before I take a look at the structural features lets look at a platform feature which many have been waiting for a very long time! The ability to rotate section heads, elevation heads and detail callouts. I think every time I create a template or train Revit; someone always asks if the sections can be rotated. Having said that, most now simply accept the standard way in which sections are presented but if you want to change the section heads then you simply open the family and check the ‘Rotate text with component’ option.

Revit 2021 - Rotating Section Heads

Another useful platform feature is the ability to enable filters that are setup in the filters tab of the Visibility/Graphic Overrides dialog. This is particularly useful as in previous releases you would need to remove the filter to return to the default view but now you can simply deactivate and reactivate with a simple checkbox.

Enable in View for Visibility Graphic Overrides

Another welcome addition is specific categories to support structures such as bridges and tunnels. These new categories have been created to support workflows with Autodesk Infraworks but I am sure will be put to good use with all sorts of structures. In the past I have been using the generic model category with subcategories for items such as bearings, abutments etc. However, in testing I did not see a method of creating your own families and applying these categories. Hopefully this was just a glitch!

Revit 2021 - Infrastructure Bridge Workflows

Anyway, let’s move on to the new and improved structural features of Revit 2021! I will break this down into two separate areas, concrete and steel.

Concrete New Features and Improvements

I don’t think a single release has passed when a new feature or improvement for rebar has not been implemented and the same is true for this release. Let’s start with the improvements to shape codes. Autodesk have now implemented a method of generating shape code 98 (the chair) which will be very useful for contractors and some consultants that want to show this detail. In the image below you can see two chairs placed to separate the top and bottom layers of rebar.

Revit 2021 - Shape Code 98 - Chairs

The new shape is part of the structural template that is shipped with Revit 2021 but you can easily make the new shape be overriding the hook lengths. Autodesk have now configured all rebar shapes to have a rotatable hook that can be overridden for each instance. In the image below you can see Shape Code 98 in the shape browser.

Revit 2021 - Shape Code 98

Lets now move on to an improvement to an existing command, rebar constraints. You can now place and edit multiple rebar constraints in the same command. For example, if you are constraining the new chair to the top and bottom layers and also constraining the width of the chair, this can now be achieved in the same constraint command. A huge improvement.

Revit 2021 - Place Multiple Rebar Constraints

Fabric reinforcement has also been improved by having the same view visibility states as ‘standard’ rebar. This means that you can now view the fabric reinforcement as solids in 3D. Another issue with older releases was that the fabric would not display correctly when viewed in section. The fabric now sections and behaves perfectly in all views! In the example below, you can see the fabric viewed as a solid with flying ends displayed.

Revit 2021 - Fabric Sheet Reinforcement

Steel New Features and Improvements

The steel tools had a huge leap in the last two releases, strengthening the ability to place standard connections, design the connections to EC3 and create custom connections. To really make a useful set of tools for steel fabricators, who will get maximum use from the connection tool, Autodesk need to implement a documentation tool like Advance steel for the production of drawings and CNC code for the machine tools. Whilst we can transfer the Revit model to Advance Steel for fabrication, in reality, many fabricators will not want to take on the risk of directly using the consultant’s model.

However, there are a few new steel modelling tools that will help with the production of drawings for consulting engineers.

Revit 2021 - Structural Stiffeners

Stiffeners can now be placed using the same style of connection tool. You can place a single stiffener at a point or place multiple stiffeners along beams or down columns. In the image below you can see the new connection type.

Revit 2021 - Structural Stiffener

To allow correct documentation of the setting out of stiffeners, Autodesk have implemented the ability to dimension to plate centres. This will allow the stiffeners to be set out and dimensioned as below.

Revit 2021 - Dimension Stiffeners from Plate Centre

All in all another strong release for Revit, particularly for the concrete workflows and interchangeability with infrastructure.


Back to Basics – Tagging Revit Elements

In my last post on Revit content I showed better methods of creating Revit families that perform well in both the 3D and 2D environment by automating detailing and facilitating faster modelling and setting out.

In this post we will look at the humble tag family and see how these can decrease errors in drawings and reduce the amount of text that you use to embellish your model views. In the image below you can see a beam and foundation both tagged and displaying the type name.

Revit Beam and Foundation tagged

There is a fundamental flaw using the type name as, if the user edits the dimensions of the element the type name will need to be added manually and you also run the risk of forgetting this or making a typo! In the image below you can see the Type Name and, in the case of the footing, the Foundation Thickness, Width and Length.

Revit Foundation Type Properties

A more productive method would be to actually read the dimensions of the element. In the image below you can see, in this case, a Structural Foundation Tag being edited, and the Type Name replaced with the parameters that control the size.

Revit Tags - Edit Label Dialog

Of course, you could use this technique for any Revit element. If the parameters do not exist, then ensure that you create these as shared parameters so that these can be tagged and scheduled. In the example below, a face-based model has been used to cut a penetration through a Revit element, the opening is detailed in plan with symbolic lines and a tag is calling up the dimensions and use for the opening. This is very useful if you want to change the use as all the tags will update at once.

Revit - Tagging Structural Openings

Please take a look at the YouTube tutorial where you will see these examples in action!


Rebar Code Checking with Dynamo

Those that are currently modelling their reinforcement in 3D already know the advantages of automated bending schedules. In this tutorial you can see a method of checking your rebar against codes that ensure that the bar can be fabricated and bent to the shapes and lengths specified.

This aspect is often overlooked and can be a useful tool to validate your work and provide simpler methods of checking the model. In the image bellow you can see a screen capture of a ‘3D checking view’ that shows unchecked rebar in Yellow, rebar that meets design codes in green and failures in red. This data can also be shown in bending schedules to identify issues.

Revit Rebar Checking

This is a fairly big Dynamo script that could definitely be reduced with more use of IronPython. The image below shows the overall graph. The green groups are inputs, grey is data processing and blue is outputs.

Overall Rebar Checking in Dynamo

The graph begins by recovering all the rebar in the project. The bars are then separated, straight bars and bend bars.

Get all rebar - Dynamo

Once the straight rebar is isolated you can then check for bars that are over stock length or do not conform to code 01 (i.e. bars that should be 6 or 12m). This is done with some simple design script such as ‘A != 6000 && A != 12000’ which effectively loops through the rebar and isolates all bars that are not 6000 or 12000.

Check rebar is not over stock length

I have then used some IronPython to create lists that store if rebars are OK or need checking and if errors are found, report on the code failure. This type of iteration through lists is much more compact using simple python scripts.

IronPython to check rebar

There is too much detail to show in this post but take a look at the YouTube video which will show the script running. I also step though each group so you can understand how the graph is composed.