Honeybee meets Revit

image by archi-lab.net

So this is one of the things that I have been working on recently – a Revit plugin for Honeybee. Yay! Yes, I know. Please don’t get too excited. It’s not “ready”, and I don’t think it will be for a while. It’s a work in progress, but I think it has a lot of potential for the Building Energy Modeling community, so I thought to share the development update so far.

Let’s start with instructions on how to deploy this little creature. Like I said, it’s in development so no installer, and deployment will require some extra steps. I just hope that Honeybee users are kind of used to having to jump through a few extra hoops. 😜

  • First you would have to download the latest ZIP files from here:
  • As always, please Unblock the ZIP files before unzipping. Windows sucks.
  • Go to your Autodesk Addins folder under: C:\Users\{username}\AppData\Roaming\Autodesk\Revit\Addins\{version}
  • In that folder please place the Honeybee.Revit.addin file.
  • In that folder please create a new folder called Honeybee and place all of the DLLs in it.

That’s it for the Revit plugin installation process, however, Honeybee requires that you also have Ladybug Tools installed.

  • Please note that the below steps call out for downloading Ladybug Tools from Food4Rhino. That’s not necessary. Please download this first: First Step
  • … and then you can read here about what you need to do with this file: Steps

Once you have these two things installed, the Revit plugin, and Ladybug Tools, then we can look at a few sample files:

  • Revit 2020 – Basic Sample Model (cleaned) – Download
  • Revit 2020 – Advanced Sample Model (cleaned) – Download
  • Revit 2019 – Basic Sample Model (cleaned) – Download

Also, for those of you that are wondering what I mean by “cleaned”, here’s a video that explains a little bit of that process: Video If I had to explain it, I would only say that the sample models that Revit ships with are complete garbage. This inconsistency in how things are being modeled and sometimes, just the fact that these models were modeled for representation purposes, not energy modeling purposes, results in the fact that they needed to be cleaned up. One of the most common things that you would have to do with your model to convert it to an energy model, is to extend the Roofs/Floors to at least center of the Walls below. The reason I did that in the video above is to stop Wall geometry from shooting past the Floor above. We always calculate Room geometry for an energy model to the center of the Wall, and if the Floor/Roof stops at the face, we would get some nasty artifacts.

Finally here is a result of converting a Revit model into Honeybee Energy Model, that then can be simulated in Open Studio:

As you can see above I am using Grasshopper/Rhino to preview the schema. Here’s my Grasshopper definition that I use to debug and visually inspect the model that is being generated from Revit: Grasshopper File

Once you are in Revit there are a few things to pay attention to:

Under Settings>Geometry we have three options:

  1. “Pull up” Room Height: This feature tells our parsing script whether we should attempt to pull up the room height so that top of the room on level 1 is touching bottom of the room on level 2. This is only valid for Dragonfly conversions since we are not using an actual Room geometry to construct the energy model.
  2. Tolerance: This is precision that we use internally when comparing points, lines etc. For example if two points are within this distance from each other, they are considered coincident and that would affect certain decisions we make.
  3. Glazing: This is a big one so please pay attention here. When we are converting Curtain Walls in Revit to Honeybee Schema, we didn’t want to make an assumption that all of the Panels were glazed. It is a common practice to have opaque spandrel panels that are actually insulated and would be more like a Wall than Aperture. To handle these cases, we allow you to list out all of the Curtain Wall Panel Types that are “glazed”, and that will be what we convert to Aperture in Honeybee while all other panels will end up being a wall.

Under Settings>Simulation we have four more options to set:

  1. Weather File: Please point it to a EPW file. It’s required by the simulation engine.
  2. Simulation Folder: Please point this to a location on your drive so that we know where to save the results.
  3. Reports: There are two types of simulation reports that we output. One is an OpenStudio report and another is an OpenStudio report that includes results in a 3D Format where the model properties are visualized in a web, and can be overlayed on the model itself.

Once you have the Settings sorted out please open the Honeybee/Dragonfly tool:

