quick-n-dirty
;;; FUNCTION
;;; returns a list of attributes and values. i.e.
;;; (("WHAT" . "Desk") ("WHO" . "Mark"))
;;;
;;; ARGUMENTS
;;; vla-object (block object)
;;;
;;; USAGE
;;; (setq ent (car (entsel "\nPick a Block...")))
;;; (setq Blk (vlax-ename->vla-object ent))
;;; (setq lst (MST-attribute_list Blk))
;;;
;;;
;;; PLATFORMS
;;; 2000+
;;;
;;; AUTHOR
;;; Copyright© 2002 Mark S. Thomas
;;; mark.thomas@theswamp.org
;;;
;;; VERSION
;;; 1.0 Fri Aug 16, 2002
;;; 1.1 Wed Feb 12, 2003 19:30:11 changed function name
(defun MST-attribute_list (Obj / attribs attrib-list attribute-list)
(if (= (type Obj) 'VLA-OBJECT)
(if (= (vlax-get-property Obj 'ObjectName) "AcDbBlockReference")
(if (= (vlax-get-property Obj 'HasAttributes) :vlax-true)
(progn
(setq attribs
(vla-GetAttributes Obj)
attrib-list
(vlax-safearray->list (vlax-variant-value attribs))
); setq
(foreach X attrib-list
(setq attribute-list
(append
(list
(cons
(vlax-get-property X 'TagString)
(vlax-get-property X 'TextString)
)
)
attribute-list)
)
); foreach
); progn
)
)
)
attribute-list
); defun
(defun find-9992 (/ ss cntr obj lst blk_lst)
(setq ss (ssget "_x" '((0 . "INSERT") (2 . "jpole")))
cntr 0
)
(repeat (sslength ss)
(setq obj (vlax-ename->vla-object (ssname ss cntr))
lst (MST-attribute_list obj)
)
(if (= (cdr (assoc "NUMBER" lst)) "9992"); case sensitive 'assoc'
(setq blk_lst (cons (vlax-vla-object->ename obj) blk_lst))
)
(setq cntr (1+ cntr))
)
blk_lst
)
(setq blk-ent-lst (find-9992))