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

Posted

技术标签:

【中文标题】Forge 数据可视化不适用于 Revit 房间 [ITA]【英文标题】:Forge Data Visualization not working on Revit rooms [ITA] 【发布时间】:2021-08-05 06:04:50 【问题描述】:

我按照 Forge 数据可视化扩展文档中的教程进行操作:https://forge.autodesk.com/en/docs/dataviz/v1/developers_guide/quickstart/ 在 Revit 文件中。我使用 generateMasterViews 选项来翻译模型,我可以在查看器上看到房间,但是我在为地板表面着色时遇到问题:似乎 ModelStructureInfo 有没有房间。 viewer.model 上 ModelStructureInfo 的结果是:

t model: d, rooms: null

这是我的代码,我将 Room 的 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, sensorType, getSensorValue);

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

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

【问题讨论】:

【参考方案1】:

您使用的是哪个查看器版本?有一个问题导致ModelStructureInfo 无法生成正确的LevelRoomsMap,但现在已修复。请使用v7.43.0 并重试。这是我的测试快照:

顺便说一句,如果你在构建ModelStructureInfo时看到t model: d, rooms: null,没关系,因为房间数据将在你调用ModelStructureInfo#getLevelRoomsMapModelStructureInfo#getRoomList之后生成。

【讨论】:

我使用的是最新的 v.7.43.0。我编辑了问题并添加了我的快照:我得到了房间列表的空数组 @dufra 您能否分享一个非机密的可重现模型向forge[DOT]help[AT]autodesk[DOT]com 展示此问题以供我们调查? 我刚刚通过邮件发送了一个非常基本的文件进行测试。谢谢 发布者@user17356139:“同样的事情发生在我身上。我得到数组 0 并且没有房间。问题是如何解决的?” 是的,我让 user17365139 请求帮助台。他似乎无法发布 cmets。

以上是关于Forge 数据可视化不适用于 Revit 房间 [ITA]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Forge Viewer 中使 Revit Room 可点击?

Forge 查看器在 2D 视图中显示模糊的元素,并且测量扩展不适用于它们

带 Forge 的房间

根据 Revit 坐标(最小和最大 X、Y、Z)从锻造查看器中裁剪特定房间/区域

尝试在 Autodesk Forge / Bim360 中显示房间信息

为 Revit 模型 (C4R) 发布和生成房间图元