@ChrisRS , unfortunately contour labels can still be selected (via QSELECT or SELECTSIMILAR) even if their parent surface is off/frozen.
@AllenJessup , give this lisp a shot:
(defun c:SELECTBYSURFACE (/ exampleLabel exampleLabelVLA exampleLabelDxfType targetSurfaceName result sslabel i label labelSurfaceName)
(setq exampleLabel (car (entsel "\nSelect a label on target surface:")))
(setq exampleLabelVLA (vlax-ename->vla-object exampleLabel))
(setq exampleLabelDxfType (cdr (assoc 0 (entget exampleLabel))))
(setq targetSurfaceName (vlax-get-property (vlax-get-property exampleLabelVLA 'Surface) 'Name))
(setq result (ssadd))
(setq sslabel (ssget "x" (list (cons 0 exampleLabelDxfType))))
(setq i 0)
(repeat (sslength sslabel)
(setq label (ssname sslabel i))
(setq labelSurfaceName (vlax-get-property (vlax-get-property (vlax-ename->vla-object label) 'Surface) 'Name))
(if (= labelSurfaceName targetSurfaceName)
(ssadd label result)
)
(setq i (1+ i))
)
(sssetfirst nil result)
(princ)
)
Someone else on the forum came up with an AutoLISP to select labels by their style, and I've used their code as a starting point. I wish I could remember who it was, but I don't have it written down 😞