Nearly right. Greeble selects the roofs which grant's script saves as a selection set. Then he expands the selection which then includes the walls so the whole building is selected. He then gives each building a unique ID and then re selects just the roof polys and randomly assignes them an ID the result (when face mapped) is 50 random varieties of building with 50 random variety of roof maps.
Thanks Glenn, let me know if there's any possibility of Grant sharing his super script!