Идентификатор проекта Revit

Автор Тема: Идентификатор проекта Revit  (Прочитано 1922 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн GektorАвтор темы

  • ADN
  • *
  • Сообщений: 5
  • Карма: 0
    • НТЦ Гектор
Всем привет!
Возникла проблема идентификации проекта Revit.
Мы разрабатываем плагин для Revit, одной из функций которого будет экспорт определенного набора параметров элементов в файл для последующей обработки внешней программой.
После обработки файл может быть импортирован обратно для записи в чертёж некоторых данных.
Для идентификации документа при экспорте/импорте первоначально предполагалось использовать "метку" проекта в виде GUID, сохраняемого в DataStorage.

Проблема в возможном сценарии использования этой функции:
Открыть проект - Вызвать команду экспорта - Закрыть проект без сохранения.

В этом случае "метка" проекта не сохранится и при последующем импорте файла документ опознан не будет.

Возможное решение - использовать функцию ExporterIFCUtils.CreateProjectLevelGUID;
Используется следующим образом:
UIDocument uidoc = commandData.Application.ActiveUIDocument;
Document doc = uidoc.Document;
string ifcproject = ExporterIFCUtils.CreateProjectLevelGUID(doc, Autodesk.Revit.DB.IFC.IFCProjectLevelGUIDType.Project);

На первый взгляд - всё работает отлично, генерируемый идентификатор одинаковый в течение сессии и между сессиями, но остаются некоторые сомнения, поэтому прошу совета.

Может быть кто-то знает, есть ли какие-нибудь недостатки или проблемы с использованием CreateProjectLevelGUID() для идентификации проекта вместо хранения в модели своего GUID?