It would be a bit of a parallel installation to CiviCRM, but there is a Drupal module called Rooms, and it handles rooms and buildings, I think. It might be useful in conjunction with Commerce.
Features (from the project page):
- Create rooms and assign availability (or on hold states) via a calendar.
- Manage pricing for rooms using calendars that allow to set pricing for entire seasons or just change it for specific dates.
- Define optional add-ons for rooms.
- Charge either per-night or per-person.
- Handle children discounts.
- Create bookings and keep customer records.
- Make rooms available for booking with a availability search functionality and/or calendar - handling both immediate bookings and bookings following owner confirmation.
- Search by Room Type.
- Handle multiple owners within a single Drupal installation through fine-grained permissions.
- Full integration with Commerce to manage payments, a range of different payment gateways, and a host of other e-commerce features.
- Accept full or partial payments (deposits) using Commerce features.
I am actually working on a project that uses it currently and am playing with Rules to push rental/reservation payment data from Commerce into CiviCRM.