Приветствую Вас снова, разбираюсь с динамическими блоками, вставлять вхождение блока научилась, вот никак не могу понять как мне найти/изменить существующие атрибуты блока, урывками находила, что через BlockReference, но не пойму как мне добраться до существующих атрибутов, подскажите пожалуйста. (Мне нужно задавать длину динамического блока представляющего собой грубо говоря прямоугольник с отверстиями внутри него).
Вот код, каким образом добавляю вхождение блока:
Transaction acTrans0 = acCurDb.TransactionManager.StartTransaction();
using (acTrans0)
{
// открываю таблицу блоков документа
BlockTable acBlkTbl0;
acBlkTbl0 = acTrans0.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;
ObjectId btrId;
if (acBlkTbl0.Has("ГО2"))
{
btrId = acBlkTbl0["ГО2"];
}
else
{
// открываю таблицу блоков на запись
acBlkTbl0.UpgradeOpen();
// создаю новое определение блока, задаю ему имя
BlockTableRecord btr = new BlockTableRecord();
btr.Name = "ГО2";
// добавляю созданное определение блока в таблицу блоков, сохраняя его ID
btrId = acBlkTbl0.Add(btr);
// добавляю созданное определение блока в транзакцию
acTrans0.AddNewlyCreatedDBObject(btr, true);
}
// открываю пространство модели (Model View) - оно является одной из записей в таблице блоков документа
BlockTableRecord acBlkTblRec0;
acBlkTblRec0 = acTrans0.GetObject(acBlkTbl0[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;
LayerTable acLyrTbl2 = acTrans0.GetObject(acCurDb.LayerTableId, OpenMode.ForWrite) as LayerTable;
acCurDb.Clayer = acLyrTbl2["Слой1"];
// создаю новое вхождение блока, используя ранее сохраненный ID определения блока
BlockReference br = new BlockReference(Point3d.Origin, btrId);
// добавляю вхождение блока на пространство модели и в транзакцию
acBlkTblRec0.AppendEntity(br);
acTrans0.AddNewlyCreatedDBObject(br, true);
acTrans0.Commit();
}