If you can do it with Open Street maps, that's probably the best (but do be prepared for the licensing terms), for buildings it seems like the building tag would be helpful http://wiki.openstreetmap.org/wiki/Key:building
If that doesn't look promising, you probably want to talk to Navteq (now part of nokia); they're a major source of the data that everyone else uses, it looks like there's some sample data here http://sampledata.navteq.com/site/global/developer_resources... and probably you can find contact info from there somehow
Comments
If you can do it with Open Street maps, that's probably the best (but do be prepared for the licensing terms), for buildings it seems like the building tag would be helpful http://wiki.openstreetmap.org/wiki/Key:building
EG http://preview.tinyurl.com/bfc65yl
If that looks about right, I'd get the Michigan extract http://downloads.cloudmade.com/americas/northern_america/uni... and use Osmfilter to pull out only the ways with a building tag.
If that doesn't look promising, you probably want to talk to Navteq (now part of nokia); they're a major source of the data that everyone else uses, it looks like there's some sample data here http://sampledata.navteq.com/site/global/developer_resources... and probably you can find contact info from there somehow