One more issue on the big Hospital project.
It could be because of the complex geometry, but on some places the defining of the zones and adjencies is not done correctly with the new LBT tools. Although all Breps are closed I get the following warning.
Input _geo is not a closed volume.
Room volume must be closed to access most honeybee features.
Preview the output Room to see the holes in your model.
Even when I look at the output, all Breps are still closed. After passing the solve adjencies, some floor and ceilings where converted into exposed floors and roofs.
I generated the 3d breps out of the legacy HBobjects dump (Load HoneybeeObjects). With the old model there where no problems. I cleaned up the old Honeybee breps with merge faces, which went pretty well.
When I ran this cleaned up geometry trough the Legacy pluginn there are still no problems and all adjencies are well defined. In the model I attached both workflows are compared.
It looks like this was one of the cases where the Legacy components âfailed silentlyâ and didnât let you know about an underlying issue with the geometry. What is probably happening is that the tolerance of the Rhino model changed at some point over the lifetime of this geometry. It might have been coarser at first, causing the Rhino Brep to record an attribute of âclosed brepâ but, in the current Rhino model tolerance, it is actually not closed and thereâs probably a gap somewhere. You can narrow down the problematic room by looping through them with a slider.
In any case, you see that the components should still let you simulate the room. The only potential issue (which was not reported in Legacy) is that the vertex-ordering for the room thatâs not closed might not be correct. The LBT plugin has some pretty robust checks for ensuring that all faces follow the right-hand rule in their vertex ordering (which E+ requires but Rhino does not). And there are also robust methods in LBT to ensure that Faces point outward from the room (another E+ requirement) but these checks only work when the room is closed to within the model tolerance. In Legacy, we had far less robust versions of these checks so there were times where faces would get sent off to E+ facing the wrong direction causing the issue that you see here:
For those cases in Legacy, the quality of your results could get compromised without you knowing it. So itâs actually a good thing that the âHB Roomâ component is alerting you to the issue here.
Also, I donât think I get the same adjacency issues that you have:
But I know there was a bug in the LBT âSolve Adjacencyâ method that we fixed between the last stable release and now. Do you still get the issue after you run the LB Version an update to the latest core libraries?
Thank you for all the tips. Finaly I got the model running without warnings. Although all geometry was correct -I really couldnât find any inaccuracies- the warnings kept comming. But then I tried the old intersectMassII component and warnings where gone.
Ah, thanks @Erikbeeren . So the issue wasnât with the âHB Room from Solidâ component, then. It was with the âHB Intersect Solidsâ component. You can see that itâs giving you an Invalid Brep and thatâs the room volume that is not closed:
Hi @Erikbeeren , I see you are getting an error of Input_geo is not a closed volume.
I recently encounter this error too and I found the solution. But its kinda in a complex way. I had to recreate my geometry.
I got this error because I redraw my geometries by using a DupFaceBorder command on Rhino from my previous geometry. So basically, this command creates a closed curves from an object. Then I ExtrudeCrv and make a polysurfaces. And so on. And also, making sure that all zones are intersect each other using Intersect command on Rhino. Then, I put it all together the geometries into a multiple breps. The HB Intersect Solids works fine and it outputs of all Closed Brep. But somehow, when I connect it to HB RoomSolid, it came an error saying its not a closed volume. I had to look at the output of HB Intersect Solid to make sure its all Closed Brep.
By the time I got this error, I somehow, by frustration, redraw it myself manually using a polyline curves (which this takes more time) to create a geometries, but however it works. The HB Intersect Solids component doesnt output an error.
I think this error might be a bug. Maybe from Rhino, Grasshopper, or it could be LBT.
@fahadnajed,
Thank you for your advise. Actualy we construct our models by splitting up the floor surface with inner wall lines and extruding them. In most cases it works realy good. Only with real complex models we discovered that the intersect mass II from mingbo peng works faster and more reliable than the new one from the LBT suite.
Hi,
I want to report that lately (couple of days ago) i started to get the same warning (input _geo is not a closed volume). I didnât change the original geometry, so i assume some update caused the warning.
For the sake of the testing i checked a single box and the error sticks.
Yes, we updated the functions that check the room solidity. So you just need to make sure the components on your canvas and the installed version of your plugin are in sync.
This is a case where the room Brep probably has an invalid Face in it, which is causing the honeybee volume to not be closed. The invalid face must be added because of the intersect masses code in the LBT plugin. I still have to investigate and fix the issue that @Erikbeeren raised at the top. In the meantime, the solution that worked for Erik works for you. Just use @MingboPeng 's IntersectMassII component until I get the chance to investigate this further:
Sorry that it took me a few months to get around to prioritizing this issue. Iâm happy to say that it was really easy to take the same underlying method that @MingboPeng implemented in the Legacy âIntersect Mass IIâ and transfer it over to the LBT plugin. Mingboâs solution is much more elegant and reliable and we owe a big thanks to him for figuring out the best Rhinocommon methods here. I just merged a fix into the LBT plugin that uses the new method:
And, when you update with the âLB Versionerâ, you should now find that the solid intersection methods are as reliable as Mingboâs âIntersect Mass IIâ but the LBT component should run in half the time when parallel_ is True:
You donât see the component version change because the edit was made in the ladybug_rhino core package and the code within that specific component was unchanged. As long as you run the âLB Versionerâ, your core packages will all be updated. You can verify for sure by checking the version number in the following folder:
A popup sounds useful and I think thereâs a way to do it in IronPython if I remember correctly. I opened an issue for it and Iâll try to add it when I get the chance:
The âbeforeâ geometry is the one in the brep component; the âafterâ geometry is the baked geometry from the Visualize component.
The only difference I can see is that the latter has a few extra faces and diagonals in it, however you can see that both Grasshopper and Rhino consider both geometries to be closed solids, and yet I still get that warning message.
Any ideas for how I can prevent this from happening?
Hi @MaxMarschall,
Just project the building boundary on ground level, make a surface of it and re-extrude it to a volume. This will probably solve your problem. The error occurs most probably because of these triangles. It could be they are not exactly aligned to each other.