FYI, I’ve created a workaround. Here is the final script (and beware, it’s a monster):
OCCUPANCY_1-Create and Update Areas.dyn (217.8 KB)
Packages required: SteamNodes, MEPover, designtech, Clockwork, Data-Shapes, Rhythm, archilab, GeniusLoci
Tested on Dynamo 2.0.3 and Revit 2019
The script workflow for the end user is only to Choose which Room Names in the View to create or update Areas on.
Behind the scenes:
When Areas are created by the script, they’re linked to the Room using the Area’s ElementID which is recorded into a custom Room parameter I called “Room ID”. The current Room’s Area size is also recorded in the Area Element in a custom Area parameter I called “Previous Area”. When Area Boundaries are created, their Element IDs are combined into a string and assigned to the Area element as its “Room ID”, linking them to the Area.
Using Dictionaries, when an Area is found that is associated with a Room, its Name and Number are updated to match the room. If the Area’s “Previous Area” parameter is found to be different from the associated Room’s area, the associated Area Boundaries are deleted and recreated using the Room’s finish boundaries. The Area’s “Previous Area” parameter is then updated to the current Room’s Area, and the new Area Boundaries’ Element ID string replaces the Area’s Room ID value.
This way, the user can keep running the script whenever they make any design changes, and their Area Plans (Life Safety Plans) will be updated automatically. Note that manually-created Area Boundary lines won’t be affected, this is good so users can draw in boundaries for fixed furniture, casework, etc. without having to redraw them each time
The only manual editing required is if you want use Gross Area for a space and include shaft openings or auxiliary rooms. You’ll have to manually edit the Area Boundaries each time the Room size updates, or change the bordering walls to not be Room Bounding.