From this UI you can select Rooms you want to export or simulate. Please keep in mind that things like Adjacency sometimes will force you to simulate or export an entire level to get a valid Honeybee Schema. Why? Because of Surface conditions. If one Room has a Surface condition with another, and that other Room ins not included in the exported/simulated JSON, then it won’t be a valid schema. The best way to check if you have a valid schema is to export it to JSON using the button at the bottom/left of that window, and then visualize it in Grasshopper. Only selected (highlighted in orange) Rooms will be exported. The above model looks something like this in Grasshopper:

Please give it a whirl, and let me know what you think. Like I said, this is still an Alpha version. We are mostly interested in test models, and feedback about potential conversion issues. Simulation and visualization portions of the experience are still very underdeveloped, but we are working on it.

Thank you Ladybug Tools!

Of course I didn’t just got up one day and decided to do a Honeybee plugin for Revit. I was hired by Ladybug Tools to work on it, and a huge and massive “thank you” needs to be sent their way for continuing to be a force of good in the AEC industry. As always all of the plugins that Ladybug Tools are involved with are Open Source and available for free. There might be a some extra hoops to jump through, but hey, they are free. Again, huge thanks to Antoine, Chris, Chuck, Mehrnoush, Mingbo and of course Mostapha.

Another thing that I cannot stress enough here, is the amount of work that Ladybug Tools team had to do to even make a Revit plugin possible. They had to literally re-write all of the plugins to make them compatible with Open API Specification, that then could be used to generate a Honeybee Schema in C# so that a Revit plugin could be written. This was no small task. If I had to guess, they did roughly 99% of the work, and I just happened to know Revit APIs well enough to give it a go, and try and implement that schema in Revit. Of course, the work here is not done. Not by a long shot. This is just an Alpha version. More work needs to be done, so please head over to Ladybug.tools and support them if you can!

Good luck, and have fun!

Support archi-lab on Patreon!

