я просто поместил создание окружности в цикл и все заработало. почему?
Вот и мне интересно, почему. В строчке:
lyy = ly.Value.GetObject(OpenMode.ForWrite) as BlockTableRecord;Вы объект типа Layout приводите к типу BlockTableRecord и закономерно получаете null и как перенос
только создания окружности помог Вам сделать код рабочим.... загадка.
зачем ее объявлять в каждой итерации? разве нельзя один раз а потом просто вставлять везде?
Нельзя. Вам ведь нужен не один объект, а по объекту на каждом листе, т.е. много объектов, вот и создавайте эти объекты.
Если очень грубо: Когда Вы создали объект, под него был выделен некий диапазон в памяти, когда Вы добавили этот объект в базу чертежа, автокад пометил, что объект из этой области(с этим адресом) уже добавлен в базу чертежа и второй раз его не добавит, т.к. он уже есть.