В чем разница между viewableID и guid? - PullRequest
0 голосов
/ 15 октября 2018

В просмотрщике кузницы, для преобразованного файла revit, при поиске по пузырям: viewerApp.bubble.search ({'type': 'geometry', 'role': '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)}

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

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

Спасибо,

1 Ответ

0 голосов
/ 20 октября 2018

Видимый идентификатор обозначает уникальный идентификатор представлений 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
...