Non-Convex Zone

ok… I ran into another challenge that doesn’t make sense to me. Attached is a test drawing and a test grasshopper file. The error I am getting is stating that I still have non-convex surfaces but I don’t understand how. There are only three solids.

Can you take a look at this and let me know where I am in error?


TEST.3dm (7.7 MB) (529.1 KB)

Hi @kennethwmartin,

Apologies for getting back late. I made a few changes in your file. (556.6 KB)

Please pay attention to how I have modelled the warehouse. It may not be exactly what you have in mind, but it should give you an idea how zoning is to be done for Energyplus. As @chris once famously said, and I agree, zoning is an art.

It’s really easy to spot a non-convex surface. Imagine you’re drawing lines from one vertice of a surface to all other vertices and you’re doing this for all the vertices of a surface. Now if all those lines fall totally inside the surface then it’s a convex surface. If any of the lines or even a part of it falls outside of the surface then it’s a non-convex surface.

This is something we’re also concerned about and we’re also working towards building a capability in Honeybee to find such non-convex surfaces. See this.

Hope that helps.

Thanks so much for this. I did not understand the convex surface definition. I presumed it only meant that the surfaces must face outward from the defined volume and must have matching surfaces at neighboring surfaces. I will look at your model of this with care and see if I can fully understand the concept.

Some type of automatic detection would be fantastic since this issue must be a big problem for people using Honeybee.

Thanks again for your assistance.


Hi @kennethwmartin

You can check the below picture to see the difference between convex and concave (non-convex) masses …photo_2017-10-07_18-07-47


Thanks a lot @AMIRTABADKANI for posting illustrations. They will help all the people coming to this topic.

Absolutely. As I mentioned in my last reply, we’re concerned about this and have been working on this. Please check the latest post on this issue.. We already have something to help people with this. Feel free to try out the sample file provided in the last post. We’re presently in the stage of reviewing the non-convex detecting capability. We intend to release it soon.

1 Like

Am I correct in understand that North is UP on the page as I am looking at my model from the Top view and if the building is oriented differently that I make the adjustment in the Run Energy Simulation by applying a rotation clockwise in degees?


Yes, the North is positive Y axis in Rhino. You can use this component to visualize if the rotation of North is as you intended.

OK… thanks, that is super helpful.

Also, I am having trouble when I draw in windows manually and using the AddHGGlzg for zones that are not rectangular. I have fixed the surfaces so they are convex as required and it runs without windows but when I add windows on a zone that is not rectangular and facing two different directions the Run Energy Simulation gives me an error. I have found if I only use windows in one direction and on one wall plane that it will work else I get an error as follows;

I am yet a notice at this but is there a step I am missing that will allow multiple window directions and windows on multiple planes in one direction? I would hate to have break up this space in to multiple little zones.



Please share the GH file with geometries internalized if you can and I will take a look.


I’ve just tested your new component (Find-Non-Convex) and it works good to find the surfaces. But the error of “Problem in interior solar distribution calculation (CHKBKS)” is still happening even when the component does not show non-convex surfaces !! Is there something other than the non-convex surfaces can cause this error?

The GH file is attached. (528.5 KB)

Here is a basic example of a room with an alcove and windows. Please let me know what you think is my error.


ROOM WITH (528.6 KB)

Hi @MohammedAlshayeb,

Thanks for checking the component. I looked at your file. While the surfaces that make up the zone are convex, the zone is not, and that causes the severe error. Please find the file attached. I basically split your geometry in two zones. That works. (531.9 KB)
Hope this helps!

You brought up something important to my notice. Presently, the component looks at non-convex surfaces. I should expand its capability to catch cases such as the one you shared. Thank you very much for this!

Checked your file. While there were no non-convex surfaces, the zone was non-convex. I modified your zones to avoid this. Please find files attached (532.7 KB)
nonConvex.3dm (115.2 KB)

Hope this helps.

OK… I thought the non-convex issue only applied to individual surfaces. Clearly I was in error. In summary, when creating the volumes the entire volume must be non-convex. thanks again

This is not 100% true @kennethwmartin.
Zones and even surfaces can be convex. You will receive errors during the simulation. Some of them warnings and some severe. Usually both end the simulation, producing results.
In any case, one way to deal with such errors is changing the setting of the solar model to be used.
I recommend better to thing on Thermal Zones and not on"Convex solved" zones. The image above is producing 3 thermal zones form what maybe needed to be just one.
In short, think about your specific case and don’t conclude “universal” conclusions.

Indeed. Having non-convex zones should be your priority if you intend to use FullInteriorAndExterior, FullInteriorAndExteriorWithReflections for solar distribution. You can change the solar distribution setting as recommended by @AbrahamYezioro if you don’t intend to use FullInteriorAndExterior, FullInteriorAndExteriorWithReflections. And that will cancel the severe error concerning the non-convex zone. This is how you change the setting.

Lastly, as Abraham said, it is always prudent not to expect things to work universally.

I updated the notes in the component to address the cases similar to what you brought up. Thanks again for sharing this!