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

26/06/2020

Открытие и сохранение моделей Revit со включенными режимом совместной работы в сервисе Design Automation для Revit

Нам часто задают вопросы, касающиеся обработки моделей Revit со включенным режимом совместной работы с помощью сервиса Design Automation. Ранее, сервис DA не поддерживал работу с такими моделями напрямую, и было необходимо слегка дополнить код обработки, выполняемый на сервере, так, чтобы воспрепятствовать появлению диалогового окна "Model has been transmitted from remote location" (наша дискуссия на StackOverflow). Теперь же разработка приложений, использующих сервис Design Automation для Revit, обрабатывающих модели в режиме совместной работы стала немного проще, в списке изменений появилось следующее:

Улучшено поведение по умолчанию при открытии и сохранении моделей в режиме совместной работы, при открытии модели сохраняются рабочие наборы, добавлена поддержка сохранения модели в качестве нового центрального файла.

Модель Revit с поддержкой совместной работы в Design Automation открывается в режиме "Отсоединить и сохранить рабочие наборы". Это значит, что модель остается со включенным режимом совместной работы и при её сохранении необходимо использовать WorksharingSaveAsOptions для того, чтобы сохранить файл как центральную модель. Вот как это можно сделать:

Код - C#: [Выделить]
  1. ModelPath path = ModelPathUtils.ConvertUserVisiblePathToModelPath("result.rvt");
  2. // Если открываем файл в режиме совместной работы, то и сохраняем его как
  3. // новый центральный файл
  4. SaveAsOptions opts = new SaveAsOptions();
  5. if (doc.IsWorkshared)
  6. {
  7.     opts.SetWorksharingOptions(new WorksharingSaveAsOptions { SaveAsCentral = true });
  8.     WorksharingUtils.RelinquishOwnership(doc, new RelinquishOptions(true), new TransactWithCentralOptions());
  9. }
  10. doc.SaveAs(path, new SaveAsOptions());

Более полный пример можно найти, например в коде приложения DeleteElementsApp на Github.

Источник: https://forge.autodesk.com/blog/worksharing-model-support-revit-design-automation-0

Автор перевода: Александр Игнатович
Опубликовано 26.06.2020