Hummingbird is a set of Grasshopper components that facilitate the creation of Revit native geometry. This process exports basic geometric properties and parameter data to CSV text files which is used to describe many aspects of the Revit BIM geometry. In Revit this data is easily imported using the Whitefeet Modelbuilder tool (included).

Translating Rhino primative geometry to Revit has been vastly simplified without the need for linking or reference objects. This allows for the downstream Revit model to be modified and adapted for the project duration.

The tool now supports importing Revit geometry into Rhino.  This makes a bi-directional workflow possible.


  • Bi-Directional Revit <--> Rhino support!  New component allows reading data output from Revit to create geometry in Rhino.
  • Support for Revit 2015 (as well as 2014).
  • Units!, Whitefeet ModelBuilder tool now includes the ability to specify metric or other custom units upon import.
  • No more Excel! Read and write using simple CSV text files.

Hummingbird for grasshopper includes the following components:

  • Adaptive Components
  • Floors
  • Grids
  • Levels
  • Walls
  • Beams
  • Columns (both structural & architectural)
  • Lines  (detail, model, area bound, room sep)
  • Lofts (place points, curve by points)
  • Rooms_Areas
  • MassFamily (Extrudes a closed polyline into a mass family)
  • Topo Surfaces
  • Family Instances (places any revit family by coordinate point)
  • Import (reads .CSV file and creates Rhino geometry)


To use this solution you must have the following software installed:

  • Windows 7 with .NET 3.5 and .NET 4.0.
  • Revit:  Revit 2014/2015 (for 2013 use the older version)
  • Rhino: Version 5.
  • Grasshopper: 0.9.0056

To install:

Run the installer which will install both the grasshopper component as well as the Whitefeet ModelBuilder addin.

For more examples and information:

- Tim & Mario

Support Email: 4FQ.Y4@LFPSY4ZK@
Plug-in rating:
Average: 4.6 (14 votes)
Title Release Notes
Hummingbird w/ Rhino Input
Added component for reading ModelBuilder .CSV files to create geometry in Rhino.  
Version: 2.2
Language: English
Hummingbird for Revit 2014-2015
This update supports both Revit 2014 and 2015. You will need the 64-bit version of Rhino 5 and Grasshopper 9.  
Version: 2.1
Language: English
Hummingbird 2
Major update! Includes installer for both rhino and revit addins, custom units are now supported, no more excel!, CSV text files are now the main transport format, Revit 2014 only  
Language: English
Hummingbird (old)
Previous version of the Hummingbird Component Set. Updated to work with Rhino 5.0, added new Level component - Allows for the creation of Revit Levels.  
Language: English



I cannot load Hummingbird into my grasshopper tabs. I am running Rhino 5... Do you think using the newest version of Grasshopper is an issue? How can I manually load this?




I'm trying to install the add on but I keep getting a message saying:

Could not access network location



marioguttman's picture

Can you check that the ...\Grasshopper\Libraries folder exists and that you have write access to it.  Mario

Hi Mario, The link exists and I've installed other add ins to this location. Cheers Ben 

marioguttman's picture

Can you find another computer where the install has been run successfully?  I can give you instructions on how to copy the files manually.  Mario

We have been unable to install it on any other computers. What is the manual process? Thanks

marioguttman's picture

You will need to do an install to copy the files from.  What version of Revit do you have installed?  Which version of the Hummingbird package are you using?

zdjdevil's picture

Hi Peirramo, I met an same problem when I add an arc-based grid from CSV. I wonder if you have solved this problem, the error message is:

Error in ConvertHbCurve: The vectors end1 and pointOnArc are coincident.

By the way, the same arc can be import in Revit as mode lines sucessfully, only be wrong when as grid.

marioguttman's picture

I'm not aware of this issue or the previous thread with Peirramo.  Generally this kind of message is returned from Revit indicating that it didn't like the points provided.  Can you upload a sample .CSV file that illustrates the problem?  Mario

Dear Mario,

Is Hummingbird entirely for free? If it installs Whitefeet Modelbuilder tool for it to work, do I have to buy the Modelbuilder license?

