; Н.Н.Полещук, readme.txt
; В книге "Программирование для AutoCAD 2013-2015"
; (издательство "ДМК Пресс", 2015)
;

Приложение AcadExtension.dll иллюстрирует возможность расширения функциональности стандартным объектам AutoCAD. Автор - А.А.Бушман.

В AutoCAD 2013-2015 свойство HasAttributeDefinitions класса BlockTableRecord (определение блока, или запись в таблице блоков) возвращает неверное значение для тех записей, из которых определения атрибутов были ранее удалены (подтверждено фирмой Autodesk).

Для воспроизведения проблемы достаточно выполнить следующий набор простых действий:
1. Создаем определение блока c одним произвольным объектом (например, с полилинией).
2. Добавляем определение атрибута в наше определение блока.
3. Видим, что свойство BlockTableRecord.HasAttributeDefinitions равно true, как и полагается.
4. Проходим по объектам нашей BlockTableRecord и видим, что их два: полилиния и определение атрибута.
5. Теперь в редакторе блоков удаляем ранее добавленное определение атрибута.
6. Программно проходим по объектам нашей BlockTableRecord и видим лишь один объект (как и полагается): полилинию.
7. Теперь смотрим значение свойства BlockTableRecord.HasAttributeDefinitions и видим, что оно равно true вместо ожидаемого false.

Приложение создает метод расширения функциональности, с именем HasAttDefs.
В нашем примере после удаления определения атрибута метод HasAttDefs вернет значение false.

Регистрируемая команда: TESTBLOCK.


			
			
