Ok, so if it’s one model for thousands of buildings it gets a bit trickier, but not impossible. All tilesets have a structure to them, depending on how they are saved. I would start at the Tileset.root sub-object and traverse through there to find the bounds of further sub-groups. You could also poke your head into Tileset.tilesLoaded() and Tileset.allTilesLoaded() events and keep track of tiles in (and out) of view with bounding spheres (to some degree of the structure in your tileset file).
Hard to give further advice without more info, but maybe create an example of logging the above events. I remember back a year or so ago I did an automatic bounds tracker plugin for pointclouds, but the principle is the same.
Cheers,
Alex