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: