Pentagon Solutions | CAD & EDM Software | BIM Consultants

We may occasionally send you emails about new products, special offers, free seminars or other information which we think you may find interesting but we'll always treat your personal details with the utmost care.*

Are you happy to receive information from us?*


All our communications contain an unsubscribe link so you can opt-out at anytime.

View Our Privacy Policy

BS1192 Naming in Revit with Dynamo

Populating Revit with BS1192 drawing numbers with Dynamo

For those of us within the AEC industry using Revit and working to BIM Level 2 standards, will already be aware of the BS1192 Drawing Naming and Numbering convention for Drawings and documentation. 

Dynamo script for importing data from Excel is very useful to achieve correct standardised naming of files in accordance to BS1192, so let's begin...

For most this will look familiar;
Project Originator Zone Level File Type Role Number File Container
PS01 GP 00 01 M2 M 00001 PS01-GP-00-01-M2-M-00001
PS01 GP 00 01 M2 E 00001 PS01-GP-00-01-M2-E-00001

This is the 7 field library naming that provides a unified approach to identifying objects across data sets and associated tools, but how do we get this from an excel spreadsheet into Revit at the click of a button?

First of lets start Revit 2017 and launch Dynamo through Revit. This is done through the Manage Tab – Visual Programming Panel and selection Dynamo form the drop down. Click on the new Lets start a new Dynamo file.

Dynamo 1

So lets add some nodes to bring our Excel information into Dynamo. The nodes that we need to link the excel spreadsheet are first of all “File Path” node. This allows us to link in an external file. “File.FromPath” allowing us to create an object from the linked file. We then have to get Dynamo to read from the excel file. To do this we use the “Excel.ReadFromFile” Node. We Also want to tell Dynamo what sheet in the excel spreadsheet we are wanting to extract the data from. To do this we add a “String” node and give the string the value of the sheet name. For example if the sheet is named “DRAWING NUMBERS” then this is what you enter into the string node. Bare in mind that this is case sensitive. Once we have these starting nodes loaded lets joint them together.

Dynamo 2

Right, so now that we have linked the required information into Dynamo, we now need to organize it. We need to list the data that is contained within the excel spreadsheet, to do this we use the node “List.Transpose”. From this list we can start to get items from the spreadsheet use the “List.GetItemAtIndex” and user the “Number” node to tell Dynamo what column within the spreadsheet to reference to. So a 0 in the number node will reference column 1. So let’s join them together.

Dynamo 3

Now we have the file linked into Dynamo and we are telling it where to look in the spreadsheet. now lets take that from Dynamo and populate some sheets with the information within the excel document. To do this we require 3 nodes. the first one is the “Sheet.ByNameNumberTitleBlockAndView” allowing Dynamo to create the sheets within Revit. You need to then specify the titleblock family that you want to use. For this example i have specified the pre-loaded example. To specify the titleblock you need to load the “Family Types” node and specify the family. To  get this to work you also need to place a view on one of the sheets. Use the “Views” node to specify a view to add to a sheet. This will only add the selected view to one of the sheets. Add them all together and you are almost there.

Dynamo 4

Click “Run” if you haven’t got automatic on and check the project browser to see the populated sheets with the numbers from the spreadsheet.

Dynamo 5

There we go. A simple and fast way of populating titleblocks with their file container number all from a spreadsheet.

Interesting in finding out more or perhaps fancy going on a training course? Request bespoke training or view our current Autodesk public courses via:

By Matt Hull, 

AEC Software Consultant, Autodesk Certified Professional

Original post HERE

We would like to keep you informed by email. Are you happy to receive information from us? *