This was very apperent, when I tried testing the updated script on a project, where it took about 3 hours to create the HB faces from an imported model. Not to run the simulation, but to create the HB faces with reflectances.
For instance, the gh.profiler noted that it took over 2 hours just to assign reflectances for the 5557 frames in the model. And after doing so, I could barely do anything on the canvas without grasshopper freezing.
Well I know that I have some small elements like these in my model, which isn’t great (I was too lazy to clean it up properly. But I don’t see how that effects the difference in the simulation time, as I’m also using this detailed geometry in the Honeybee_createBHsrfs component.
So since I use the same geometry for both components, the main problem must be the components, right?
I’m sending you a private message with the model in question, as I don’t want to share it on the forum. This way, we can hopefully see whether it is the HB Face component or my model that is causing the problem.
If you want to test the script on another model, make sure that the geometry you test is on a layer called 0_Solids::Frames_0.70. Otherwise, group number three won’t work
Sorry for such a late response. I have been in the proverbial “code cave” for the last few weeks.
Generally speaking, the LBT plugin does most of the geometry translation work to the engines when it creates the HB Objects as opposed to legacy where the translation happens when you run the simulation. So that may partly explain what you are experiencing here. In the end, the total time to run a single simulation is somewhat the same between the two but LBT is much better for parametric studies since the translation process only needs to happen once at the start of your script instead of re-translating it every time you start a new simulation.
One quick suggestion is to just mesh your geometry before you create Honeybee Faces with it. The LBT translation code that handles non-planar Breps has a lot of fancy checks in it that try to planarize the geometry as cleanly as possible but it sounds like you don’t need this level of cleanliness for your simulation. So meshing it first will likely make the whole translation process a lot faster.
That makes a lot of sense. I tries passing the geometry through a mesh component first. But when I do this, Rhino shuts down without a warning. I then tried meshing all geometry except the window frames, which worked fine, so I guess that the problem is with the geometry of the frames… I haven’t worked much with meshes, so I don’t exactly know what the problem might be.
I just send you my rhino file in a personal message.
Glad that the meshing seems to have helped but if something like this is happening:
… it sounds like you might have found an issue that’s more on McNeel’s side than ours. I was able to recreate the crash and automatic closing of Rhino on my end by trying to cast your window frames to a mesh in Grasshopper.
So you might want to post this question along with your window frame file to the McNeel Discourse. Or, maybe if you can post it here, someone from the McNeel team like @wim might be able to take a look.
But, if we can’t even get the geometry to convert from a Brep to a Mesh, we’re pretty certainly going to have issues getting it to another format like Radiance. It’s also worth noting that the file you sent me in the PM is over half a GB and this is around the maximum file size for a .3dm file that I’m usually comfortable working at (beyond that the frame rates can get really slow and I usually find it more practical to split the content between multiple .3dm files). So it may be worth keeping in mind that you’re operating a bit beyond what I would consider the recommended range of file size.
@wim I just send you the file through your upload page as requested. I just sent the entire model for good measure. Note that the frames are placed under this layer.
The entire geometry is exported from Revit using Rhino.Inside, so I am aware that the detail level is fairly high, but I have used this workflow multiple times before, and though the script usually is slow, it has never crashed like this before. As mentioned early, I have removed doorknops etc. to clean the model a little.
@chris it is interesting that you say this, because this might be the lightest model I’ve worked with in the last two years Previous models were usually in the range between 850-600 MB. That being said, I have for a long time been aware, that I need to find a way to clean the models. It is ALWAYS the frames that take most space and makes the most trouble, but considering to split the model is probably an easier and more practical solution I guess. So thanks for the tip!
Haven’t looked into the shade mesh object, but I think I’ve found a big sinner.
Last week I worked on another project, where I experienced that grasshopper would freeze for more than 3 hours before I closed Rhino manually. It didn’t shut down like this other project, but freezing is just about as annoying. After using many hours on simplifying the model, I realized that the profiler on my HB Visualize by Type component had been super slow. I use it to visualize the imported geometry and make sure that the Rhino geometry has been imported correctly to grasshopper.
I disabled the component and then I restarted the grasshopper script for good measure. Next time, it took me about a minute to create the HB model.
I haven’t looked into the code of the component, but my guess is that is does a lot of checks that looks at each single surface in the model, which makes the model super heavy - especially if there are window or skylight families from Revit - as they are complex.
The new ShadeMesh object will definitely help this case, both in creating the HB objects faster and for visualizing them with the Visualize by Type component.
@MarkLabrosse , have you tried updating to the latest development version with the LB Versioner and then using the latest HB Shade component to create your Honeybee objects by plugging a mesh into the component? There’s a new workflow under the hood for this case that removes a lot of overhead when you have particularly detailed geometry and you are primarily intending to use the geometry in Radiance workflows.