Add Glazing problems: Break up distance as list


I’m trying to figure out the best way to add glazing to my model. I want to run energy and daylight factor simulations. If I get it right there are two ways to do this;

  • Manually assign glazing properties to certain surfaces

  • Glazing by ratio

I have some issues with both methods though. As I’d like to use the excellent SplitBuildingMass and Solve Adjacencies components the first one is complicated. Correct me if I’m wrong, but first I have to make the HBZones, then decompose these zones in order to add glazing to the walls and finally turn the HBSurfaces into HBZones again. As I have multiple levels I have problems making zones of the surfaces and also the model is already quite slow. Is there a better way to manually assign glazing properties to certain surfaces? I’ve tried adding the window+wall geometry to the directly to the SplitBuildingMass component but, understandably, the Solve Adjacencies component doesn’t understand that parts of the walls are windows.

The second method works great! Using some simple mathematics I’m able to compute the ratio value when I add a certain number of windows with certain dimensions. However, I need the window widths to be correct when I run daylight factor simulations. It would be possible to solve this by calculating what break up distance will result in the correct window width. However, it doesn’t seem like it’s possible to assign brake up distances for each facade (North, West, South, East) with a list as it is with glazing ratio, window height and sill height. Is there a way around this?

I’ve attached a image of what happens when I try to add break up distances as a list.

I would really appreciate some help. If any of you have a suggestion of a different solution for my glazing issue I’m open to new ideas.

My only concern is that the calculations will be too slow, I plan to use Octopus to run several simulations for different designs later on. I have a quite good computer, but a i7 doesn’t help much with single threaded calculations.


Hi Sverker,

Back to first approach you should make sure that your geometries are in the right branches.

Back to the image breakupDist_ is item Access, if you want to input a list similar to what you have there you need to graft the inputs. Right now it generates the windows 4 times and that’s why everything is slow in your example.



Thanks for you reply Mostapha.

I have my doubts regarding the first approach, I can’t figure out a good way to input glazing geometries to the Solve Adjacencies component (SA). I can add the exterior walls with glazing to it by using the wall and window geometry and AddHBGlz component, but the SA doesn’t seem to understand the inputs (duplicated exterior walls etc.). As mentioned earlier it should be possible to solve this by decomposing the zones, adding glazing to the walls and finally turn the HBSurfaces into HBZones again but it seems like a very complicated solution.

It would be really great if there was a way to add window geometries to the Solve Adjacencies component!

As for the second approach I must admit that I don’t fully understand data management in Grasshopper. Anyways, I tried to graft the data but the result is the same, see the attached image. But you’re saying that it should be possible to feed breakUpDist_ with a list of values?

So, I’ve discarded the methods above and replaced the SplitBuldingMass component with a number of native GH components. By doing so the workflow is more straight-forward (Geometry->HBSurface->HBSrfWGLZ->HBZones) and It should work better when the design gets more complicated.

I’ve come across a new problem I that I haven’t faced before though, the Decompose Based On Type outputs are strange… In PrintSceen1 the Solve Adjacencies component is previewed and it looks like everything is working as it should. But the Decompose component only show the roof and a couple of the walls (PrintScreen2)? What have I done wrong?

I’ve also attached the GH model.

Thanks again for your help!

HBZones (454 KB)

Hi Sverker,

It was not that difficult to implement list access for break up distance based on cardinal direction. I meant to do this in the initial implementation of the input but I was just too lazy at the time.

You can get the new glazing ratio component by syncing with the github. Let me know if this will solve your problem.


Great work Chris! I’ll try out the updated glazing by ratio component when I get a chance.

As mentioned, I’ve decided to use ‘addHBGlz’ instead and it works fine now. I think the problems in my previous reply had to do with the data management, grafting/flattening the geometries affected how ‘SolveAdjecencies’ acted. I got it working by solving adjacencies in two steps, firstly for each floor and secondly for the whole building. Not as neat but it works fine.

I have another question though: Each time I start up Rhino+Grasshopper my custom constructions has disappeared from the EP construction library and I have to re-add them. Sometimes they also disappear when I’ve had the model open for a long time. Is there a way to store them permanently in the lib? I don’t fully understand if they are stored locally or not?

Also, are there some documentation on Daylight Factor? The simulation works perfectly, it’s a really great feature that it support multiple cores and has a quality setting! Priceless when trying out multiple designs. But I cant wrap my head around how to set north and location (or .epw)?


I am glad that you got your issue fixed. As for your question, the “Add To EP Construction Library” component only copies the construction to the memory of the Grasshopper document. As such, it is deleted when you close the file and you have to leave the “Add To EP Construction Library” components in the GH file to ensure that the construction is written the next time that you open the file. If you drag and drop an new HB_HB component onto the canvass, it overwrites the construction library in your memory so you have to make sure that any HB_HB component is in the back of the canvass (select it and hit “Cntrl + B” to send it to the back) and you might have to re-run the construction components to write them back to the memory.

To add constructions permanently to your library, you must add them to the userCustomEPLibrary.idf file in the C:\ladybug folder (you might also have to add them to C:\Users\YourUserName\AppData\Roaming\Ladybug).

Daylight factor is something that Mostapha could speak more about. Generally, I have found it to not be as useful or meaningful as Daylight Autonomy or even point-in-time Illuminance. Just the ratio of indoor light to outdoor light doesn’t tell me what it means for the visual comfort of a person.

Mostapha should correct me if I am wrong but I do not think that you can change the North for daylight simulations at present since Radiance does not seem to have a North input that you can change. In the future, I think that Mostapha was planning to add a North input that would rotate all of your geometry before exporting it. Again, I should emphasize that this last part is my inference.


Also, are there some documentation on Daylight Factor? The simulation works perfectly, it’s a really great feature that it support multiple cores and has a quality setting! Priceless when trying out multiple designs. But I cant wrap my head around how to set north and location (or .epw)?

Daylight factor is a geometrical calculation and won’t change based on orientation or climate, that’s why you don’t have an input for north or epw file.

For the rest of daylight simulations (except annual) you can rotate the sky.


Thanks for clarfying about the North, Mostapha. I realize that you can rotate the CIE sky but not the others.