Autodesk Forge GetBulkProperties2

Autodesk Forge GetBulkProperties2

我目前正在尝试 viewer.model.getBulkProperties2() 因为我需要模型的 externalIds。我一直在使用 getProperties() 的循环来获取 externalId 但每当我尝试使用非常大的 NWDs firefox / chrome 崩溃时。

问题是,即使我在选项对象中指定我需要带有 needsExternalId:true 的外部 ID,函数也不会返回它们。这是我的代码受影响的部分:

viewer.model.getBulkProperties2(dbids,{propFilter:params,needsExternalId:true,ignoreHidden:false,categoryFilter:null},(res)=>{
    console.log(res)
});

我使用的 属性 只是名称,这是返回的 res 变量:

[
    {
        "dbId": 2,
        "properties": [
            {
                "displayName": "Nombre",
                "displayValue": "Nivel 1",
                "displayCategory": "Datos de identidad",
                "attributeName": "Name",
                "type": 20,
                "units": "",
                "hidden": false,
                "precision": 0
            }
        ]
    },
    {
        "dbId": 3,
        "properties": [
            {
                "displayName": "Nombre",
                "displayValue": "Nivel 2",
                "displayCategory": "Datos de identidad",
                "attributeName": "Name",
                "type": 20,
                "units": "",
                "hidden": false,
                "precision": 0
            }
        ]
    }
]

我是不是搞砸了什么?

没关系,我只是发现您需要将 externalId 指定为 属性 才能获取它。

添加到塞巴斯蒂安的回答中:

要批量检索对象列表的外部 ID,您需要执行以下两项操作:

  1. options.needsExternalId 属性设置为true(外部ID的table可以很大,因此默认排除;设置此标志将确保table 已加载)

  2. 在要检索的属性列表中包含 externalId(在 options.propFilter 数组中)