And simply with this, can be done?
(defun c:PASTEPOINT ( / basept)
;; Define your reference points for each floor
;; Replace the coordinates with your actual base points
(setq basept "Basement")
(initget 9 "Basement Ground First")
(while (not (listp basept))
(setq basept (getpoint (strcat "\nPaste to which floor? [Basement/Ground/First]<" basept ">: ")))
(initget 9 "Basement Ground First")
)
;; Execute paste command at selected base point
(command "_.PASTECLIP" "_none" basept)
(prin1)
)