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

27/10/2015

Редактирование связанного файла

Вопрос: В своем коде я пытаюсь создать пространство внутри связанной модели. Но, получаю ошибку при вызове метода NewSpace:

 

Хотя я вызываю метод внутри транзакции главного документа и поэтому не пойму, почему появляется ошибка.

Код - C#: [Выделить]
  1. UIApplication uiapp = commandData.Application;
  2.   UIDocument uidoc = uiapp.ActiveUIDocument;
  3.   Application app = uiapp.Application;
  4.   Document doc = uidoc.Document;
  5.  
  6.   foreach (Document d in app.Documents)
  7.   {
  8.     using (Transaction t = new Transaction(doc))
  9.     {
  10.       t.Start("New Space");
  11.       Space sp = d.Create.NewSpace( ... );
  12.       t.Commit();
  13.     }                                  
  14.   }

Может ли ошибка быть связана с тем, что я вызываю метод NewSpace в связанном документе, а транзакция отрыта в главном?

Такое чувство, что Revit не дает мне использовать транзакции в любом другом документе, корме как главном.

Есть ли какие-нибудь идеи о том, как возможно отредактировать связанный файл?

Ответ: Да, действительно. Транзакция крепко привязана к документу. Если у вас два документа, которые вы хотите отредактировать, для каждого нужно использовать свою транзакцию.

Если у вас есть под-транзакция в документе B, то она не может быть вложена в транзакцию, связанную с документом А.

Однако, что более важно в вашем конкретном случае – это то, что связанные документы не доступны для редактирования. В них вообще не может быть транзакций.

Чтобы отредактировать связанный документ, нужно удалить связь, отрыть этот документ отдельно от главного, сделать там изменения, сохранить, и затем заново создать связь с основным документом.

Источник: http://thebuildingcoder.typepad.com/blog/2015/09/geometry-basics-and-no-modifying-linked-files.html#3

Автор перевода: Виктор Чекалин

Обсуждение: http://adn-cis.org/forum/index.php?topic=3147

Опубликовано 27.10.2015