在使用 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);
})
检查源代码后,我可以看到 FragmentIfcStreamer 加载器要求从 url(您的后端)获取片段文件。
const groupUrl = this.url + globalDataFileId;
const groupData = await fetch(groupUrl);
因此,您可以设置一个指向 .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")
顺便说一句,这是我的公用文件夹结构