Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: avc от 22-03-2023, 16:22:32
-
В чертеж вставлена внешняя ссылка внутри которой есть свои блоки. Один из них мне надо вставить в модель текущего чертежа. Пытаюсь сделать копию BlockReference прямо в модель через WblockCloneObjects - получаю eInvalidObjectOwner. Пытаюсь копировать сначала BTR в таблицу блоков тем же WblockCloneObjects, а потом уже вставлять. Так работает, но пока не встретиться блок с вложенными блоками. На составных блоках опять eInvalidObjectOwner. Есть наверно какой-то простой метод?
-
Есть наверно какой-то простой метод?
Не думаю. Но можешь попробовать выполнять копирование не как из внешней ссылки, а как из отдельной Database.
Альтернативный вариант - Database.RestoreOriginalXrefSymbols() перед копированием и Database.RestoreForwardingXrefSymbols() после копирования.
-
RestoreOriginalXrefSymbols вызывает "eNotApplicable" (вызываю для базы данных открытого чертежа. Так? И внутри транзакции...).
Буду пробовать вставлять непосредственно из dwg, на который ссылается внешняя ссылка.
Спасибо.
-
вызываю для базы данных открытого чертежа. Так?
Нет. Для BlockTableRecord.GetXrefDatabase.