So far, I've come up with a custom Property with an expression and a string splitting rule for the Outside Face Surface.
Ling, I think something similar will work also for your issue with Composites.
But I still think some sort of Surface/Composite "ID" would be better than these workarounds.
It's getting a little crowded among all my expression-based custom properties.
SPLITLEFT ( {Property:Wall/Outside Face Surface}; " "; 1 )