;Make all block attributes non-annotative
;CAD Studio, 2017 - www.cadstudio.cz  www.cadforum.cz

(defun c:BANA ( / bdata en ed eo annotx i)
 (vl-load-com)
 (setq i 0)
 (while (setq bdata (tblnext "block" (null bdata)))
  (if (<= (cdr (assoc 70 bdata)) 2) ; w/o xrefs and xref dep. blocks
  (progn
   (setq en (cdr (assoc -2 bdata)))
   (while en
    (setq eo (vlax-ename->vla-object en))
	(if ; annot attr?
      (and
	   (= (vlax-get-property eo 'ObjectName) "AcDbAttributeDefinition")
       (setq annotx (cadr (assoc -3 (entget en '("AcadAnnotative")))))
       (= 1 (cdr (assoc 1070 (reverse annotx))))
      )
	  (progn
	   (princ (strcat "\nRemoving annotation on " (cdr (assoc 2 bdata)) "|" (vlax-get-property eo 'TagString)))
	   (setq ed (entget en '("AcadAnnotative")))
       (setq ed (subst  (list -3
						 (list "AcadAnnotative" '(1000 . "AnnotativeData") '(1002 . "{") '(1070 . 1) '(1070 . 0) '(1002 . "}"))
						)
		      (assoc -3 ed)
		      ed
	       )
       )
       (entmod ed)
	   (setq i (1+ i))
	  )
    ) ; if annot
    (setq en (entnext en))
   ) ;while
  ) ;progn
  )
 ) ; while
 (if (zerop i)(princ "\nNo annotative attribute found"))
 (princ)
)

(princ "\nBANA loaded (make block attributes non-annotative)")
(princ)
