BIM 瓷砖后端手柄

问题描述 投票:0回答:1

在使用 Fragment IFC Streaming 处理 ifc.js 组件时,我在后端处理文件时遇到问题,我需要知道需要将哪些文件放入后端才能进行流式传输?

`let filestream = fs.createReadStream(__dirname + '/small.ifc-processed.json');

app.get('/small.ifc-processed-global', (req, res) => {

filestream.pipe(res);

 })

node.js backend http-live-streaming ifc bim
1个回答
0
投票

检查源代码后,我可以看到 FragmentIfcStreamer 加载器要求从 url(您的后端)获取片段文件。

const groupUrl = this.url + globalDataFileId;
    const groupData = await fetch(groupUrl);

https://github.com/ThatOpen/engine_components/blob/main/src/fragments/FragmentIfcStreamer/src/fragment-stream-loader.ts#L144-L149

因此,您可以设置一个指向 .frag 文件的 url 来加载几何图形。检查此示例,我如何设法直接从前端加载几何图形:

const loader = new OBC.FragmentStreamLoader(
  components
);
loader.url = "/fragments/"; //path inside my public folder in my frontend

const rawGeometryData = await fetch(
  "/tiles/mymodelBIMtiles.ifc-global.json"
);//path inside my public folder in my frontend

const geometryData =
  await rawGeometryData.json();
await loader.load(
  geometryData,
  true,
  undefined
);

并且您的 json bim 磁贴应在以下位置包含您的片段的名称 globalDataFileId 属性:

  ...
  "globalDataFileId": "mymodel.frag"
}

这样,IFCstreamer 将从给定的 url 和片段文件名中获取,如下所示:

await fetch("/fragments/mymodel.frag")

顺便说一句,这是我的公用文件夹结构

© www.soinside.com 2019 - 2024. All rights reserved.