I also have another script called loose geometrry to groups that you mighr find useful. I wrote it specifically for what you are doing. It finds a face, then takes all touching edges and faces and turns that intoa group, then it moves on to the nect face that has not been added to a group and repeats the process. It is handy for quickly making groups of zillions of entire extruded buildings. I wrote it for the same process you are describing, something I was soing a LOT of at the time at work.
I also have a snippet of code that I developed that takes a selection of faces and extrudes them by a given height, and a given amount of extrusions. It is used for selecting a bunch of flat building footprints then specifying how many storeys the building will have and how tall each storey is. And I even built in the ability to have the first floor be different than the other floors, since that is a common practice in planning to have a tall bottom floor with shorter upper floors.
Let me know if that would be a useful script in your workflow and I'll clean it up and post it on Monday.
Chris