Сам пробовал вот таким способом, но как уже понял, я меняю атрибут только во вхождении, а не в определении блока.Константные атрибуты есть только в определении блока, так что делаешь ты правильно. Второй вариант - найти по имени блок (Block) и циклом по всем его элементам найти определения атрибутов (Attribute), проверить какие из них константные (свойство Constant). Ну и те что надо изменить.
Глупый вопрос, если постоянные атрибуты есть только у определения блока, то тогда почему у объектов класса AcadBlock нет метода getstaticattributes?Ну на этот вопрос я ответить не могу. Так решили в Autodesk...
Я так понимаю что AcadBlock это само определение блока, а AcadBlockReference это его вхождения.Да.
Если я меняю аттрибуты способом, который описан выше, то на чертеже то они изменяются, но когда я захожу в окно управления атрибутами, они остаются старыми, и при обновлении блока опять сбрасываются.Блок случайно не динамический?
Да, динамическийВот с этого и надо было начинать. Если блок динамический, то после вставки его не с параметрами по-умолчанию он становится анонимным. Т.е. его имя не соответствует оригинальному имени. Например, был "ABC", а станет "*U123" (хотя в Панели свойств будет показываться как "ABC"). blockref.GetConstantAttributes вернет константные атрибуты не блока "ABC", а блока "*U123" и соответственно при их изменении константные атрибуты блока "ABC" какими были, такими и останутся.