# Excel Data into Revit

**URL:** <https://forum.dynamobim.com/t/excel-data-into-revit/19086>\
**Category:** Revit\
**Created:** [February 14, 2018, 9:34pm UTC](https://forum.dynamobim.com/t/excel-data-into-revit/19086 "2018-02-14T21:34:50Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jorge\_Villarroel](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jorge_villarroel/32/23619_2.png) [@Jorge\_Villarroel](https://forum.dynamobim.com/u/Jorge_Villarroel)\
**Post date:** [February 14, 2018, 9:34pm UTC](https://forum.dynamobim.com/t/excel-data-into-revit/19086/1 "2018-02-14T21:34:50Z")

</div>

Hi All,

I’m wondering if there is a way to import data from excel and store it “somewhere” in the Revit project, to use the information in every script that will run in the file.

I know that there are several apps to do this, but I’m wondering in what type of object is the storage container, a schedule? a drafting view?

found this on the Autodesk Forum, but not quite I was looking for:  
[https://forums.autodesk.com/t5/revit-api-forum/importing-excel-into-revit-schedules/m-p/7373986#M25134](https://forums.autodesk.com/t5/revit-api-forum/importing-excel-into-revit-schedules/m-p/7373986#M25134)

I’m looking for something like a DataBase, so I don’t need to read the excel file every time I run the script.

Hope someone has done something with this or if some can orient me in the right direction.

Thanks in advance!

---

<div class="post-metadata">

**Author:** ![Marcel\_Rijsmus](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/marcel_rijsmus/32/8539_2.png) [@Marcel\_Rijsmus](https://forum.dynamobim.com/u/Marcel_Rijsmus)\
**Post date:** [February 14, 2018, 9:50pm UTC](https://forum.dynamobim.com/t/excel-data-into-revit/19086/2 "2018-02-14T21:50:29Z")

</div>

> [@Extensible Storage](https://forum.dynamobim.com/t/extensible-storage/9081):
>
> Hi, Can we invoke extensible storage in/by dynamo by any means? It seems like calling an Excel sheet to store temporary values is a way of doing things, but can it be done in a smarter way? I’ve created shared parameters to store something like “original viewtemplate name” when merging viewtemplates, because i needed these values to restore original viewtemplates. But that is just an example of something bigger. [https://forum.dynamobim.com/t/merge-two-view-templates/](https://forum.dynamobim.com/t/merge-two-view-templates/)[http://thebuildingcoder.t…](http://thebuildingcoder.typepad.com/blog/2015/02/extensible-storage-in-a-worksharing-environment.html)

---

<div class="post-metadata">

**Author:** ![alvpickmans](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/alvpickmans/32/41236_2.png) [@alvpickmans](https://forum.dynamobim.com/u/alvpickmans)\
**Post date:** [February 14, 2018, 11:48pm UTC](https://forum.dynamobim.com/t/excel-data-into-revit/19086/3 "2018-02-14T23:48:53Z")

</div>

Usually all those plugins rely on Extensible Storage as @Marcel_Rijsmus pointed out, which although powerful requires hard coding in order to be used.

As your question is about “_store it somewhere in the Revit project_” I will avoid suggesting saving your data on any text file or external database like MongoDB or SQL (for which there are quite a few topics on the forum).

One workflow I found useful is by using Global Parameters. For example, you can have a Global parameter of type Multitext and save data on it. On the example below, I am saving a json formated text into the custom _dataStorage_ parameter from a web request to London’s air quality dataset (on csv format).

 ![01_dataToGlobalParameter](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/c/a/cad6aef5d89414b64c99fcaa2b5b8758429b9a19.png)

Once it is set, that data can be retrieved or updated at any time from a different graph.

 ![02_dataFromGlobalParameter](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/5/5/550097b0e32f56cc95071af61eac7d7bcb4a9afa.png)

A few notes:

1. The format saved on the global parameter can be any, I just prefer json for its simplicity.
2. The origin of the data can be also any, I simply chose CSV as it can be request via web an avoid an extra file on the dataset.
3. Although Global Parameters can still be modified by any user, it is unlikely that it might happen “by accident” when working on the model.
4. [JsonData](https://forum.dynamobim.com/t/jsondata-package/19026) is the package used to create and handle the data in a json-like format.

Please find the example dataset attached. Hope it helps! 🙂

[01\_dataToGlobalParameter.dyn](https://forum.dynamobim.com/uploads/short-url/bMO6K706ezs41hLKe90DhUhRezJ.dyn) (6.8 KB)  
[02\_dataFromGlobalParameter.dyn](https://forum.dynamobim.com/uploads/short-url/ysKJd5A7hqSsR8VvvDFIAjjrIQn.dyn) (6.6 KB)  
[dataOnGlobalParameter.rvt](https://forum.dynamobim.com/uploads/short-url/kAxA0bcj07SoTNQihxSfj2Nwu4H.rvt) (1.4 MB) (Revit file not required as long as you create a global parameter of Multitext type on your model)

---

<div class="post-metadata">

**Author:** ![jacob.small](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jacob.small/32/161030_2.png) [@jacob.small](https://forum.dynamobim.com/u/jacob.small)\
**Post date:** [February 15, 2018, 12:50am UTC](https://forum.dynamobim.com/t/excel-data-into-revit/19086/4 "2018-02-15T00:50:20Z")

</div>

There is also a key schedule.

I’ve used a family in the past for stuff like this. Void of geometry and chock full of parameters which you can call and store and create anew… don’t even have to place it but you might want to so that it doesn’t get purged accidentally. If you post an example of the xls data we can all take turns showings our preferred method.

---

<div class="post-metadata">

**Author:** ![Jorge\_Villarroel](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jorge_villarroel/32/23619_2.png) [@Jorge\_Villarroel](https://forum.dynamobim.com/u/Jorge_Villarroel)\
**Post date:** [February 15, 2018, 11:59am UTC](https://forum.dynamobim.com/t/excel-data-into-revit/19086/5 "2018-02-15T11:59:31Z")

</div>

Hi @jacob.small and @alvpickmans, thanks a lot for both recommendations! @alvpickmans, I didn’t know about the storage in the global parameter to put some data in a JSON format. Thanks for that.

@jacob.small, here is an example of the data I want to transfer to the storage:

[Data.xlsx](https://forum.dynamobim.com/uploads/short-url/3HWOkslQgpSld115AXJmVKuzdzN.xlsx) (46.8 KB)

Thanks in advance!

---

<div class="post-metadata">

**Author:** ![alvpickmans](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/alvpickmans/32/41236_2.png) [@alvpickmans](https://forum.dynamobim.com/u/alvpickmans)\
**Post date:** [February 15, 2018, 2:52pm UTC](https://forum.dynamobim.com/t/excel-data-into-revit/19086/6 "2018-02-15T14:52:50Z")

</div>

@Jorge_Villarroel thanks for sharing the data.

The files I shared on my previous post are still valid with a few changes:

1. On the excel file, I created a new sheet with the data re-formatted by having the first row as headers and the rest the data, without any graphic format or empty rows/columns.  

2. Change the source of the data to be the excel file.  

3. On the second dyn file, after reading and parsing the value from the global parameter, I put 2 examples where the data is used ( filter by pier number and sort them by level)  

From your excel, I omitted columns for “DM” and “@” values for simplicity.

Cheers!  
[Data.xlsx](https://forum.dynamobim.com/uploads/short-url/6QeOkPmSW2GVObU7xTQdO2qSh0a.xlsx) (132.5 KB)  
[01\_excelDataToGlobalParameter.dyn](https://forum.dynamobim.com/uploads/short-url/alCTw0hhLzRE9lCAYehsquDkfBS.dyn) (11.1 KB)  
[02\_excelDataFromGlobalParameter.dyn](https://forum.dynamobim.com/uploads/short-url/sDR0OhIsTN1gObrR4A70dDrzuv4.dyn) (12.6 KB)

---

<div class="post-metadata">

**Author:** ![Jorge\_Villarroel](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jorge_villarroel/32/23619_2.png) [@Jorge\_Villarroel](https://forum.dynamobim.com/u/Jorge_Villarroel)\
**Post date:** [February 15, 2018, 3:22pm UTC](https://forum.dynamobim.com/t/excel-data-into-revit/19086/7 "2018-02-15T15:22:13Z")

</div>

Thanks a lot @alvpickmans I’m definetly including this procedure in my process!
