
(defun c:cnd(/ js lst n tbl)
  (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark doc)
  (and (ssget (list (cons 0 "insert")))
    (progn
      (vlax-for ent (setq sel (vla-get-activeselectionset doc))
        (and (eq (vla-get-isdynamicblock ent) :vlax-true)
          (setq tbl (cons (cons (vla-get-effectivename ent)
                                (vlax-get (car (vlax-invoke ent 'getdynamicblockproperties)) 'value)
                          )
                          tbl
                    )
          )
        )
      )
      (vla-delete sel)
      (while tbl        
        (setq n   (length tbl)
                  js  (car tbl)
                  tbl (vl-remove js tbl)
                  lst (cons (cons (- n (length tbl)) js) lst)
        )
      )
      (mapcar '(lambda(x)
                (princ "\n")
                (repeat (- 4 (strlen (itoa (car x))))
                  (princ " ")
                )
                (princ (car x))
                (princ (strcat " " (cadr x) "..." ))
                (princ (cddr x))
              )
              (vl-sort lst '(lambda(a B)(if (eq (cadr a) (cadr B))
                                          (< (cddr a) (cddr B))
                                          (< (cadr a) (cadr B))
                                        )
                            )
              )
      )
    )
  )
  (vla-endundomark doc)
  (princ)
)