可查看 ID 和 GUID 之间有什么区别?



在伪造查看器中,对于 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和一个可查看的 ID。 然后,为了显示模型,我可以调用 viewerApp.selectItemById(guid/viewableID(,它结束显示相同的模型。

如果我想指向当前在查看器中看到的 3D 视图,以供将来参考(例如,在 revit 文件更新后(,它的最佳属性是什么,guid 或可查看 ID?

谢谢

可查看 id 代表 Revit API 中 Revit 视图的唯一 ID,这是我的研究,但我在可查看气泡节点中找不到 Revit 视图和 guid 之间的关系。我正在与我们的工程团队核实他们是否有一些见解。

viewerApp.selectItemById()用于通过其 guid 查询气泡节点,因此您无法将可查看的 id 传递到其中。否则,它将不返回任何作为我的调查。

要按可查看 id 进行存档选择,我建议您改用以下内容:

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

最新更新