・ (nentsel) で選択したオブジェクトが"VERTEX"の場合、POLYLINE の図形名を取得する
・ (nentsel) で選択したオブジェクトが"ATTRIB"の場合、INSERT の図形名を取得する

(nentsel) は従属図形があると、従属図形名を返します
そのため、POLYLINE を選択すると、従属図形である "VERTEX" が返されます。
また、属性情報を持つ INSERT 図形の属性文字を選択した場合は "ATTRIB" が返されます。
この "VERTEX" "ATTRIB" のデータから、主図形の "POLYLINE" "INSETR"の図形名を取得するには、(entnaxt) で 図形タイプ "SEQEND" を探して、そのエンティティーデータのグループコード -2 の値を取得します。
"VERTEX"も"ATTRIB"も同じ処理で親図形の名前が取り出せます

(defun Jo_en_list ( / en ed en_list x Jof_en_list)
  ;サブルーチン PLINE INSERT の従属図形名を含む図形名リストを取得 ;
  (defun Jof_en_list ( en ed / en_list )
    (while ed
      (if (= (cdr (assoc 0 ed)) "SEQEND") ;"SEQEND"が見つかったら
        (progn
          (setq en (cdr (assoc -2 ed))) ;グループコード -2 を取得して while 終了
          (setq ed nil) 
          )
        (setq ed (entget (setq en (entnext en)))) ;"SEQEND"が見つかるまで entnext
        )
      )
    (while en ;"POLYLINE""INSERT"の図形名からスタート
      (setq en_list (append en_list (list en))) ;"SEQEND"が現れるまで図形名を en_list に追加
      (if (= (cdr (assoc 0 (entget en))) "SEQEND") 
        (setq en nil)
        (setq en (entnext en)) ;"SEQEND"が見つかるまで entnext
        )
      )
      en_list
    )
  ;メインルーチン ;
  (setq ed (entget (setq en (car (nentsel "\nPOLYLINEか属性文字を選択")))))
  (if (not(or
            (= "VERTEX" (cdr (assoc 0 ed)))
            (= "ATTRIB" (cdr (assoc 0 ed)))
         ))
    (exit)
    )
  (setq en_list (Jof_en_list en ed))
  (mapcar '(lambda (x)
             (princ (strcat "\n" (cdr (assoc 0 (entget x)))))
             (princ x)
             ) en_list)
  (princ)
  )