Organizing Area by Type for BOMA Calculations

I am trying to get revit to autogenerate BOMA values from area plans in a model, and export them to a spreadsheet. I also need it to be as automated as possible.

The way I have it running now, I am able to sort the areas based on an area number that I give them in a schedule. I found that if I give all Building Common Area the designation “1”, the Office Areas as “2” and the Unrentable as “3”, I am able to get them into separate lists that I can then run through a python script to perform the necessary calculations and send it to excel.

I can’t find any way to automate the sorting of areas in to lists based on their types. Right now, I need to manually enter a number designation to each new area that I create, which leaves too much room for human error. Is there a way to either sort based off of the text parameter of “Building Common Area” or similar? Or if not, is there a way to automatically coordinate the number designation when I select the area type?

I tried to upload the BOMA file as well, but I am a new user, so it won’t let me. Hopefully my description is enough to get the message across.

1 Like

List.GroupByKey will do the trick here.

If you need to upload files you can use another service (dropbox, box, onedrive, google drive, etc. )until your trust level goes up enough for you to post here.

Ok. So I am able to get the area types organized in a display that uses Revit’s number identifier, which is consistent on any projects that I open. For example, instead of building common area, it identifies the area as type 32256. I am hoping that I can get the sorted list following the list.groupbykey to display the area type, area value, and level like it is displayed in the watch nodes in the green boxes, so I don’t need to rewrite all the python code in the node that follows that. I think I have uploaded the dynamo script here. DynamoBOMAscript.dyn (61.7 KB)

Do you have a matching Revit file?

Here is a link for the revit model

I’m very interested in where this goes as I am trying to do the same thing. Did you figure it out? Would love to here about the process!