Thank you,


marioguttman's picture

Paul, Hummingbird is entirely free.  The ModelBuilder module from the WhiteFeet Tools is included.  It is exactly the same except that it doesn't prompt for a license.  Incidentally, you can install the full WhiteFeet Tools on a trial basis for 90 days.  There is also a student license available for $20.  Enjoy.  Mario

I want to export geometry (components) from revit to Rhino. the problem is the layer in Rhino just says (walls), but there is specific information about each wall in that layer.. Basically I want every little wall on its own layer. Possible?

marioguttman's picture

There is currently no way to attach any additional information to the export from Revit (although I may look at adding that.)  You could try exporting a list of values in exactly the same order and then using some other method to import that list to Rhino-Grashopper and then match them up.

Is it possible to use Hummingbird/ModelbBuilder to create doors and windows in Revit from Grasshopper? I'm not getting it to work at the moment. They appear in schedules in Revit, but no actual geometry is drawn. I assume it has something to do with that they need to be hosted. Thanks! /Petra

marioguttman's picture

Your perception is correct: it is not possible to place famlies that are hosted.  I will think about how to address this but it is difficult since I need to know the identity of the host element.  Perhaps I could search and find the nearest wall. 


I'm not sure if this would work, but as a workaround you could try placing some families that looked like doors and windows but were not hosted.  Then you could globally replace them with real doors and windows.

Hi, I just gotten started with Model Builder and Hummingbird, and I'm running into problems with how values are saved when I'm exporting small geometries from Revit. I've been using the "HB Proofs - Model" file that is included in the download to understand the problem, and I'm exporting one of the floors. At first it exports correctly but as I reduce the size of the floor the x,y,x values in the csv file have too many commas in them, for example: 65,5, 20,0000000000001, 30. 

Anyone else with the same issue? Or any thoughts about it? 

Thanks in advance! /Petra


marioguttman's picture

This problem may be caused by Rhino switching to exponential notation for very small numbers.  This is complicated by cultural differences between countries about how they format exponential numbers so, if your Windows environment is set to a European country, my US environment may not read it properly.


I'm not really inclined to study this issue since it will be hard for me to recreate the problem.  Is there a way that you can change units so that the numbers are larger?  Alternatively, multiply all your dimensions by a big constant (like 1,0000,000) and then scale the results later.


You will also likely encounter problems in Revit with trying to import small values.  Good luck, Mario 

Thank you for the quick response, and for great work! Turned out it wasn't an issue of small numbers at all, but one of the decimal mark defaulting to a comma. Changed the settings in the computer and problem solved! /Petra

marioguttman's picture

Good catch.  This is another one of those cultural differences in Windows.  Could you please provide some instructions on how you set the values correctly in case someone else has the same issue?  thanks, Mario

The settings are changed under:

Control Panel > Date, Time, Regional Options > Region & Language > Formats > Additional Settings > Numbers. Make sure the Decimal Symbol is set to dot, not comma. 


cadman's picture

Thank you for this wonderful plugin, and the Revit to Rhino Import!

I know that Rooms aren't visible in the 3D views in Revit, but can they still be exported? 


In plan view, I had the room selected and then chose to export the selected geometry, but it exported a blank .csv file. I also tried to export all model elements, but still no room that I could tell. 

Is there something I am missing?


Thank you for all of your help. 



marioguttman's picture

I replied to this earlier but I'm not sure what happened to my comment.  What I said was that you are correct; I never implemented the Room export.  Since then I have updated the ModelBuilder program so that it does export rooms and areas.

The logic of these is a little different than you might expect.  Strictly speaking a a room or area only has one item of geometry: its insertion point.  For that reason, when I do the basic export that is all I include.

I'm assuming that if you are going into Rhino what you really want are the boundaries of the room.  To accomodate that I made it so that, if you choose the option to convert the output to lines, the boundary is output.

Interesting, you could use that as a way to convert a bunch of Revit rooms or areas to linework (assuming there was some reason to do that!)

cadman's picture

Thank you for the quick response! The rooms imported great. I'm working on a way to visualize the rooms better since Revit can't show them in 3D. 

