Всем привет!
Возникла проблема идентификации проекта 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?