(vl-load-com)
(defun c:SYNCVIS (/ ss i ent ev vis obj attrs)
(setq ss (ssget "X" '((0 . "INSERT")(2 . "ИМЯ_БЛОКА"))))
(if (null ss)
(princ "
Блоки не найдены.")
(progn
(setq i 0)
(repeat (sslength ss)
(setq ent (ssname ss i)
ev (entget ent)
vis (cdr (assoc 301 ev)) ; состояние видимости
obj (vlax-ename->vla-object ent)
attrs (vlax-invoke obj 'GetAttributes))
(foreach a attrs
(if (= (strcase (vla-get-TagString a)) "VIS_STATE")
(vla-put-TextString a (if vis vis ""))
)
)
(setq i (1+ i))
)
(princ (strcat "
Обновлено: " (itoa (sslength ss)) " блоков."))
)
)
(princ)
)