Error with complicated model; not possible to calculate the volume from the surrounding surfaces

Hello everybody,

I am new at the forum and have a question regarding a not so common object. I am busy trying to calculate the cooling capacity needed on board of a sailing yacht. I have created the yacht in rhino with all flat, planar surfaces and divided it into different rooms.

In Grasshopper I used the create HB surface component to create all the HB surfaces which are connected to the HB room component to create the rooms. I used this method instead of using the HB room from solid component, because I need to give the surfaces of the model all different constructions/insulations.

The whole model consists of 44 separate rooms. From these rooms I have 3 rooms which aren’t recognized as closed rooms in the HB Room component, while when I bake the output of these rooms they will be closed solid polysurfaces. How is this possible? And how am I able to make HB Room recognize the surfaces as a closed solid polysurface? All the other rooms are closed, so that is a good thing.

Apart from these non-closed rooms, the calculation is running and I am getting some outputs (the calculation will take about 25-30 minutes, it is quite a big file). However, there are some severe errors coming from the HB Model to OSM component. These are the following errors:

  1. ** Severe ** For zone: AFTMAST_4F4D5B87 it is not possible to calculate the volume from the surrounding surfaces so either provide the volume value or define all the surfaces to fully enclose the zone.
  2. ** Severe ** For zone: CPAFT_11D2CC21 it is not possible to calculate the volume from the surrounding surfaces so either provide the volume value or define all the surfaces to fully enclose the zone.
  3. ** Severe ** For zone: CPFRONT_BB180CA9 it is not possible to calculate the volume from the surrounding surfaces so either provide the volume value or define all the surfaces to fully enclose the zone.
  4. ** Severe ** For zone: ENGINEROOM_DC135FEE it is not possible to calculate the volume from the surrounding surfaces so either provide the volume value or define all the surfaces to fully enclose the zone.
  5. ** Severe ** For zone: FRONTMAST_A3530F73 it is not possible to calculate the volume from the surrounding surfaces so either provide the volume value or define all the surfaces to fully enclose the zone.
  6. ** Severe ** For zone: FURNITURE_1_C53B8393 it is not possible to calculate the volume from the surrounding surfaces so either provide the volume value or define all the surfaces to fully enclose the zone.
  7. ** Severe ** For zone: FURNITURE_2_095A267A it is not possible to calculate the volume from the surrounding surfaces so either provide the volume value or define all the surfaces to fully enclose the zone.
  8. ** Severe ** For zone: KEELINSIDE_B6F22639 it is not possible to calculate the volume from the surrounding surfaces so either provide the volume value or define all the surfaces to fully enclose the zone.
  9. ** Severe ** For zone: LA10_B052869D it is not possible to calculate the volume from the surrounding surfaces so either provide the volume value or define all the surfaces to fully enclose the zone.
  10. ** Severe ** For zone: LA14_0AFD81BC it is not possible to calculate the volume from the surrounding surfaces so either provide the volume value or define all the surfaces to fully enclose the zone.
  11. ** Severe ** For zone: LA15_4D21CEAE it is not possible to calculate the volume from the surrounding surfaces so either provide the volume value or define all the surfaces to fully enclose the zone.
  12. ** Severe ** For zone: LA17_A28665B7 it is not possible to calculate the volume from the surrounding surfaces so either provide the volume value or define all the surfaces to fully enclose the zone.
  13. ** Severe ** For zone: LA18_5FED5ADD it is not possible to calculate the volume from the surrounding surfaces so either provide the volume value or define all the surfaces to fully enclose the zone.
  14. ** Severe ** For zone: LA1_D5CE3696 it is not possible to calculate the volume from the surrounding surfaces so either provide the volume value or define all the surfaces to fully enclose the zone.
  15. ** Severe ** For zone: LA5_16622675 it is not possible to calculate the volume from the surrounding surfaces so either provide the volume value or define all the surfaces to fully enclose the zone.

These errors are telling me that there are 15 rooms in total which are non-closed, is that correct? How can these rooms be not closed, as they where closed in the beginning (at the HB rooms component…)? And the funny thing is, that the 3 rooms that weren’t closed at the HB room component don’t come back in these severe errors… How is all this possible?

And is there a way to find the “bad” surfaces of these rooms which may cause these errors? In the report I can find something like : “use Output; Diagnostics; DisplayExtraWarnings; to show more details on individual zones”. Is this a way to find the “bad” objects in the simulation? And how to do this?

I know these are a lot of questions, but I hope you can help me solve these issues. Thankyou for now!

@MVER unfortunately this is one of the difficulties with defining spaces via the “HB Surface” component, it’s harder to ensure the geometry is watertight. Add in the fact that your interior surfaces have to match adjacent subsurfaces, things can get complicated very quickly. It’s actually a little odd that you’re getting errors associated with surfaces not enclosing the volume but nothing related to adjacent surface matching, it’s usually the otherway around actually.

