using (Transaction tr = db.TransactionManager.StartTransaction())
{
BlockTable blockTable = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);
foreach (ObjectId btrId in blockTable)
{
BlockTableRecord btr2 = (BlockTableRecord)tr.GetObject(btrId, OpenMode.ForRead);
if ( btr2.Name.ToUpper() == "имя блока".ToUpper())
{
// получаем все анонимные блоки динамического блока
ObjectIdCollection anonymousIds = btr2.GetAnonymousBlockIds();
foreach (ObjectId anonymousBtrId in anonymousIds)
{
// получаем анонимный блок
BlockTableRecord anonymousBtr = (BlockTableRecord)tr.GetObject(anonymousBtrId, OpenMode.ForRead);
foreach (ObjectId objId in anonymousBtr)
{
try
{
Hatch hatch = tr.GetObject(objId, OpenMode.ForWrite) as Hatch;
if (hatch != null)
hatch.RecordGraphicsModified(true);
}
catch
{ }
}
}
}
}
tr.Commit();
}