Is there a component in grasshopper that reads the element ID from the .csv as well, or should I just use an excel reader and compare the data that way?

Thank you again for your help.


marioguttman's picture

I've uploaded a new version.  It includes the option on the Revit ModelBuilder side to export geometry as Filled Regions. If you export your rooms using this option and then use the Input component to import them to Rhino-Grasshopper they will come in as surfaces with a closed boundary.  I think you will find that this gives you a number of options for manipulating them in Rhino including extruding them.


I elected to use this approach because I was uneasy with importing the ElementID values.  There are some logical issues since the ID values are not really associated with the geometry and so on.  Also, rooms can have holes in them (and islands in the holes) so the geometry is fairly complicated.  (I haven't fully implemented the ellipse shapes but lines, arcs and splines should work.)


Please try this out and let me know if it is working for you.


Incidentally, since I was implementing Filled Regions anyway, I added a component on the Rhino-Grasshopper side to create filled regions in Revit.  There are some interesting potential workflows using them since they can store a complex boundary that would be hard to manage otherwise in Revit.  (Sorry, no masking regions at this time; take it up with the Autodesk Revit API team.)


Documentation has not been updated yet.  Later.  Mario

marioguttman's picture

That's an interesting idea (to read the element ID in Rhino.)  I could probably do that.  What would you want to do with the value in Rhino?  Is there a way to add a parameter to a Rhino object?  Then, when you export from Rhino would you want to export that value?


The Element IDs aren't really good for much at this time.  My original intention had been to adjust the dimensions of an existing object (rather than replacing it) so that it would preserve its hosting relationships.  Unfortuanatly the Revit API doesn't allow that, so now I just delete the element and rebuild it.

cadman's picture

Rhino Objects have an Object Name in their properties. Could you write the Element ID to that value? 


If I could read the Element ID from the csv, then I could join all the lines associated with that ID and have a closed polyline of the room outline to extrude. The Element ID is already in the csv file. I can see it using the HummBird CSV Viewer. The value just doesn't get read into grasshopper using the Grasshopper Hummingbird CSV Input Node.


I'm only working in grasshopper, so just being able to read the id there would work for me. 


I didn't realize about the changing dimensions in Rhino in order to adjust Revit! Will have to experiment with that as well!

marioguttman's picture

You're right.  I just went back and check the code for ModelBuilder and apparently I never implemented the export of rooms from Revit.

You will have to work around this by using lines of some kind to represent the rooms.

I'll need to take a look at this and see if I can publish an update.

Firstly, thanks for the hard work. This is looking like a very useful tool. 

I have a question regarding the lines component.

I'm trying to import detail drawings from rhino into revit. The Lines component appears to only output straight lines, splitting curved curves into many small lines. However, Revit has a tolerance of 1mm (in metric cm settings) regarding minimum line length, and will not draw the tiny lines required to give the impression of a curve. The only workaround I have found is to scale the geometry in Rhino by a huge factor. This isn't really viable as the drawings need to be incorporated into our project file at a certain scale. I have tried unsuccessfully to scale them down again in Revit. Any ideas?

marioguttman's picture

The "Lines" component input accepts a tree of "cuves", which may be lines, arcs, polycurves, nurbscurves, polylinecurves, or a mixture of these.  It will create lines, arcs, or nurbscurves in Revit accordingly.  (The data displayed in the "Data" output will only show lines and arcs.  This is a bug that I will fix.  The data written to the .CSV file should be OK, however.)  If you are having difficulty making any of these work please send me a sample project that illustrates the problem.

Regarding scale, this is often an issue.  Revit always stores data internally as feet, irrespective of what the scale setting is.  The ModelBuilder offers a couple of options for converting the scale as it reads the .CSV file.  Alternatively, you can apply a scale factor as you input the curves in Grasshoper.  Again, if you can provide a sample file I will try to analyze the problem.  Be very specific about the scale settings in both Rhino and Revit.

marioguttman's picture

I've posted a new version that includes a component for uploading Revit data to Rhino.  I also added a link to a website where I have posted some sample data.  Be sure to look at the revised Users Guide.  And tell me what is working or not working for you.

Hi Tim and Mario,


does Hummingbird run with Win8.1?



I'm using this with Grasshopper 9.0076, and I' getting index errors and "unable to write .csv files.

marioguttman's picture

Can you provide more specifics about what you are tring to do and what files you are using?  Try the "Proof Files - 2015" from the site.

I've installled Hummingbird for Revit 2014/2015.  When I tried using the Sample fiels in the Minimal Test File I get these message when I attempt to write a .csv file.


CSV writer version 2013-08-18

Unable to create or connect to .csv file.  Folder must exist and existing file must not be in use.  EstablishCSVlink() failed.

Any idea?

marioguttman's picture

Can you try downolading the Revit 2015 sample data from the site and testing the "Proof Files - 2015".  Although the Revit file in this set requires 2015 the Rhino-Grasshopper files are the same.

marioguttman's picture

The new version has been posted on this site.  It installs for both Revit 2014 and 2015 (even if you don't have them on your computer.)

There are some useful documentation and sample files at in the Hummingbird - Rhino to Revit Translation section. (You will need to create an account and agree to the license agreement but you can use Hummingbird without buying a WhiteFeet Tools license.)

This update exposed a number of issues that need to be fixed.  We are also working on a Revit --> Rhino upload option.  So stay tuned for another update.

And keep sending messages and posting stories about what you are doing.

marioguttman's picture

I've created a new version that includes ModelBuilder for both Revit 2014 and Revit 2015.  It requires Rhino 5.  Available from for now.  I'll try to get it up on this site as soon as possible.

Thanks Mario! I didn't think you were updating it anymore?

marioguttman's picture

Yeah, I got beaten up about abandoning it.  The best way to keep me working on it is to post stories about what you are doing with it.  Currently looking at a Revit-->Rhino tool for transfering geometry out of Revit and into Grasshopper.  Would you use that?  Mario

Hi Mario. Its good to have you back. Yeah a Revit > Rhino tool would be useful. Chameleon had one but it hasn't been updated in a LONG time and is no longer available for download. One of the limitations I found with it was that everything came in as meshes. There was a lot of rework required to make the geometry and data structure usable. If this could be streamlined it would be awesome. I'm now using more Dynamo to take things from Grasshopper to Revit. But there isn't much out there if you want to go the other way...

Hi Tim and Mario,

Is there any way to get a wall to come into revit on something other than the wall centerline? Can we get finish face exterior or finish face interior? I think the plugin is amazing, and I am hoping that you guys keep developing it because it could be even more powerful than it already is.


marioguttman's picture

I have reactivated the site.  You can download the 2015 version of the WhiteFeet Tools and use the ModelBuilder to do the Revit side of the translation. You can use the current version of Hummingbird to do the Rhino side.  Sorry, I've been slow to get a 2015 Hummingbird package out.  Mario


Will a new Hummingbird for revit 2015 going to be released soon?

Thank you,



Does Humming bird support the latest version of grasshopper? 

And the version for Revit 2015 is coming soon yet?

I tried to transfer models from Rhino to Revit 2014. All the columns and axises are stacked together. The grasshopper version I am using is 0.9.0075.

Does anyone have the same situation?

It would be great if someone could pass me basic exampls I could start with. my e-mail address is 




I'm trying to export multiple columns with multiple types. However, regardless of if I fatten or graft the list of types, it only writes one type to the *csv. Is it possible to export multiple types?

tjmeador's picture

You'll have to use multiple copies of the column component. One for each type. 

wlqq_2004's picture

Can I use the hummingbird(Model Builder) to add doors and windows components in revit file?I have Succeeded in palcing a desk,but I don't konw how to add a door。Please halp me,thanks~

Is the whitefeet website down?

marioguttman's picture

I am no longer running the WhiteFeet Tools website.

Hi Mario. Is someone else going to take over? What is the future of Hummingbird without the WhiteFeet plug-in?

Protected Collaborative Environments Wildcard SSL Certificates
© 2015McNeel Europe. User-submitted content and trademarks property of their respective owners.