as working with ifc.js Components using Fragment IFC Streaming I had an issue handling files in backend I need to know which files I need to put in backend to have it streaming ?
`let filestream = fs.createReadStream(__dirname + '/small.ifc-processed.json');
app.get('/small.ifc-processed-global', (req, res) => {
filestream.pipe(res); })
after checking the source code, I could see that the FragmentIfcStreamer loader is asking to fetch a fragment file from a url (your backend).
const groupUrl = this.url + globalDataFileId;
const groupData = await fetch(groupUrl);
Thus you can set a url that points to your .frag file to load the geometries. Check this sample how do I managed to load geometries directly from the front-end:
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
);
and your json bim tiles should have the name of your fragment under the globalDataFileId property:
...
"globalDataFileId": "mymodel.frag"
}
This way the IFCstreamer will fetch from the given url and the fragment file name, like this:
await fetch("/fragments/mymodel.frag")
this is my public folder structure by the way
Hope this was helpful and it serve as reference when reading the properties.