(DEFUN SF$GETNESTED (VBLOCK ISDBXOPEN / VITEM)
(IF (= :VLAX-TRUE (VLA-GET-ISXREF (SETQ VITEM (VLA-ITEM (VLA-GET-BLOCKS (IF ISDBXOPEN SF$DBXDOCUMENT (VLA-GET-ACTIVEDOCUMENT (VLAX-GET-ACAD-OBJECT)))) (LM:EFFECTIVENAME VBLOCK)))))
(PROGN
(SETQ SF$SPATH (VLA-GET-PATH VBLOCK))
(IF (NOT (VL-POSITION SF$SPATH (MAPCAR 'VLA-GET-NAME SF$LDBXDOCS)))
(PROGN
(SETQ SF$DBXDOCUMENT (LM:ODBX SF$SPATH))
(SETQ SF$LDBXDOCS (CONS SF$DBXDOCUMENT SF$LDBXDOCS))))
(SETQ AXDBMODELSPACE (VLA-GET-MODELSPACE SF$DBXDOCUMENT))
(VLAX-FOR AXDBOBJECT AXDBMODELSPACE
(IF (= (VLA-GET-OBJECTNAME AXDBOBJECT) "AcDbBlockReference")
(SF$GETNESTED AXDBOBJECT T)
(SETQ SF$LENTITY (CONS (LIST AXDBOBJECT (VLA-GET-PATH VBLOCK)) SF$LENTITY)))))
(PROGN
(IF (NOT ISDBXOPEN) (SETQ SF$DBXDOCUMENT (VLA-GET-ACTIVEDOCUMENT (VLAX-GET-ACAD-OBJECT))))
(VLAX-FOR AXDBOBJECT (VLA-ITEM (VLA-GET-BLOCKS SF$DBXDOCUMENT) (LM:EFFECTIVENAME VBLOCK))
(IF (= (VLA-GET-OBJECTNAME AXDBOBJECT) "AcDbBlockReference")
(SF$GETNESTED AXDBOBJECT ISDBXOPEN)
(SETQ SF$LENTITY (CONS (LIST AXDBOBJECT (IF SF$SPATH SF$SPATH NIL)) SF$LENTITY))))))
SF$LENTITY
)
(SETQ SSOBJECT (SSGET))
(SETQ I 0)
(SETQ LOBJECTS NIL)
(REPEAT (SSLENGTH SSOBJECT)
(SETQ SF$LENTITY NIL)
(SETQ SF$SPATH NIL)
(SETQ AXDBMODELSPACE NIL)
(SETQ SUBOBJS NIL)
(SETQ VOBJECT (VLAX-ENAME->VLA-OBJECT (SSNAME SSOBJECT I)))
(IF (= (VLA-GET-OBJECTNAME VOBJECT) "AcDbBlockReference")
(SETQ SUBOBJS (SF$GETNESTED VOBJECT NIL)))
(IF SUBOBJS
(SETQ LOBJECTS (APPEND SUBOBJS LOBJECTS))
(SETQ LOBJECTS (CONS (LIST VOBJECT NIL) LOBJECTS)))
(PRINC "\rGathering objects...")
(SETQ I (1+ I)))
Command: TEST
("12C3" "AcDbMText")
("12C1" "AcDbLine")
("12C0" "AcDbCircle")
("126F" "AcDbBlockReference" "I:\\z-Temp\\xr04.dwg" (("1239" "AcDbBlockReference" "I:\\z-Temp\\xr01.dwg" (("10B5" "AcDbLine") ("10B4" "AcDbLine") ("10B3" "AcDbLine") ("10B2" "AcDbLine"))) ("11A4" "AcDbPolyline")))
("11D8" "AcDbBlockReference" "I:\\z-Temp\\xr03.dwg" (("1156" "AcDbPolyline") ("1155" "AcDbPolyline")))
("1145" "AcDbBlockReference" "I:\\z-Temp\\xr02.dwg" (("1107" "AcDbCircle") ("1106" "AcDbCircle")))