I have recently posted in the Forma Forum about this and wonder if here I can get a quickest answer.
When reading metrics using the new DynamofFormaBeta package the metrics are merged by function (Residential, Commercial,…) which is great however when selecting multiple forms it would be really good if the data is structure also by form/building, site or zone.
Is there any method in the Forma API that let you gather the data like that?
We can read the Mass Floors curves and possibly the zone curves so I could potentially create a logic to structure the data however how can I read the function from every floor?.
@BIMadmin can you provide your current dyn with the serialized data in it for me to try and build atop of? I am not entirely following what you’re after.
When you read metrics from Forma using multiple selections,the metrics are exported in a unique dictionary separated by functions. we would like that dictionary to be more granular, by mass then by function so we can have a more detailed dataset we can use for instance to calculate number of units from GFA.
25DVolume schema store the curves from every mass the problem now is that we cannot read the functions.
If this was possible we could also copy these functions to the mass floors loaded by the Forma to Revit Exporter, something that is currently unsupported by the addin.
Oddly enough if you parse the JSON of the .DYN after saving it the data is available in the structure… the latest update might expose that better, but it is still incomplete at this time. I think the team is reviewing how to expose this better, but there is no timeline for an update.
With the recent release of the DynamoFormaBeta package you will now have more control to make these breakdowns.
Check out the updated ‘Building Cost Calculator’ sample in the Forma Extension build by @solamour for an extensive example
Here is a simple graph that will work on all types of building you select. The tricky part is that for each building element in the Forma hierarchy we do not know where which sub element has the GFAUnit representation. For a Basic building it is found on the floor level, while for Line Buildings these are added on the building level. Adding the GetAllChildren node (which includes the parent and all children) lets this graph work on both Basic and Line Buildings. The GFAUnits node flattens out all the GFA representations to a flat list.
We do have an internal discussion going with @jacob.small and @Zach_Kron around the trade-off of making the GFAUnits node returning a flat list with pointers back to the origin elements, or if we should make the node return the nested hierarchy as it iterates through the input elements.