I want to delete all attribute of block inside drawing using AutoLISP ObjectDBX method.
The below program works well: it deletes the attributes of all blocks inside the drawing, but when I edit this block in the Block Editor, I see all the attributes are still there.
I think I need to delete this attribute from definition of block.
;[dwgin]--input drawing file
;[dwgout]-- Output drawing fath with name
;function 'LM:GetDocumentObject' lee mac function to open drawing in ObjectDBX method
(defun DBXAttDelete ( dwgin dwgout / doc flg val )
    (if (setq doc (LM:GetDocumentObject dwgin))
        (progn
            (vlax-for lyt (vla-get-layouts doc)
                (vlax-for obj (vla-get-block lyt)
                    (if (and (= "AcDbBlockReference" (vla-get-objectname obj))
                             (= :vlax-true (vla-get-hasattributes obj))
                        )
                        (foreach att (vlax-invoke obj 'getattributes)              
                    (if (vl-catch-all-error-p (setq err (vl-catch-all-apply 'vla-delete (list att))))
                      (princ (strcat "\nERROR: " (vl-catch-all-error-message err)))
                    )
                        )
                    )
                )
            )
           (vla-saveas doc dwgout)
            (vlax-release-object doc)
            flg
        )
        (prompt (strcat "\nThe drawing \"" dwgin "\" was not found or could not be accessed."))
    )
)
Can you help to find where I need to improve/correct this program.