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.
best, @edpmay
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.
This was quick enough to add to the core libraries:
I have to say that Iâm also surprised by how different the floor area is when you account for the wall thickness. So I can see your point, @MaxMarschall .
I will add a component to the LBT Grasshopper plugin that exposes this method soon. In the meantime, you can access it using this method in the honeybee-energy library:
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.
Hi @chris,
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: