// Создаём переменную, в которой будем хранить идентификаторы нужных нам определений блоков
ObjectIdCollection blockIds = new ObjectIdCollection();
using (Transaction t = sourceDb.TransactionManager.StartTransaction())
{
// Открываем таблицу блоков
BlockTable bt = (BlockTable)t.GetObject(sourceDb.BlockTableId, OpenMode.ForRead, false);
ObjectId btrIdAux;
for (int i = 0; i< 5; i++)
{
if (bt.Has(myArr[i,2])) // myArr - содержит названия блоков, например myArr[0,2] - "блок1", myArr[1,2] - "блок2"
{
btrIdAux = bt[myArr[i, 2]];
// получаем запись таблицы блоков
BlockTableRecord btr = (BlockTableRecord)t.GetObject(btrIdAux, OpenMode.ForWrite);
btr.Name = myArr[i, 1];
blockIds.Add(btrIdAux);
}
}
// Копируем определения блоков в нужную нам базу данных
IdMapping mapping = new IdMapping();
sourceDb.WblockCloneObjects(blockIds, targetDb.BlockTableId, mapping, behaviour, false);