At any rate, here are some possible sources of your error:

  • Surface normals are flipped. Are all your surface normals facing outward from the closed polygons? If not, redraw the polygon in the opposite orientation (i.e. roof surface normal facing upward in Z-axis should have polygon vertices cycling counter-clockwise in XY plane), or flip normals with Rhino.
  • Geometry not centered at Rhino’s origin. Geometries too far from the origin run into numerical tolerance issues which lead to inaccurate coordinates used for the surface geometries. This is easy to solve: center your model at the origin point.
  • Mismatch between Rhino document tolerance and EP tolerance. What units are you using, and are you using the default tolerances for those units? Try reducing the tolerance of your Rhino document and see if those surfaces are still considered closed.

Some other thoughts:

  • 44 rooms is a lot. A HB Room in EnergyPlus is a thermal zone, which is defined as a space that shares similiar heating, cooling loads (i.e. a space whose environment can be comfortably controlled by a single thermostat). In HB, there’s the additional constraint of thermal zones needing to correspond to specific internal loads. Are you sure you can’t combine multiple rooms into a single thermal zone to simplify your model? This will reduce the probability of error, and simulation time significantly.
  • The volume error is severe but not fatal. Technically EnergyPlus doesn’t require thermal zones to be watertight. The surface areas of the rooms, and orientation must be roughly accurate for the load calculations, but small deviations due to gaps in the surfaces should be averaged out over a large enough model. If the volume in EnergyPlus is close enough to the real volume, you may be able to ignore this warning.
  • To get the “DisplayExtraWarnings” output, I would suggest you download the IDF-Editor (from the bigladder EnergyPlus website), load HB’s produced .idf file into it, and use it’s GUI to select the Diagnostics options. It’s easier then messing around with finding and adding the right custom strings in HB, in my opinion.
2 Likes

Hi @MVER ,

I would bet that the primary source of your issue is that your Rhino model is not actually obeying the tolerance of the file. This is probably why you have 3 room volumes that aren’t technically closed according to Honeybee. Rhino might label them a closed BREP because that seemed to make sense at the time the geometry was created in Rhino but, if you were actually to evaluate them in terms of the current Rhino model tolerance (as Honeybee does), there are technically gaps.

The latest development version of the LBT Grasshopper plugin has a few improvements that should make those Severe errors go away for the Rooms that are, in fact, closed according to Honeybee. So, if you are looking for a fast solution and don’t want to clean up the geometry, you can update to the latest development version using the LB Versioner or wait until the next release, which should be in a couple of weeks or so.

Alternatively, if you are looking for solutions to clean up your geometry and “do it right,” the Pollination Rhino plugin has a lot of tools geared for this purpose that make the model much easier to clean. And it’s still available as a free beta for the next month until it eventually becomes paid.

Many of those are good suggestions, @SaeranVasanthakumar. However, the normals of the Faces that make up the Room are no longer a thing that anyone needs to worry about in the LBT plugin. I know that they were a pain in the neck in Legacy but, as long as LBT Honeybee identifies the Room volume as closed, it will ensure that the normals are always correct in the exported OSM/IDF.

Also, this is totally subjective but I personally wouldn’t call 44 Rooms a large model for the LBT or the Pollination Rhino plugin. When you get above 100 Rooms, the simulation might get long and so you might consider splitting it up but we’ve recently simulated some models with over 1,000 Rooms and, while the simulation can take half a day, we’re still able to get reliable results.

2 Likes

Hi @chris ,

Thanx for your reply and answers to my questions. I really appreciate this.

In Rhino I’ve set both model and layout tolerance to 0.1 (units are in millimeters). I did this in order to make the HB Surface form a closed HB Room more easy. The default value for the tolerance is 0.001 I believe. Could this cause the errors in my model? I’m using the 1.3.0. version of the HB components.

Hi @SaeranVasanthakumar ,

Thankyou for your reply!
I think the reason I don’t have any errors related to adjacent surface matching is because I use the same single surface for one room as I use for another. In this way I don’t have to worry about any adjacent surfaces, because there aren’t any matching surfaces…

And is there a way to trace back the surfaces that are causing these errors. Some of these rooms will have more then 20 surfaces and apertures. It will be almost impossible to trace back the bad surfaces for all the rooms…

Agreed, but my understanding is that MVER is modeling these 44 rooms with the HB Surface component in GH. That’s a pretty big model in terms of GH complexity!

Making complex LBT models directly in Rhino or Revit is definitely the ideal workflow.

Ahhhh, now I see what you’re saying. Yes, I agree that 44 is a lot of rooms to model with the Face-by-Face approach.

On that note, I should say that most of the customization that you would usually do with the Face-by-Face approach can be done with the Room-from-Solid approach thanks to this new HB Properties by Guide Surface component. The workflow is to create your rooms from solids and then use guide surfaces to perform the customization of the particular honeybee Faces that you might normally do in the Face-by-Face approach. A lot of credit goes to @AntonelloDiNunzio for proposing this idea. It’s made many of my workflows a lot more streamlined.