【问题标题】:Getting fragment ids from a dbid从 dbid 获取片段 ID
【发布时间】:2019-10-10 23:49:09
【问题描述】:

类型定义、文档和查看器行为之间看似不一致的问题让我有点挣扎。

我已经为颜色元素编写了一个简单的扩展(无论如何我都无法使用它,但那是 different question)。

当我尝试使用InstanceTree#enumNodeFragments 方法获取给定节点的片段时,我得到一个空数组:

getFragmentsForNode(dbId: number): number[] {
    const fragments: number[] = [];
    this.viewer.model.getInstanceTree().enumNodeFragments(dbId, (fragId) => fragments.push(fragId));
    return fragments;
}

文档没有说明此回调的预期参数,但从在线示例中我猜签名类似于以下内容:

enumNodeFragments(dbId: number, callback: (fragId: number) => void, recursive?: boolean): void;

打字稿定义令人困惑,因为它将node: any列为第一个参数,这意味着它可能不是 id 而是其他东西。

当我对任何元素运行此命令时,我总是得到一个空数组,这有点令人费解,因为无法访问片段我无法真正设置颜色等。

【问题讨论】:

    标签: typescript autodesk-forge autodesk-viewer


    【解决方案1】:

    很遗憾,我无法使用有效的 dbid 和模型重现该问题 - 请参阅实时示例 here

    viewer.model.getInstanceTree().enumNodeFragments(dbId, fragId=> console.log(fragId));
    

    您是否提供了有效的 dbid?

    【讨论】:

    • 我从一个选择事件中得到了 dbid,所以它肯定是有效的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    • 2021-05-08
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    相关资源
    最近更新 更多