Building program workflow


I have a kind of question or bug report. Probably the first.

I’m trying to “control” the zone program for each of them. I’m using the HB_ListZonePrograms component and connecting it to the HB_Mass2Zone. I’m choosing MidRiseApartment from the BldgPorograms.

So the first question is how to assign a precise program for each zone? I assume the Mass2Zone makes some random assignment …

In the attached picturre i tried to pick from the list and make all of the zones “Apartments”. It is not working.

Moreover, if you look at the right side of the picturre it asigned an OpenOffice use, which is not part of the list at all (is this a bug?).

I’m kind of confuse what is the “proper” workflow on this matter.

How to set the program more precisely per/zone at the beginning or change it in the middle of the work.



I would add that the midRiseApartment program is faulty (in the case i’m testing). The simulation fails using this program. Changing to any other it runs ok.

It says:

  1. Failed to find NONE in the Honeybee schedule library.

  2. Solution exception:‘NoneType’ object has no attribute ‘lower’


I know why this happens and I will say that it is intentional but I also think that it might as well be a bug since I have seen so many people mess this up (including myself in the public videos that I put up) such that I think we should change it.

The Mass2Zone component has traditionally required you to input a full list of values for the zoneProgram, the zoneNames, and the isConditioned, that matches the length of the zoneMasses list. However, everyone who uses this component expects to be able to plug in a single value for the zoneProgram and have it apply to all of the connected zones.

Accordingly, I have just re-written the component and posted it to the github. The component will now assign the zone program to all zones when a single value is connected and, if you plug in a longer list of values that does not match the length of the zoneMasses list, the component will give you a warning to let you know that it is assigning a default zoneProgram, zoneName, or isConditioned value.

This is such a serious issue that I think it merits changing all of my example files and changing this component in the userObjects folder at the link. I am going to do this now.

Thanks for reporting this, Abraham. I had known about the issue but the full magnitude of how serious it is did not hit me until you posted.

Thanks Chris!

Abraham, We went back and forth on this couple of times. I assume what Chris just did should make it work as expected.

Back to None problem for residential that look like a bug in OpenStudio JSON file. I am far behind of updating the JSON file and I assume they have already fixed that as I reported the issue few months ago. For now you can use setZoneSchedule and fix the issue by applying your own schedule for the NONE schedule.



Thanks for your both replies.

I get it to work. I added a NONE schedule in my custom definitions.

I have a couple of issues, not exactly related to the discussion subject, but still, i’ll write them here.

Attached the file i’m using and my custom definitions IDF, so you can test also.

  1. In the isConditioned input i gave a list where one zone is not conditioned and the other 5 are. The ColorZones component is failing (1. Solution exception:index out of range: 5) - see point 5 in the file. The reason is that it is expecting that all zones are conditioned. When i input temperatures (for instance) it works fine. How you suggest to work out this (very) possible situation?

  2. Naming and assigning a list for the zones (point 1 in file) in certain order is not consistent with the order i can show the different zones (for instance point 7 in file). Is there a way to have more control in the naming and programing a zone (besides doing one by one)? Or any other suggestion you have for this file wil be welcomed.


-A. (416 KB)
userCustomEPLibrary.idf (25.8 KB)

Hi again … and sorry for asking so much.

I have another issue here. I’m changing the construction materials with the setEPZoneCnstr component (according to video 16, i think) (see point 4 in attached). So far so good. Simulation is fine.

The issue happens with the RadiantTempMap component when i connect the HB_Zones with the output of the setEPZoneCnstr component. Then i get the following message (see point 8 Bad):

1. For one of the meshes in the _viewFactorMesh, the number of faces in the mesh and test points in the _testPtsViewFactor do not match.
This can sometimes happen when you have geometry created with one Rhino model tolerance and you generate a mesh off of it with a different tolerance.
Try changing your Rhino model tolerance and seeing if it works.

When the connected zones coming from the output of point 3 in file it is OK.

(You need the Custom file from my previous message).

Any ideas?


-A. (416 KB)

This is also a question for Chris. I think you guys have been through this issue once. Chris, let me know if you want me to take a look at this.


Sorry for getting back so late. Very busy week with midterms here. I have this whole weekend blocked off for updating, though :slight_smile:

  1. I just fixed the bug in ColorZones such that you can now connect up lists of data that do not include values for all connected zones (and vice versa). Everything should be good now in these cases (see attached image of my parent’s house with an unconditioned attic).

As for the issue with the MRT temperature map, I am looking into it now. Will post back shortly.

Ah I read a bit more in the discussion and realized why the Viewfactor component was not working correctly for you. I just uploaded a new user object that always flattens the zones by default. This should prevent future users from experiencing the same problem.

Thanks Chris,

The ColorZones is ok now but … ColorSurfaces and RadiantTempMap

complain about:

1. Solution exception:‘tuple’ object has no attribute ‘startswith’


Oh gosh. This was because of some new code that I put in to deal with a stream of raw data that I was bringing in from a field study. I just uploaded a version of these two components that is fixed now. I think that I am going to make a new component for Ladybug that allows you to construct a custom Ladybug header for any data set. This way we get easy compatibility with other GH tools and raw data that people might bring in from instruments. I tried to make something to accommodate this inside our current components and this was not the right way to go.