Updated Revit File

Hi, I watched the video of bringing Revit-files into Rhino by using HBJSON and it looks great. Still there is a lot of post processing in Rhino in this example and I guess that can never be avoided. Therefor I wonder how we should think when the Revit-model it changed? Is it possible to assign these changes automatically in some way or do I need to perform all post processing manually each time?

Hey @maxt !

I’m going to ping @mostapha for help on this one to be sure.

But, I believe you would have to do the post-processing manually if the source model changes. That is, unless you are able to use grasshopper to create a script that can take in a model and and clean it automatically. But that will be highly dependent on the source model and how you are transforming it.

1 Like

Hi @maxt and thank you @tyler for the ping!

I started to reply yesterday but didn’t finish my reply to post it. This has been an on-going conversation and we are trying to identify the boundaries between what would be the user responsibility versus the plugin responsibility to resolve. If a user wants they can indeed fix all the geometry issues inside the Revit and then automate repeatable tasks using a post-processing script. In that video, the reason I fixed them in Rhino was because it is faster to them in Rhino if I need to do it once but of course this will change if you have to do it several times.

From the models that I have seen so far, I can put the fixes in 3 categories:

  1. Items that can be fixed by modifying the Rooms and Spaces in the Revit model. This almost includes all the geometry issues for the room itself. Our plugin parses all the apertures for those rooms as long as the 3D volume of the room is correct.
    The most common issue that we see is that the rooms volume are not extended to the floor above but there are other cases when a room boundaries are not clean which generate strange room geometries inside Revit. One question that I have been revisiting frequently is where is how and to what extent should we automate common fixes like this one.

  2. Items that can’t (or hard to) be fixed in Revit but can be automated afterwards. One good example for this case is modeling rooms with plenum. It’s hard to model plenums in Revit as rooms or spaces but that’s something that can be automated as a post-processing step and by modifying the HBJSON file. This is one of the main advantages of using HBJSON which means you can use the scripting SDKs to automate such logics using Python. As @tyler mentioned this can also be done as a Rhino or Grasshopper script but I wanted to add Python scripting with no need to other CAD platforms to the list.
    We have exposed the option for exporting Revit parameters as user data for Revit objects which makes such processes possible. It will be some extra work to develop the recipe but since it will be a repeatable case it will pay off. We have already created a number of scripts for the Rhino plugin to show case this possibility: pollination-rhino-scripts/ironpython-scripts at master · pollination/pollination-rhino-scripts · Git

  3. Items that can’t be fixed in Revit and can’t be automated. I haven’t found that many of them but there are cases that it takes a lot of Revit knowledge to fix them inside the Revit interface. They are also edge case and can’t be automated. I think we have to resolve these cases one by one and as they come. IMO, automating 90-95% of the export will save people enough time to go through the other 5-10% and fix them manually but we will see how the users react to the current functionalities of the plugin.

I’m also copying @ksobon here to share his thoughts as he has been dealing with these issues.


@mostapha hit it spot on. There are things that can be fixed in revit or automated in Revit directly, but there are some things that just don’t make sense to fix in Revit. I realize that the Revit model’s main use is to generate drawings, and because of that function, the modeling practices that people employ differ from ones that I would recommend they employed in order to get the cleanest possibly energy model. For the most part fixing things like Room extents in Revit is something that you would do once, and hopefully they stay fixed after that. If the case is that you are getting the model as a consultant and you are asked to perform energy modeling on it, then obviously you don’t control the source, and in that case, coming up with some automation around these fixes, would be proffered. As @mostapha mentioned we are working through a handful of use cases, and variations. I guess over time we will provide a number of these fixes as automation routines for Revit as well.


As I see it, most energy modellers does not own the Revit file and in many cases they don’t even own a Revit license. Therefore I would definitely prefer that all repeating post processing was done in Rhino. Also, at least in Europe, ArchiCAD is quite popular and we at some point have a plugin for ArchiCAD we could have the same environment to post process all BIM-models.

1 Like