微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Forge 数据可视化不适用于 Revit 房间 [ITA]

如何解决Forge 数据可视化不适用于 Revit 房间 [ITA]

我遵循了 Forge Data Visualization 扩展文档中的教程:https://forge.autodesk.com/en/docs/dataviz/v1/developers_guide/quickstart/ 关于 Revit 文件。我使用 generateMasterViews 选项来翻译模型,我可以在查看器上看到房间,但是我在为地板表面着色时遇到问题:ModelStructureInfo 似乎有没有房间。 查看器模型上 ModelStructureInfo 的结果是:

t {model: d,rooms: null}

这是我的代码,我添加了房间的 ITA 本地化版本作为第三个参数(“Locali”):

const dataVizExtn = await this.viewer.loadExtension("Autodesk.DataVisualization");
// Model Structure Info
let viewerDocument = this.viewer.model.getDocumentNode().getDocument();
const aecModelData = await viewerDocument.downloadAecModelData();
let levelsExt;
if (aecModelData) {
  levelsExt = await viewer.loadExtension("Autodesk.AEC.LevelsExtension",{
    doNotCreateUI: true
  });
}
// get FloorInfo
const floorData = levelsExt.floorSelector.floorData;
const floor = floorData[2];
levelsExt.floorSelector.selectFloor(floor.index,true);
const model = this.viewer.model;
const structureInfo = new Autodesk.DataVisualization.Core.ModelStructureInfo(model);
let levelRoomsMap = await structureInfo.getLevelRoomsMap();
let rooms = levelRoomsMap.getRoomsOnLevel("2 - P2",false);
// Generates `SurfaceShadingData` after assigning each device to a room (Rooms--> Locali).
const shadingData = await structureInfo.generateSurfaceShadingData(devices,undefined,"Locali");
// Use the resulting shading data to generate heatmap from.
await dataVizExtn.setupSurfaceShading(model,shadingData,{
  type: "PlanarHeatmap",placePosition: "min",usingSlicing: true,});
// Register a few color stops for sensor values in range [0.0,1.0]
const sensorType = "Temperature";
const sensorColors = [0x0000ff,0x00ff00,0xffff00,0xff0000];
dataVizExtn.registerSurfaceShadingColors(sensorType,sensorColors);
// Function that provides a [0,1] value for the planar heatmap
function getSensorValue(surfaceShadingPoint,sensorType,pointData) {
  const { x,y } = pointData;
  const sensorValue = computeSensorValue(x,y);
  return clamp(sensorValue,0.0,1.0);
}

const sensorType = "Temperature";
dataVizExtn.renderSurfaceShading(floor.name,getSensorValue);

我该如何解决这个问题?使用不同的本地化时还有其他事情要做吗?

这是我从控制台获得的快照:

enter image description here

解决方法

您使用的是哪个查看器版本?有一个问题导致 setUser({ ...user,[name]: value }); 无法生成正确的 ModelStructureInfo,但现在已修复。请使用 LevelRoomsMap 并重试。这是我的测试快照:

enter image description here

顺便说一句,如果您在构建 v7.43.0 时看到 t {model: d,rooms: null},那没关系,因为房间数据会在您调用 ModelStructureInfoModelStructureInfo#getLevelRoomsMap 后生成。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。