Hmm, it appears to do it by doing:
tf=techGetTechFile(cvId)lpps=setof(lpp tf~>lpps lpp~>purpose=="blockage")layerNames=lpps~>name
but I'm not convinced that's how it should do it, given that blockages are not layer purpose pairs. You need the LPP defined in the tech file so that you can have a packet associated with the blockage so it knows how to display it, but I don't think that's really right.
The layer palette seems to use a different mechanism (I'm talking about IC615) to show the list of choices for layers that can have routing blockages.
I'll check what it should be.