Strictly speaking, an occupancy belongs to a unit, and unit only. The unit in turn belongs to a building - but having a BuildingID in the Occupancies table is redundant, since the building is already given by the core relationships:
Buildings -< Units -< Occupancies >- Tenants
However, since you want to select a building first, you will need to add an auxiliary relationship as:
Occupancies::BuildingID = Units 2::BuildingID
This will make all units of the selected building related. Use this relationship to define a value lists of units, showing only related records.
or even better... only the available units for the building using some type of flag that the unit is unoccupied.
That may be more complicated, because - if I understand correctly - a unit is "occupied" by virtue of having a conflicting occupancy?