Are you doing something like -
add all roofs to a family
if player sprite over roof family
..choose that family member and make opacity less ?
Any chance you can post the capx ?
edit - sorry re-read post
Have you looked at grouping the walls and roof of each building together using an instance variable ? So you can quickly choose which walls/roof need to be hidden ?
How are you deciding when the player is behind the building ? Z position and overlapping or just working on the y position ?