Здравствуйте, уважаемые форумчане! мне в свое время подсказали как найти все вставки динамического блока
http://adn-cis.org/kak-najti-vse-vstavki-dinamicheskogo-bloka.htmlнемного откорректировав код я получил
ObjectIdCollection dynBlockRefs=null;
BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);
foreach (ObjectId btrId in bt)
{
BlockTableRecord btr = (BlockTableRecord)tr.GetObject(btrId, OpenMode.ForRead);
if ((btr.Name.Contains("Ось")==true))
{
ObjectIdCollection anonymousIds = btr.GetAnonymousBlockIds();
dynBlockRefs = btr.GetBlockReferenceIds(true, true);
foreach (ObjectId anonymousBtrId in anonymousIds)
{
BlockTableRecord anonymousBtr = (BlockTableRecord)tr.GetObject(anonymousBtrId, OpenMode.ForRead);
ObjectIdCollection blockRefIds = anonymousBtr.GetBlockReferenceIds(true, true);
foreach (ObjectId id in blockRefIds)
{
dynBlockRefs.Add(id);
}
}
}
}
очевидно, что если у меня есть таблице блоков несколько бтр с содержанием имени "Ось" то в коллекцию наберется не все ID, т.к. при нахождении нового бтр с содержанием имени "Ось" - коллекция переприсвоится
dynBlockRefs = btr.GetBlockReferenceIds(true, true);
найти метод по склеиванию коллекций - не нашел
попробовал добавлять id по отдельности .add()
ObjectIdCollection dynBlockRefs=null;
ObjectIdCollection dynBlockRefsFull = null;
BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);
foreach (ObjectId btrId in bt)
{
BlockTableRecord btr = (BlockTableRecord)tr.GetObject(btrId, OpenMode.ForRead);
if ((btr.Name.Contains("Ось")==true))
{
ObjectIdCollection anonymousIds = btr.GetAnonymousBlockIds();
dynBlockRefs = btr.GetBlockReferenceIds(true, true);
foreach (ObjectId id in dynBlockRefs)
{
dynBlockRefsFull.Add(id);
}
foreach (ObjectId anonymousBtrId in anonymousIds)
{
BlockTableRecord anonymousBtr = (BlockTableRecord)tr.GetObject(anonymousBtrId, OpenMode.ForRead);
ObjectIdCollection blockRefIds = anonymousBtr.GetBlockReferenceIds(true, true);
foreach (ObjectId id in blockRefIds)
{
dynBlockRefsFull.Add(id);
}
}
}
}
вот вообще не могу понять в чем ошибка
не понимаю почему не получается склеить несколько коллекций в одной.
Подскажите, как склеить различные коллекции dynBlockRefs в одну dynBlockRefsFull ?
и почему возникает ошибка?