Revit Database

It has been a while since I want to export a whole Revit project to a database. I had a few prior experiences with MySQL and the SQL management software Toad, but never with the Revit database.
This time, I decide to use the SQL Server, along with its SQL Server Management Studio, the solution developed by Microsoft.
During my first research for exporting the Revit database, I came across the Revit DB Link, a plug-in available at Autodesk Subscription website. This add-in allows to export the Revit database, but also to edit this database and import it back into Revit.
Using it is pretty easy when you have all the correct software installed.

Exporting

First, you have to configure a new connection. After starting the Revit DB Link add-in, select [Select a new connection] in the ODBC panel, and click Export:

LinkInterfaceType a name for your export configuration, and select New. Select the SQL Server database, and follow the indication for creating the link file toward your database.
At this windows, fill in the description of your database, and select the SQL server you want to connect. Here, I am working with an SQL server named SQLEXPRESS:

DBSelection
Select a specific database for this export. I have created mine through SQL Management Studio before starting my export. After a summary page, the connection is established.
The export run smoothly, and I get a bunch of tables, one per Revit category, along with others with a more cryptic name.

Using

One of the most obvious application is to create multi-model schedules. Creating a schedule on multiples Revit files can be very tedious, especially with large models. Exporting every Revit files in its own database allow us to merge quantities with a simple UNION SQL command. You just have to make sure to export each new model to a new database to avoid DB link to override previous model export.
Most parameters editable in Revit can also be changed in the database and imported back in Revit model.
As an example, you can edit duct width in the database, and import back values to modify the Revit duct sizes:
 SQLEDit
Before:
BeforeAfter:
After
There is also some specific tables to access relations between Revit objects.
For example, the DoorWall table links each door with its hosting wall. The RoomAssociations table allows us to retrieve every elements inserted into a specific room, to create furniture schedules for example.
Exporting the Revit database to an SQL Server can be a very powerful tool, and provide us new means for creating complex schedules.

4 thoughts on “Revit Database

  1. I have setup a connection between Revit 2016 and SQL using DB link 2016 Add-in. I have noticed that the material quantities table have multiple primary keys (3 to be exact) which allows to have different materials for the same elements when the model is exported. As per my understanding each export should delete the previous record for the same material. On the other hand I can understand that an element may be composite in nature so multiple entries are needed.

    But for the quantities if I add up the volume than this is greater than the total volume of elements. Has somebody experienced this issue? Is there a way to work around it?

      • Hi Simon,

        Just make a wall and export. Change the material of the wall and export again. You will notice that there are multiple entries in the MaterialQuantities table with same element ID.

Leave a Reply

Your email address will not be published. Required fields are marked *