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

ADN Club => AutoCAD .NET API => Тема начата: Алексей (IdeaSoft) от 18-09-2018, 22:40:23

Название: Загрузить содержимое из внешней ссылки
Отправлено: Алексей (IdeaSoft) от 18-09-2018, 22:40:23
Как мне получить список внешних ссылок
и поочередно загрузить из них содержимое.

Я как должен поступить:
1)  Для каждой внешней ссылки я должен открыть базу данных по имени файла через метод ReadDwgFile.
2)  Или сразу считать содержимое через свойство databadse?
Название: Re: Загрузить содержимое из внешней ссылки
Отправлено: Алексей (IdeaSoft) от 18-09-2018, 22:43:04
Так пробую

Код - C# [Выбрать]
  1.                 using (Transaction tr = db.TransactionManager.StartTransaction())
  2.                 {
  3.                     BlockTableRecord btRecord = (BlockTableRecord)tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db), OpenMode.ForRead);
  4.                    
  5.                     foreach (ObjectId id in btRecord)
  6.                     {
  7.  
  8.                         if (btRecord.XrefStatus == XrefStatus.Resolved) {
  9.                         }
  10.                     }
  11.                 }
Название: Re: Загрузить содержимое из внешней ссылки
Отправлено: Александр Ривилис от 18-09-2018, 22:50:43
Как мне получить список внешних ссылок
и поочередно загрузить из них содержимое.
Если BlockReference ссылается на BlockTableRecord, для которой XrefStatus == XrefStatus.Resolved, то берёшь её Database и можешь с неё читать. Только с WblockCloneObjects будет облом.
Название: Re: Загрузить содержимое из внешней ссылки
Отправлено: Алексей (IdeaSoft) от 18-09-2018, 22:54:11
Ага, спасибо буду пробовать!
Название: Re: Загрузить содержимое из внешней ссылки
Отправлено: Алексей (IdeaSoft) от 18-09-2018, 23:00:33
Только с WblockCloneObjects будет облом
Это что получается я только смогу прочитать данные Clone не смогу использовать?

А может мне внедрить содержимое ссылки
Название: Re: Загрузить содержимое из внешней ссылки
Отправлено: Александр Ривилис от 18-09-2018, 23:05:15
Только с WblockCloneObjects будет облом
Это что получается я только смогу прочитать данные Clone не смогу использовать?
Это значит, что для этой базы придётся сделать кое-какие манипуляции, а именно до Database.WblockCloneObjects вызвать Database.RestoreOriginalXrefSymbols, а после копирования Database.RestoreForwardingXrefSymbols();
Название: Re: Загрузить содержимое из внешней ссылки
Отправлено: Александр Ривилис от 18-09-2018, 23:06:51
А может мне внедрить содержимое ссылки
Можешь и внедрить при помощи Database.BindXrefs
Название: Re: Загрузить содержимое из внешней ссылки
Отправлено: Александр Ривилис от 18-09-2018, 23:09:32
Вообще посмотри эту тему: http://adn-cis.org/forum/index.php?topic=7936.0
Возможно там всё, что тебе нужно.