You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

同一NWD模型转SVF/SVF2后,SVF调用getLayersRoot返回空,求官方图层API

问题解答

原因分析

经典SVF格式与SVF2格式的图层存储架构完全不同:

  • SVF2采用了全新的图层管理系统,viewer.impl.getLayersRoot()正是为这套新系统设计的API,因此能正常获取图层根节点。
  • 经典SVF的图层并非以独立的图层树结构存在,而是作为模型节点层级中的一类特殊节点(Layer类型)存储,所以调用针对SVF2的API会返回空值。

获取SVF模型图层的官方API

要获取经典SVF模型的所有图层,可以通过搜索模型节点中类型为Layer的元素实现,示例代码如下:

// 获取模型根节点
const modelRoot = viewer.model.getDocumentNode().getRoot();
// 搜索所有Layer类型节点
const svfLayers = modelRoot.search({ 'type': 'Layer' });
// 遍历输出图层信息
svfLayers.forEach(layer => {
    console.log('图层名称:', layer.name, '图层ID:', layer.id);
});

另外,也可以通过遍历模型节点树的方式逐个筛选图层节点,不过上述search方法是更简洁的官方推荐方式。

内容的提问来源于stack exchange,提问作者Murru Stefano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 19:10:59