Autodesk Forge集成IoT数据时Viewer不显示传感器的后续操作咨询
Autodesk Forge DataViz模块传感器显示操作指引
你当前已完成eng文件代码段注释取消操作,要实现Viewer中正常显示传感器,需按以下步骤执行,必须修改devices.json、device-models.json两个配置文件:
1. 配置文件修改要求
device-models.json用于定义传感器类型的通用展示规则,需覆盖所有用到的传感器类型:
每个类型需配置唯一标识、显示图标路径、默认尺寸、渲染颜色等参数,参考结构:{ "TemperatureSensor": { "icon": "./static/icons/temperature.svg", "size": 18, "color": "#f44336", "allowHover": true }, "HumiditySensor": { "icon": "./static/icons/humidity.svg", "size": 16, "color": "#2196f3" } }devices.json用于定义单个传感器的实例信息,每个传感器必填字段如下:字段名 说明 id传感器全局唯一标识 model必须和 device-models.json中定义的传感器类型标识完全匹配position传感器在Forge模型坐标系下的x/y/z三维坐标值 roomId(可选)绑定的Navisworks房间结构的dbId或自定义房间编号,用于空间关联展示
2. CSV文件校验
- CSV文件表头必须包含和配置对应的必填字段,至少覆盖
deviceId,deviceModel,x,y,z,字段名和配置中的映射关系需和eng文件里适配器初始化参数一致 - 文件编码必须为UTF-8无BOM格式,禁止使用中文逗号作为分隔符,删除文件内空行和无效数据行
- 确认CSV文件的存储路径和eng文件中取消注释的代码段里配置的路径完全匹配,避免相对路径跳转错误
3. Viewer端加载逻辑调整
- 必须在Viewer触发
GEOMETRY_LOADED_EVENT事件(即模型几何体完全加载完成)后,再初始化DataViz扩展和CSV适配器,避免坐标系未加载导致传感器渲染到视野外 - 适配器初始化时需显式传入两个配置文件的路径,参考代码:
// 模型加载完成后执行 viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, async () => { // 加载DataViz扩展 const dataVizExt = await viewer.loadExtension('Autodesk.DataVisualization'); // 初始化CSV适配器,传入对应文件路径 const csvAdapter = new Autodesk.DataVisualization.CSVAdapter( './static/data/sensors.csv', './static/config/device-models.json', './static/config/devices.json' ); // 注册适配器并显示传感器 await dataVizExt.registerDeviceModelAdapter(csvAdapter); dataVizExt.showDevices(); });
4. 异常排查步骤
- 打开浏览器开发者工具,检查网络请求栏,确认CSV、device-models.json、devices.json三个文件没有返回404/500错误
- 控制台打印适配器返回的设备列表,确认每个设备的坐标值处于当前加载模型的坐标范围内,若坐标偏差过大会导致传感器渲染在可视区域外
- 若使用房间绑定逻辑,需确认Navisworks导出模型时,房间的属性字段值和CSV、devices.json中配置的roomId完全一致,大小写、空格、特殊符号均不能有差异
内容的提问来源于stack exchange,提问作者Alex stolid
相关产品推荐
相关产品推荐

