Autodesk ObjectId и ElementId в dwg
Я использую для разработки одного веб-приложения с использованием Forge API. Работает хорошо и хорошо. В то же время я использую автоматизацию проектирования в кузнице. Я могу создать пакет, и он работает нормально.
Я обработаю файл DWG, используя forge api, готовящийся к просмотру. Я могу просматривать DWG в браузере.
Моя проблема заключается в том, что у меня есть событие щелчка средства просмотра, щелчок события заполняет идентификатор элемента. Однако в моем пакете я могу получить только идентификатор объекта. ID элемента и ID объекта совершенно разные.
Каков постоянный идентификатор каждого объекта клиента и стороны сервера.
Резюме: когда пользователь щелкает объект в программе просмотра, я хочу получить идентификатор и сохранить свою локальную базу данных. и с помощью пакета мне нужно обработать объект, выбранный пользователем.
Пример: когда пользователь щелкает номер чертежа во вьюере. Со следующего раза я хочу динамически изменить номер чертежа, используя пакет вызовов из кода C#.
1 ответ
Для файла RVT один простой способ справиться с этим - извлечь Forge externalId
из свойств объекта Forge. Это равно элементу Revit UniqueId
имущество. Надстройка Revit RvtMetaProp использует это.
О, теперь я только что нашел лучшее, более полное и краткое объяснение уникальных идентификаторов для элементов Forge Viewer:
Средство просмотра дает доступ к трем типам идентификаторов при работе с файлами Revit:
dbId
: это зависит от средства просмотра и используется для манипулирования элементами в средстве просмотра, например, для.getProperties()
метод.- Revit
ElementID
: выставлено как частьName
собственность в зрителе. Когда вы выбираете что-то, заголовок панели свойств имеет вид "Имя [12345]". Вы можете проанализировать эту строку имени и извлечь идентификатор элемента. - Revit
UniqueID
: выставлено какexternalId
недвижимость в.getProperty()
ответ.