I would suggest posting this question to the Skill or Custom IC design forums.
To get things started you can query the layout cellview to determine the layers in use as follows:
From the CIW enter the following skill commands:
cvId = geGetWindowCellView() ;;;<--- returns the DB ID of the current cellview.
lpps = cvId~>lpps ;;;<--- get a list of Layer-Purpose Pairs
lpps~>layerName ;;; <--- prints a list of layer names
lpps~>purpose ;;; <--- prints a list of layer purposes
You next have to determine how to use this information to manipulate the list of valid layers displayed in the LSW.
Let us know how it goes...this appears to be a useful feature.