Редактирование связанного файла
Вопрос: В своем коде я пытаюсь создать пространство внутри связанной модели. Но, получаю ошибку при вызове метода NewSpace:
Хотя я вызываю метод внутри транзакции главного документа и поэтому не пойму, почему появляется ошибка.
- UIApplication uiapp = commandData.Application;
- UIDocument uidoc = uiapp.ActiveUIDocument;
- Application app = uiapp.Application;
- Document doc = uidoc.Document;
- foreach (Document d in app.Documents)
- {
- using (Transaction t = new Transaction(doc))
- {
- t.Start("New Space");
- Space sp = d.Create.NewSpace( ... );
- t.Commit();
- }
- }
Может ли ошибка быть связана с тем, что я вызываю метод NewSpace в связанном документе, а транзакция отрыта в главном?
Такое чувство, что Revit не дает мне использовать транзакции в любом другом документе, корме как главном.
Есть ли какие-нибудь идеи о том, как возможно отредактировать связанный файл?
Ответ: Да, действительно. Транзакция крепко привязана к документу. Если у вас два документа, которые вы хотите отредактировать, для каждого нужно использовать свою транзакцию.
Если у вас есть под-транзакция в документе B, то она не может быть вложена в транзакцию, связанную с документом А.
Однако, что более важно в вашем конкретном случае – это то, что связанные документы не доступны для редактирования. В них вообще не может быть транзакций.
Чтобы отредактировать связанный документ, нужно удалить связь, отрыть этот документ отдельно от главного, сделать там изменения, сохранить, и затем заново создать связь с основным документом.
Обсуждение: http://adn-cis.org/forum/index.php?topic=3147
Опубликовано 27.10.2015