How to model natural ventilation through chimneys using airflow network model in Honeybee 1.4

Hi all! I am trying to model natural ventilation through windows and chimneys using airflow network model in honeybee 1.4. I am modelling a multi zone apartment with a chimney having a diameter around 100 mm-150 mm connected to one of the rooms (shown in picture) as a natural exhaust for warm air to be removed from rooms.
The main idea is to check how ventilation through windows in combination with a chimney would help in cooling of the apartment.
Is there a way to model this on honeybee?
My initial idea was to make a simplified model with the chimney as a single zone adding operable windows on top and bottom. But it is not possible to do that as I get this error message.

  1. The following exterior operable apertures are within 10 degrees of being horizontal.
    These cannot be simulated in EnergyPlus and so they have been set to be inoperable:

Is there a way around it to model the same on honeybee using airflow network? I am relatively new to honeybee and energyplus so any sort of input would be welcome.

1 Like

Hey @Archana ,

Yes, there are a few ways of modeling this in Honeybee. You can model it with the AFN like you are proposing but you’ll have to add your operable windows to the sides of your chimney at the top (rather than having a horizontal opening at the top, which you can see is not allowed according to that error message). I have to imagine that vertical chimney openings are probably closer to what things will be in reality since you don’t really want an open chimney at the top since rain can fall down it. I imagine that there will at least be a chimney cover that keeps the very top covered. If you’re going with this AFN route, make sure that you have an AirBoundary in between the chimney and your main Room.

Another possibility is just to model this case with simple ventilation EnergyPlus objects using Additional Strings. You’ll see that EnergyPlus supports this ZoneVentilation:WindAndStack object, which can be used to model cases like this if you set up the inputs appropriately. I used that object a lot to model chimneys like this in the past. If you go down this route, you’ll add custom IDF text to the add_str_ input of the HB Model to OSM component and you’ll probably want to set the simulation name (aka. identifier) of your Honeybee room to something constant so that you can reference your zone in the additional text. For this, you can use the HB Set Identifier component.


Hi Chris,

Since I want to use AFN in my model, I tried modelling the chimney as a zone over a single room. But I don’t see any change in the room temperatures even when chimneys of different heights are used. I think the reason could be that the airboundary between the roof and the chimney is not present. I solved the adjacency but when visualising the model using the HB Visualise by type component I don’t see the air wall between the roof and the chimney.
This is how I solved the adjacency between the zones.

After that I added the windows and solved the window adjacency as shown

Is this the right way to go about it?
I am also uploading the grasshopper script I worked out.
SIngle zone with (144.5 KB)

You didn’t intersect your two room volumes before you created your honeybee objects. So no adjacencies were solved. See this component.

After I did this, you have an air boundary:

SIngle zone with (141.1 KB)


Hi @chris i was going through this script and also tried to do some more modelling using Airflow network but it seems that the Output = AFN Zone Infiltration Air Change Rate or AFN Zone Ventilation Air Change Rate doesnt show up in the eso or sql file even in this example file (Single zone with chimney_CWM) it didnt show any results. Any suggestions what might be going wrong?

If you want those outputs from EnergyPlus, then you will have to request them using some custom Simulation Parameters along with the Custom Simulation Output.

Then, you can parse in the results to grasshopper using the Read Custom Result component.

Hi @chris,

I’m studying the file because I have a similar system to develop. You have mentioned the INTERSECT SOLID component before solving the adjacencies between rooms. In your file I cannot find the component and I would like to know if it is enough to use SOLVING ADJACENCIES with air boundary. Also, how does the INTERSECT SOLID component work with a model builded by faces?
Thank you.
SIngle zone with (141.1 KB)

Hi @angelo.figliola ,

The geometry in the file had already been intersected before I used it to create honeybee objects. So there was no need to intersect it again. Did you watch this tutorial video as I had recommended last time:

That shows you that you can just intersect the solid breps before you create Honeybee objects.

1 Like

Hey Chris,

I am working on a multi-zones energy model and I’m using the INTERSECT SOLID component. I have a problem that I am not able to solve: how can I assign an OBJ IDENTIFIER to each room if I am usign the INTERSECT SOLID component? Should I explode the tree and create the model room by room?

Thanks a lot

You assign the _name_ to the Rooms when you create them with the HB Room from Solid component. Not when you intersect them. You can also use the HB Set Identifier to overwrite the ID of the Room at any point.