Several building standards (incl. Passive House and Building Code of Australia) require the Treated Floor Areas (TFA) of rooms as an input. TFA is the floor area excluding the finished exterior/interior walls.
Assuming that the boundaries of my HB zones represent the outer boundary of external walls and the center lines of interior walls, and considering that Honeybee knows the thicknesses of all constructions, is there a way to automate the calculation of TFAs per room?
From What I understand: Where as we with the PHPP doing Passive House stuff; use the external surface for the ‘brep’ of a building.
WIth E+ using ‘0 thickness walls’ recommending centerline placement for interior; there’s a probability that there is going to be a bit of a disconnect from value of your TFA in the PHPP and an E+ model.
I’m probably not the best person to give a really good answer on this but Ed’s made some really cool tools for LBTools ==> PHPP9 so you can get your dynamic detailed E+ model and your PHPP model from the one mode:
So you lets say: drop your building’s floor plan dwg’s in Rhino; use the external line for exterior surfaces; internal wall centerlines for E+ then with LBT2PH can do your TFA actual off the inner room wall srfc lines; then have both!
Yes I’ve checked out @edpmay’s tool and it’s great, since it gives you different options to define TFA, the most accurate one of which is to draw the boundaries directly.
I was just hoping to have an automated way that is more accurate than just assuming a fraction.
I have in the past been able to parse Honeybee zones in Python, iterate through their surfaces and access those surfaces’ properties. I’m sure one can also access constructions and therefore wall thicknesses, which would allow the automated creation of offsets to estimate quite accurately what the TFA is.
I just haven’t had the time to do so yet, but could imagine that @edpmay is planning to develop something like this anyway?
Thats a great question. Right now, when we have to use TFA, we end up drawing all the spaces/floors and assigning TFA ‘weighting’ factors to each floor plate. It’s laborious and silly for sure. Several folks have inquired about more ‘automatic’ solutions for this though (as well as more procedural tools/solutions for PHPP spaces in general), and so it’s certainly on our list for inclusion in future versions.
At the moment though, drawings those floors is the best option I’d say.
We just need a method on room.energy.properties that loops through the Room faces, grabs all of the walls, and subtracts the thickness * horizontal face length for all of the exterior walls (and 1/2 that for the interior walls). So, if someone sends a PR for this, I would gladly review and merge. Otherwise, I will get to it eventually.
Just note that the floor area calculation with EP constructions assumes that all NoMass materials have zero thickness and many of the insulation layers in the default honeybee standards library are represented with these NoMass materials. So the floor area may actually be smaller unless you have modeled the insulation layers with detailed opaque materials.
Most of the attributes the new component shows can already be exposed with the ColorRoomAttr and LabelRooms components.
Is it possible to add the one missing attribute, floor_ep_constr, to those? It will be useful as well to have it there.
I was originally trying to implement it like that but I realized that there’s no reliable way to do it given that the geometry can be in a few different units systems (meters, millimeters, feet) but the construction thickness is always in meters. So, unless I know the units of the Rhino model, I can’t accurately compute this value. So this is why I had to add a function to compute it (instead of adding a property) and why there’s a whole new component for it instead of using the existing ones.
If you just need a “Color Room” visualization with these floor areas, you can use the “LB Create Legend” to build one pretty easily: