Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: avc от 22-03-2023, 16:22:32

Название: Как вставить в модель ссылку на блок из внешней ссылки?
Отправлено: avc от 22-03-2023, 16:22:32
В чертеж вставлена внешняя ссылка внутри которой есть свои блоки. Один из них мне надо вставить в модель текущего чертежа. Пытаюсь сделать копию BlockReference прямо в модель через WblockCloneObjects - получаю eInvalidObjectOwner. Пытаюсь копировать сначала BTR в таблицу блоков тем же WblockCloneObjects, а потом уже вставлять. Так работает, но пока не встретиться блок с вложенными блоками. На составных блоках опять eInvalidObjectOwner.  Есть наверно какой-то простой метод?
Название: Re: Как вставить в модель ссылку на блок из внешней ссылки?
Отправлено: Александр Ривилис от 22-03-2023, 17:00:46
Есть наверно какой-то простой метод?
Не думаю. Но можешь попробовать выполнять копирование не как из внешней ссылки, а как из отдельной Database.
Альтернативный вариант - Database.RestoreOriginalXrefSymbols() перед копированием и Database.RestoreForwardingXrefSymbols() после копирования.
Название: Re: Как вставить в модель ссылку на блок из внешней ссылки?
Отправлено: avc от 22-03-2023, 18:20:20
RestoreOriginalXrefSymbols вызывает "eNotApplicable" (вызываю для базы данных открытого чертежа. Так? И внутри транзакции...).
Буду пробовать вставлять непосредственно из dwg, на который ссылается внешняя ссылка.
Спасибо.
Название: Re: Как вставить в модель ссылку на блок из внешней ссылки?
Отправлено: Александр Ривилис от 22-03-2023, 21:32:52
вызываю для базы данных открытого чертежа. Так?
Нет. Для BlockTableRecord.GetXrefDatabase.