18 Comments

  1. Joshua Lumley says:

    Make an installer:

    • Josh,

      Thanks for sharing. Yes, I know how to make an installer. Making one is not an issue. This Revit plugin is going to be part of a much larger set of tools, and it will have an installer for the whole package hence why I am not making one just for this one tool. People can copy a few files around. I have faith in everyone’s abilities when it comes to downloading and unzipping some files.

      Cheers!

      -K

  2. miladheirani says:

    hi Mr.Konrad K Sobon
    i installation the HB for revit with your introduction but i get this error!
    how can fix them?
    Thank you.

    Attachment:  Capture.jpg

  3. Aziz BOUKARA says:

    Salut Konrad,
    Merci pour ce travail.

    Hi Konrad,
    Thank u for the great job

  4. Minggang Yin says:

    Hi,Konrad. I used the cleaned Revit model for testing. I am running Honeybee for Revit 2021.Honeybee for Revit can identify all the rooms in Revit. But when I ran it ,Revit crashed. Please help me debug it.

  5. Loicw says:

    Hi !
    Thank you for the great job, it’s vety motivating to see that you are keep searching for new ways of connecting Revit and LB/HB tools.

    I installed the Honeybee Addin in Revit, however I cannot export the JSON file, when I click on export nothing happens.

    Would you know where could that come from?
    Thank you very much in advance and keep up the good work !

  6. loicw says:

    Thank you for your time.
    There is the end of it (it’s too long to be posted entirely):

    Please see attached.

    Attachment:  honeybee-log.docx

    • loicw says:

      Oups I’m sorry I didn’t think about all the space it would take, I should have just attached it to the message instead of pasting all the text in the comment.

  7. loicw says:

    Hi again !
    So I still can’t get the plugin to work, it doesn’t export the JSON file, and when I try to run the simulation Revit crashes.
    I also tried with your cleaned Basic model Sample and I’ve had the same results.

    Here is the fatal error log, that I’m not sure to understand:
    2020-09-20 09:10:48.3925|FATAL|Honeybee.Revit.CreateModel.CreateModelModel|System.NullReferenceException: Object reference not set to an instance of an object.
    at Honeybee.Revit.CreateModel.CreateModelModel.SerializeRoom2D(List`1 rooms, ProgramType bProgramType, ConstructionSet bConstructionSet, Boolean dragonfly, List`1 shades)|System.NullReferenceException: Object reference not set to an instance of an object.
    at Honeybee.Revit.CreateModel.CreateModelModel.SerializeRoom2D(List`1 rooms, ProgramType bProgramType, ConstructionSet bConstructionSet, Boolean dragonfly, List`1 shades)

    Would you have any idea where would that come from?
    I’ll add the full log to the comment.
    I use Revit 2019.
    Thank you very much for your time and help.

    Best.

    Attachment:  honeybee-log-1.docx

  8. Carmine says:

    Hi Konrad,
    thanks for this work! I don’t have Rhinoceros at the moment, does this plugin need Rhinoceros anyway to work? I tried to follow the instructions on Github but points out to a GH file to run.
    Can you clarify this bit?

    Thanks!
    Carmine

    • It won’t be that way for too long. We realized that not all Revit users would have access to Rhino, and decided to decouple them. At the moment, yes, that’s how it works. Apologies. We are working to rectify that.

      • Carmine says:

        Thanks for the reply (sorry for my other poste below, Chrome didn’t notify of my old one). I hope this will solved in the long run for Revit users (I saw that the team is putting lot of efforts in developing the OpenBIM version, it’s great!), I remember I gave Mostapha this feedback when he decided not to update Ladybug for Dynamo)

      • Carmine says:

        Thank you again for your effort on these things! :)

  9. Carmine says:

    Hi Konrad,
    thank you so much for this!
    I installed the Revit plugin and it appears in my dock bar, but I don’t have Rhinoceros installed. How shall i follow the instructions contained in https://github.com/ladybug-tools/lbt-grasshopper/wiki/1.1-Windows-Installation-Steps if I can’t access grasshopper? Is there a way to install ladybug Tools “standalone”?

    Thanks!

  10. lluj says:

    Hi,
    I have probably the same issue : exporting JSON does nothing.

    Here is the log trace

    2020-10-06 13:56:41.2744|INFO|Honeybee.Revit.CreateModel.CreateHbModelCommand|Create Model started.|
    2020-10-06 13:56:41.3652|INFO|Honeybee.Revit.CreateModel.CreateHbModelCommand|Create Model ended.|
    2020-10-06 13:56:41.8180|INFO|Honeybee.Revit.CreateModel.CreateModelModel|Processed Kitchen & Dining 101 in 0,29416s.|
    …..
    2020-10-06 13:56:45.3851|INFO|Honeybee.Revit.CreateModel.CreateModelModel|Processed Shaft 214 in 0,17803s.|
    2020-10-06 13:56:52.7622|FATAL|Honeybee.Revit.CreateModel.CreateModelModel|System.NullReferenceException: La référence d’objet n’est pas définie à une instance d’un objet.
    à Honeybee.Revit.CreateModel.CreateModelModel.SerializeRoom2D(List`1 rooms, ProgramType bProgramType, ConstructionSet bConstructionSet, Boolean dragonfly, List`1 shades) dans D:\a\honeybee-revit\honeybee-revit\Honeybee.Revit.SharedProject\CreateModel\CreateModelModel.cs:ligne 220|System.NullReferenceException: La référence d’objet n’est pas définie à une instance d’un objet.
    à Honeybee.Revit.CreateModel.CreateModelModel.SerializeRoom2D(List`1 rooms, ProgramType bProgramType, ConstructionSet bConstructionSet, Boolean dragonfly, List`1 shades) dans D:\a\honeybee-revit\honeybee-revit\Honeybee.Revit.SharedProject\CreateModel\CreateModelModel.cs:ligne 220

    Run crashes Revit as well. This is using Revit 2021.

    I noticed that the Honeybee dll folder keeps coming back to read-only. Also, the plugin asked several time at startup to be enabled (see image attached)

    Could that be a reason for the bug?

    My revit install is in French (not my fault… ;-) ) Could that also be a problem in terms of path…?

    Thanks for any help !

    Best,
    Julien

Leave a Comment