autodesk-forge - Autodesk Forge Viewer 如何获取线起点/终点的坐标

标签 autodesk-forge autodesk-viewer

我正在尝试在 forge 查看器中突出显示房间。

在 Revit 中,我创建了代表房间边界的线条。转换为 svf 后,我知道这些行的 dbids。现在我想知道这些线的起点和终点(顶点),以便我可以创建房间边界的 Three.Shape()。

[编辑]我从 dbId 获取 fragId

function getFragIdFromDbId(viewer, dbid){
var returnValue;
 var it = viewer.model.getData().instanceTree;       
it.enumNodeFragments(dbid, function(fragId) {
  console.log("dbId: " + dbid + " FragId : " + fragId);
  returnValue =  fragId;
}, false);
return returnValue;
}

问题: 一旦我知道了fragId,有没有办法查看它的起点和终点(顶点)?这些顶点也是世界空间还是局部空间?

最佳答案

这就是我最终所做的。请注意,在调用 instanceTree 之前,请确保模型已完成加载。同样在我的例子中,dbid 和 fragid 是一对一的,不确定实例树中是否总是这种情况。

function getFragIdFromDbId(viewer, dbid) {
 var returnValue;
 var it = viewer.model.getData().instanceTree;
 it.enumNodeFragments(dbid, function (fragId) {
  console.log("dbId: " + dbid + " FragId : " + fragId);
  returnValue = fragId;
 }, false);
 return returnValue;
}

...

// only need the start vertex
var floatArray = [];
for (var i = 0; i < dbidArray.length; i++) {
var fragId = getFragIdFromDbId(viewer, dbidArray[i]);
var mesh = viewer.impl.getRenderProxy(viewer.model, fragId);
var matrixWorld = mesh.matrixWorld;
var lmvBufferGeometry = mesh.geometry;
var lmvFloatArray = lmvBufferGeometry.vb; //this will have an array of 6  values 0,1,2 are start vertext , 3,4,5 are end vertex

floatArray.push(lmvFloatArray[0]);
floatArray.push(lmvFloatArray[1]);
floatArray.push(lmvFloatArray[2]);

}
//use matrixWorld to convert array to worldSpace

关于autodesk-forge - Autodesk Forge Viewer 如何获取线起点/终点的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38919970/

相关文章:

javascript - 将坐标从 Revit 转换为 Viewer

asp.net-core - 为什么 Autodesk Forge Model Derivative Webhook 会多次触发?

autodesk-forge - 如何检索 Forge Viewer 对象树?

javascript - 从 Autodesk Forge 3D 查看器下载文件

javascript - 尝试将自定义网格添加到离线查看器

node.js - 了解Revit图元上传到Forge平台后的坐标系转换和引用

node.js - 400 错误 : Bad request AutoDesk Forge Api

javascript - Autodesk Viewer 中出现 webGL 错误

javascript - 关于 extract.autodesk.io 的问题 - 采用文件路径而不是使用文件选择器进行选择

reactjs - Autodesk React Forge 空项目中存在 forge-dataviz-iot-react-components 问题