When creating a DF model from solid how would you recommend creating plenum zones between each floor?
I’m experimenting with using DF from solid for massing studies, which seems really useful to create multi floor simplified geometry with perimeter zones.
My issue with the resulting HB model is the overlapping of floor and ceiling surfaces, which have very different reflectances. With a plenum I was thinking I could give the plenum ceiling the floor reflectance, and the plenum floor the ceiling reflectance.
At the moment I’m solving this by taking the rooms in a GHPython component, duplicating them, getting the roof_ceiling faces, and moving them down. This then gives me a separate model to use for daylight analysis.
There are a couple of ways to get plenum zones when you generate dragonfly buildings from solids but, before I get to that, the issue you are concerned about here is automatically taken care of under the hood if you set ceil_adjacency_ to True on the DF Model to Honeybee component when translating the Dragonfly Model to Honeybee.
The Honeybee translators to Radiance have been written in a “smart” way such that, whenever you have two Faces with a Surface boundary condition indicating adjacency to one another (eg. the ceiling of one room adjacent to a floor of the room above), the two faces get offset from one another by a value 2 times the model tolerance. You can see this written in the source code here:
This ensures that the ceiling is always getting the ceiling reflectance and the floor gets the floor reflectance without the two interfering with one another and being superimposed on one another. So this may be the most elegant way to address your issue and you can understand that the current issue arises from the default use of adiabatic boundary conditions for floors and ceilings in dragonfly, which don’t have the same “smartness” as Surface boundary conditions.
Let me know if this gives you what you need and, if not, I’m happy to show some ways to generate plenum Zones in the “DF from solid” workflow. I imagine that this would be important if you’re trying to match the room’s floor-to-ceiling height to something other than the default.
Thanks @chris, that’s fantastic news, great to see you’ve already accounted for this and useful for me to see exactly how it gets applied
(I was recently working on a model that had Shade surfaces geometrically aligned with Room surfaces and noticed that the results looked off and adjusted the model, good to know that I need to be cautious of Adiabatic and Shades).
The reflectances were my main concern, getting the correct floor to ceiling was an adjacent extra. I’d definitely appreciate seeing how you’d recommend introducing plenums in DF or HB if you have time for it!
I just wanted to make a note here that the whole dragonfly plenum-generation workflow has gotten a bit of a refactor over the last week. The major take-away is that you no longer need a custom Python component to set up plenums and there is a new “DF Set Plenums” component that allows you to set ceiling and floor plenum depths:
The component works with any Dragonfly object (Building, Story, Room2D) so you can use it in the “From Building Solids” workflow or you can be highly detailed in mapping out which spaces have different plenum depths with a “Rooms to Stories to Buildings” workflow. Also, the input in the DF Model to Honeybee component changed from add_plenum_ to no_plenum_.
So, by default, plenums get generated as long as you assigned them with the new “DF Set Plenums” component but you can set no_plenum_ to True if you realize that all of the plenum rooms are causing your simulation to take a long time.
If you want to try out the new workflow, just make sure to run the LB Versioner. Then you should be able to run sample files using the new plenum component like this one.