В чем разница между viewableID и guid?

В программе просмотра forge для файла, преобразованного в Revit, при выполнении поиска в пузырьках: viewerApp.bubble.search ({'тип': 'геометрия', 'роль': '3d'}); Или viewerApp.getSelectedItem ()

Я получаю узел элемента вроде:

children: (2) [a, a]
data: {guid: "a21582db-704b-df51-dd71-dbf8c12bcc1a", type: "geometry", role: "3d", name: "{3D}", viewableID: "6104055e-60d9-4037-9adc-cd38e10fcfba-00139c8e", …}
id: 8
isLeaf: true
parent: a {parent: a, id: 7, data: {…}, isLeaf: false, children: Array(14)}

У меня есть гид узла и viewableID. Затем, чтобы отобразить модель, я могу вызвать viewerApp.selectItemById (guid / viewableID), что завершит отображение той же модели.

Если я хочу указать на 3D-вид, который я сейчас вижу в средстве просмотра, для дальнейшего использования (например, после обновления файла Revit), какой атрибут для него лучше всего: guid или viewableID?

Спасибо,

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
277
1

Ответы 1

Идентификатор видимой области обозначает уникальный идентификатор представлений Revit в Revit API, как и в моем исследовании, но я не могу найти взаимосвязь между представлениями Revit и guid в видимом пузырьковом узле. Я уточняю у нашей группы инженеров, есть ли у них какие-то идеи.

viewerApp.selectItemById() предназначен для запроса пузырькового узла через его guid, поэтому вы не можете передать в него видимый идентификатор. В противном случае он ничего не вернет, как мое расследование.

Чтобы архивировать выбор по просматриваемому идентификатору, я бы посоветовал вам вместо этого использовать следующее:

const bubbles = viewerApp.bubble.search({ 'viewableID': '6104055e-60d9-4037-9adc-cd38e10fcfba-00139c8e' });

viewerApp.selectItemById( bubbles[0].guid );

Или расширите свои собственные методы (проверено с v6.2):

LMV.BubbleNode.prototype.findByViewableId = function (viewableId) {
    let item = null;

    this.traverse(function (node) {
        if (node.data.viewableID === viewableId) {
            item = node;
            return true;
        }
    });

    return item;
};

LMV.ViewingApplication.prototype.selectItemViewableId = function (viewableId, onItemSelectedCallback, onItemFailedToSelectCallback) {
    let item = this.myDocument.getRoot().findByViewableId(viewableId);
    if (item) {
        return this.selectItem(item, onItemSelectedCallback, onItemFailedToSelectCallback);
    }
    return false;
};

// -- You codes where you create the ViewingApplication instance

Другие вопросы по теме