[英]Autodesk Forge “Failed to trigger translation for this file” (Fusiondoc/F2D)
[英]Autodesk Forge Viewer : f2d get frag from dbid
我正在尝试在revit转换文件的2d查看器上用颜色填充空间。
我有一个定义了“房间”的Revit文件。 Revit文件还具有定义为“第一层”,“第二层”的工作表。 当我使用Forge API进行转换时
我为Revit 3D视图获得了一个svf,为“第一层”和“第二层”工作表获得了f2d文件。
现在,我正在尝试对f2d文件执行相同的操作。
如果我知道使用可以改变墙壁的形状,则可以更改房间墙壁的颜色
viewer.setThemingColor(dbid, new THREE.Vector4(0, 1, 1,1));
我现在想要做的是能够在2d上获得形状的脆弱性,以便我可以获取其使用的线的起点和终点。 我想知道这些顶点,所以我可以建立一个自定义网格,并用颜色填充它以填充“阴影”空间。
我的问题是我不知道f2d格式。 似乎这是一个网格,并让着色器控制线条的颜色。 谁能给我有关房间碎片列表的任何指示?
这是我用于3D SVF的内容
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;
}
当f2d具有viewer.model.getData()。instanceTree = undefined时,f2d可以做什么以完成相同操作?
片段可以具有多个dbid的几何形状,而一个dbid的几何形状可以位于多个片段中。 可以使用提供帮助的2D捕捉程序使用Autodesk.Viewing.Private.VertexBufferReader进行提取。 您可以执行以下操作:
查找几何的最佳方法是使用VertexBufferReader.enumGeomsForObject(dbid,callback)。 它使用回调对象来枚举dbid的几何。 回调对象需要以下可选功能:
如果只需要基元,而不需要它们在缓冲区中的位置,则可以。
您也可以使用VertexBufferReader遍历缓冲区中的几何图形以查找dbid。 这要求您知道顶点缓冲区中的图元,如果.useInstancing()为false,则为4个顶点,如果.useInstancing()为true, 则为 1个顶点。 并且您需要从.getVertexFlagsAt(vertexIndex)解码原始类型,但是我们没有任何用于解码标志的公共值或方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.