I was wondering if room separation lines might work here - Get the lowest surfaces, make the RSLs, place rooms, and then do one massive offset bounding box to place room separation lines on the perimeter of that. Lastly add your “exterior” room and you’d have a perimeter you could trace quickly. The key here is that the 'spacing" between RSLs needs to either offset by the thickness of the bounding walls, or the walls need to be thin enough that the room won’t want to “fill” the wall cavity. Once place you can get the boundaries of the exterior room, remove the lines created by the bounding box from the list, get the geometry of the room separation lines in Dynamo, and use them to create the exterior walls. You can then delete all the RSLs made in the script and the rooms if desired, but they may be useful in the rest of the workflow. Could be nice to leave as you’d be able to quickly place the hallway as a room as well.). This falls apart some when you have steps in the building or insets on a level, but by following a similar process for upper levels you’d be able to get the shell nailed down. I think.
Unless someone thinks this is insane (well more insane than usual for me) I’ll likely try something along this line later this week/weekend just as a proof of concept.