A couple of weeks ago, I was reorganizing all the rooms in my Revit model. The room numbers and departments were shifting around and I needed to update all the rooms to reflect the new organization. I’d been putting this off for a few days. It’s not an exciting task but it had to get done so I rolled up my sleeves and got to work.
I find it a lot easier to work in a tabular format for this type of task so I created a room schedule in Revit. Since this was going to be a working schedule and wouldn’t appear on a sheet, I set it up to show only the data that was changing.
This method works pretty well. It’s a lot faster than clicking each of the room objects in the model. However, I wish schedule views worked better. I wish I could easily copy a value to multiple cells. I wish I could drag a number down and it would increment at each cell. I wish I could add more advanced formulas. Basically, I wish schedules worked more like Excel.
Fortunately, it’s easy to link your Revit data to Excel. It’s even possible to edit your Revit model directly from Excel. Sounds pretty cool, right?
Working with Excel
I’m a big fan of Excel. I’ve written a lot about it here on ArchSmarter. I figure in a given week, I probably use Excel almost as much as I use Revit. Given the data-centric nature of BIM, Excel is a great tool for maximizing the value of your BIM data. The trick is getting that data out of the model and into a format you can use.
So what’s the easiest way to link Revit and Excel?
4 Ways to Link Revit to Excel
There are four different ways you can link Revit to Excel. The best method depends on the type of data you’re working with and what you’re ultimately going to do with that data. Some methods are strictly a one-way export. Other methods create a true two-way link between Revit and Excel. With a two-way link, you can edit your model directly from Excel.
Here are the 4 ways you can link Revit to Excel:
1. Export a schedule
The easiest way to get data out of your model is to create a Revit schedule then export it directly to Excel. This method works great if the data is straightforward and can be captured in a schedule. Things like room schedules and drawing lists are great for this method. Keep in mind that this is a one-way export. There’s no link between Revit and Excel so any changes you make in Excel will need to be updated manually in Revit.
To export the data, first make the schedule your active view. Click the Revit button then click the “Export” from the list. Select “Reports” then choose “Schedule”.
2. Use an add-in
I’ve written about Revit add-ins in a previous post. Two good ones for working with Excel are Ideate BIMLink and Exceler8. Both these options allow you to export data out to Excel and import data. They’re not free but both come packed full of features that you’ll find essential if you’re doing some heavy Revit to Excel work.
3. Write your own macro
If you want to get your hands dirty and write some code, it’s fairly easy to write a macro to import and export data to Excel. Jeremy Tammick over at The Builder Coder wrote a great post back in 2012 on writing your own parameter exporter.’
I’m working on a macro version of Jeremy’s parameter exporter which I’ll make available in the ArchSmarter Revit Macro library. Don’t have access to the library? Sign up for email updates and get access to all the ArchSmarter Revit macros.
4. Create a Dynamo script
Dynamo is a visual programming tool for Revit. Instead of writing code, you use nodes to graphically construct your program (or graph in Dyno-speak). You link the nodes together in the Dynamo editor to create the structure of your graph. Dynamo has full access to the Revit API so it’s a good alternative to writing macros or add-ins.
Dynamo is open-source so you can download it for for free. Once you’ve installed it, launch Dynamo from the Revit Add-ins ribbon. Check out the Dynamo Primer for more information on using Dynamo.
Dynamo is a great tool for what I call the “coder-doer” or the person doing the work who creates the tool to help them do that work. If you need a specific tool to solve a specific problem, you can create a Dynamo graph to get you there. It won’t be industrial strength. It probably won’t be pretty but you’ll get your work done. Here’s a view of the graph I created to solve the room problem I mentioned at the beginning of the post.
Want to see how I did this? I put together a video tutorial that walks you through the process of linking Revit room objects to Excel. As you’ll see, once I’ve created the link, I can edit the Revit model directly from Excel.
Here’s the video:
Conclusion
Linking Revit to Excel can be as easy or as complex as needed to accomplish your task. If you’re willing to get your hands dirty, you can even create your own tool using Dynamo or writing a Revit macro. Once you’ve created the link, you can really take charge of your Revit data and leverage the power of BIM.
So how are you using Revit and Excel? Do you have any tips or tricks for importing and exporting your data? If so, leave a comment below!
A quick note to add – for simple exports to excel it’s worth opening up the .txt file Revit creates and copying and pasting the information into a new tab in the workbook you’re going to be working in. When pasting you can paste as a link – therefore linking the data in the txt file to your workbook. Then if you need to update this info in future you just re-export the schedule from Revit and overwrite the .txt file. It’s not bi-directional but is a closer link and certainly speeds up updating.
That’s a great tip. Thanks Suzanne.
Hi. How do you paste the content from the text file to excel as a link?
Kelly – In Excel, use “Paste Link”. It’s an option in the Paste command.
I’m a big fan of the Revit DB link for exporting to access or sequel to use with excel.
Michael, Thanks very much for this information.
Thank you very much for sharing. Well done.
And you can also get the BIM One Excel Importer/Exporter for free! It is available from the Autodesk Apps Echange as well as on the BIM One Addins Manager.
Thanks Alexandre. I’ll check it out.
BIM One Excel Importer/Exporter is a winner, thanks for sharing.
Thank you for your sharing, it is really useful for my research. Just want to know that is it possible to finish the Quantity-takeoff from Revit to Excel by using Dynamo?
What do you mean by “finish the quantity-takeoff” ? Do you want to extract quantities of all the elements in the model?
Thank you for you reply. Yes, you are right. I am doing cost estimation, so I need to export all the elements from the model to calculate the cost. Can Dynamo do this? Thank you again.
Dynamo could do it though it would be a big graph, and probably a slow running one to boot. The trick is that you’d have to collect all the elements from all the object categories. Without some custom Python, you’ll end up with a lot of nodes to manage. You’d be better off with a macro or add-in. I started one a while back but never finished it. I’ll see if I can dust it off and get it out there for you.
Thank you Michael.
Yes, the issue you said is a problem for me, maybe I will end up with management of nodes. Actually I found one plug-in “BIMITs Datalink”, but I am just looking for is there other method that can help me to finish extracting all the elements to Excel. My research challenge is how to export data to Excel automatically in a customized way.
Thank you very much for sharing.
I used the Dynamo sample to extract information from the curtain panels to excel and apply random values back to the model. Very useful!
Looking forward to registering in the Revit Macro Training.
i’m using this one :
https://apps.autodesk.com/ACD/en/Detail/Index?id=appstore.exchange.autodesk.com%3alementschedules_windows64%3aen
it’s free and does a good job (until now)
This is wonderful. The only issue I have now is that I’m on MAC with Revit on the Windows side, and excel on Mac. My error says “excel not installed”. Any way around this to link to the excel on mac side?
Thanks.
Hey Pedro. Unfortunately there isn’t a work-around. Dynamo creates a direct link to Excel so it needs to be installed on the Windows side.
Thank you so much for the valuable information. It does happen that the export of Revit outcome becomes quiet difficult. But thanks for the info which made it easy.
Wonderful write up.Thank you for sharing it.
Is there a way to bring information into Revit from Excel, that is not associated with elements in Revit? I am trying to bring in a Responsibility Matrix into Revit, I know there are some custom nodes created by other people, but I am trying to do it exclusively in a Dynamo Script without bringing in custom nodes.
Dave,
Do you want to insert the contents of the spreadsheet in a view as a table, similar to what Ideate’s Sticky add-in does? Am I understanding correctly?
Michael
Hi Michael,
I think I have a similar situation to David. I want to code similar to what Ideate’s sticky add-in does. I have to bring in a lot of parking and site details in the project cover page, the only thing I can do at this point is to convert Excel into JPEG and then bring it in Revit. I am thinking of using Dynamo to bring in Non-Bim data into revit. Is it possible with this method?
Is their a way to export a revit schedule into excel, make some changes in excel and then re-import back into revit. I know this would be a dynamo script but I am not sure where to begin.
You can’t “exactly” export a schedule to Excel using Dynamo. What you can do is export parameters from the elements in the schedule to Excel using Dynamo and edit them. You’d then re-import the data using another Dynamo script.
This video shows the process:
https://youtu.be/XlKnNW9KqSU
We are trying out an add-in to import our excel electrical panel schedules into Revit. So far, we are finding glitches with the add-in that we are testing. Can Dynamo or macros do this? Our goal is to keep creating our panel schedules in excel since all of our formulas are built into our excel spreadsheet and than either import or link the excel spreadsheet to Revit.
Jonathan,
I assume you’re trying to import the Excel data into Revit as text and lines, correct? Yes, it’s possible to do via a macro and most likely Dynamo (though I haven’t tried this). What add-in were you having difficulty with? I know of a few that do this very task.
Michael
thank you michael
I just want to be know if I can change material of the families in the same way with dynamo by exporting data then modify them then re importing the data again
thanks
marwa
Yes, you can do that by exporting the material parameter from the family types. When you read the Excel data back into Dynamo, you’ll likely need to “lookup” the new materials by name so you can assign the material object to the family type.
Micheal,
Thanks a bunch for the insightful video! This is my first dynamo script I’ve written and had work. A couple of questions though:
Is it possible to export both my header and footers into excel along with the data?
Can I keep my color formatting?
If so please guide me to a reference.
thanks again!
Andy,
You can add header and footer information by creating a list with the header/footer data. Next, this list to the beginning or end of your list of data going to Excel. You use the List.AddItemToFront and List.AddItemToEnd nodes to do this. Here’s a screenshot showing how to do this in Dynamo:
Also: is it possible to “inlude elements in links”?
What kind of elements do you want to include?
Hi Michael,
Thank you for Very usefull post.
I am trying to Find the best way of exporting values/schedules of specific materials directly into quote model based on Excel. Let’s say: i need to get LM of specific types of walls and the number of the doors of different types an widths.
Is is possible to do this in one go?
Thank you for your help
Cheers
Zofia
Hi Zofia,
I’d recommend using Dynamo to extract specific values from Revit elements. It will allow you to best filter the elements you need and the exact values you want. You can do this in one go, you’ll just need to create the Dynamo script to extract the values simultaneously, format them into a list, then output the list to Excel.
Michael
Thanks Michael. It would be very useful. Is there any node to select parameter from the Revit element using drop down menu. I need to extract equipment schedule into excel and edit them and import them into
Revit using another script.
No, I don’t know of any node that does this. Typically, you need to input the parameter name manually. I’ll let you know if I find one though.
HI. Recently i have seen your videos of Export Revit schedule into Excel format. I am facing an issue when i try to export Revit Rooms into excel format. Room names are not visible. only numbers could see it in the list . pls advise.