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

28/11/2014

Проблема с экспортом в Navisworks

Вопрос: Я пишу надстройку, в которой мне надо экспортировать модель.

Проблема в том, что тот же самый код работал замечательно в Revit 2014, но в 2015 диалог экспорта в NWC просто зависает.

Кто-нибудь знает, что за изменения были сделаны в методе Document.Export, что он теперь не работает в новой версии?

Ответ: Я попробовал экспортировать модель в NWC как в 2014 Revit так и в 2015 Revit с помощью простенького кода. В обоих случаях не возникло никаких проблем. Можете предоставить код, в котором вы делаете экспорт? Кстати сначала я столкнулся с проблемой, что в Revit 2015 не было возможности экспорта в Navisworks, но после того как я это исправил, диалог с экспортом появился и модель была экспортирована, как и ожидалось.

Ответ: Экспорт в Navisworks из пользовательского интерфейса на моем компьютере тоже работает.

Вот кусок кода, где я оставил только непосредственно сам экспорт. Вот с этим кодом, диалог зависает и ничего не происходит.

Код - C#: [Выделить]
  1. [Transaction(TransactionMode.Manual)]
  2.   public class Command : IExternalCommand
  3.   {
  4.     public Result Execute(
  5.       ExternalCommandData commandData,
  6.       ref string message,
  7.       ElementSet elements)
  8.     {
  9.       UIApplication uiapp = commandData.Application;
  10.       UIDocument uidoc = uiapp.ActiveUIDocument;
  11.       Application app = uiapp.Application;
  12.       Document doc = uidoc.Document;
  13.  
  14.       // создаем настройки экспорта NWExportOptions
  15.       NavisworksExportOptions nweOptions =
  16.         new NavisworksExportOptions();
  17.       nweOptions.ExportScope = NavisworksExportScope.Model;
  18.       nweOptions.ViewId = uidoc.ActiveView.Id;
  19.  
  20.       // Редактируем документ в транзакции
  21.       using (Transaction tx = new Transaction(doc))
  22.       {
  23.         tx.Start("Export");
  24.         doc.Export(@"D:\Shared", @"test.nwc", nweOptions);
  25.         tx.Commit();
  26.       }
  27.       return Result.Succeeded;
  28.     }
  29. }

Ответ от эксперта по Revit: Я не очень знаком с реализацией последней версии модуля экспорта в Navisworks, но, я неплохо разбираюсь в коде по использованию этого модуля. У меня есть несколько предположений, почему такая реализация не работает:

  • Мне кажется в данном случае транзакция не нужна. Я говорю так, потому что фактически при экспорте не происходит изменение модели. Тем не менее, возможно (хотя это было бы странно), что модулю экспорта все же требуется транзакция.
  • Я думаю возможен экспорт только 3D-вида. Хотя в данном случае активный вид и так является 3D-видом, иначе было бы исключение.
  • Ни и конечно, как активный документ ActiveDocument, так и Текущий вид ActiveView могут быть null, поэтому нужно это проверить. Но в данном случае я не думаю, что проблема именно в этом.

Ответ 2: Как уже заметил мой коллега, Транзакция здесь совсем лишняя. Я протестировал ваш код без использования транзакции и все прекрасно работает. Проверьте пожалуйста у себя и сообщите нам решилась ли проблема или нет.

Вот код, который работает:

Код - C#: [Выделить]
  1. public Result Execute(
  2.       ExternalCommandData commandData,
  3.       ref string message,
  4.       ElementSet elements)
  5.     {
  6.       UIApplication uiapp = commandData.Application;
  7.       UIDocument uidoc = uiapp.ActiveUIDocument;
  8.       Application app = uiapp.Application;
  9.       Document doc = uidoc.Document;
  10.       NavisworksExportOptions nweOptions =
  11.         new NavisworksExportOptions();
  12.       nweOptions.ExportScope = NavisworksExportScope.Model;
  13.       nweOptions.ViewId = uidoc.ActiveView.Id;
  14.      
  15.       doc.Export(@"D:\Shared", @"test.nwc", nweOptions);
  16.      
  17.       return Result.Succeeded;
  18.     }

Ответ: Работает! Так значит все же что-то было изменено в транзакции? Ведь это все работало в 2014 версии внутри транзакции. Хотя уже какая разницаJ Спасибо за помощь.

Источник: http://adndevblog.typepad.com/aec/2014/10/navisworks-exporter-and-aerial-catamaran.html

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

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