Autodesk Forge Viewer:将片段 Material 连接到 Revit 模型数据

Autodesk Forge Viewer: Connect Fragment Material to Revit Model Data

编辑:TLDR 目前无法知道 material 片段级别的名称。

我想从节点的片段中读取 material 并根据使用 Revit material 名称作为键的地图更改它们的 material。

我从模型中的一个节点(通过 Viewer3D 检索)获得以下“材料和饰面”属性:

我从该节点的片段中得到以下三个 material:

有没有办法设置三个 material 的名称以匹配模型数据(或完全使用它们)?

理想情况下,我可以将这三个 material 与从该节点中提取的以下 material 进行匹配:

不幸的是,SVF 文件格式(由模型衍生服务生成并由 Forge Viewer 加载)不保留 material 个名称。这些片段仅根据其在列表中的索引与特定的 material 相关联。

“材料和饰面”数据基本上只是 属性 特定于原始文件(在本例中为 Revit 模型),其他文件格式可能不可用。

编辑:我尝试查看 Materials.json.gz 文件,但不幸的是,名称也未包含在其中:

{
    "name": "LMVTK Simple Materials",
    "version":  "1.0",
    "scene":    {
        "SceneUnit":    8215,
        "YIsUp":    0
    },
    "materials":    {
        "0":    {
            "version":  2,
            "userassets":   ["0"],
            "materials":    {
                "0":    {
                    "tag":  "",
                    "proteinType":  "",
                    "definition":   "SimplePhong",
                    "properties":   {
                        "integers": {
                            "mode": 4
                        },
                        "booleans": {
                            "color_by_object":  false,
                            "generic_is_metal": false,
                            "generic_backface_cull":    true
                        },
                        "scalars":  {
                            "generic_transparency": {
                                "units":    "",
                                "values":   [0]
                            }
                        },
                        "colors":   {
                            "generic_diffuse":  {
                                "values":   [{
                                        "r":    0,
                                        "g":    1,
                                        "b":    0,
                                        "a":    1
                                    }]
                            }
                        }
                    },
                    "transparent":  false,
                    "textures": {
                }
                }
            }
        },
        "1":    {
            "version":  2,
            "userassets":   ["0"],
            "materials":    {
                "0":    {
                    "tag":  "",
                    "proteinType":  "",
                    "definition":   "SimplePhong",
                    "properties":   {
                        "integers": {
                            "mode": 4
                        },
                        "booleans": {
                            "color_by_object":  false,
                            "generic_is_metal": false,
                            "generic_backface_cull":    true
                        },
                        "scalars":  {
                            "generic_transparency": {
                                "units":    "",
                                "values":   [0]
                            }
                        },
                        "colors":   {
                            "generic_diffuse":  {
                                "values":   [{
                                        "r":    0.400000,
                                        "g":    0.400000,
                                        "b":    0.400000,
                                        "a":    1
                                    }]
                            }
                        }
                    },
                    "transparent":  false,
                    "textures": {
                }
                }
            }
        }
...
}