Hola
Supongo que te refieres a un bloque dinámico. (Porque hay bloques anónimos que nacen siendo anónimos y no tienen "una versión original", o mas bien su nombre "anónimo" -*@###- es su nombre original. Por ejemplo los puntos de control de las cotas, elementos importados entre versiones de CAD no compatibles 100% o bloques que desde una rutina uno decide crearlos anónimos)
bien, la forma mas simple es con visual lisp, utilizando la propiedad EffectiveName de los bloques
Puedes hacer una comprobación de que se trate de bloques dinámicos, y si da positiva obtener esa propiedad:
Con autolisp puro también se puede, esa información está en diccionarios de extensión de las inserciones o referencias a bloques, por lo que debes buscar dentro del diccionario de extension del objeto tipo "INSERT" el diccionario AcDbBlockRepresentation y dentro de este el xrecord AcDbRepData, y en su lista de definición DXF, la entidad en el codigo 340 contiene los datos de definicion del bloque original.
Parece complicado? No lo es tanto, solo llegue a eso con un poquito de ingenieria inversa dibujando un bloque dinamico y revisando sus componentes con la funcion entget. Con eso salio la segunda de dos funciones que te dejo a continuacion, la primera lo resuelve con visuallisp y la segunda con autolisp puro desde los diccoinarios