I am trying to do some 'Selective masking' like this example:

However mine would be text sitting on top of buildings. I want the black outline of building that is underneath the text to be masked out. my question is does the text have to be annotation?
my text is dynamic created using maplex?