We have been trying to convert an IFC file into an XKT model and then converting that model into an array buffer using writeXKTModelToArrayBuffer, then turning it into an object url. We use version 1.1.19 of xeokit-convert and 0.0.56 of web-ifc. This is the (typescript) code we use:
export async function convert(data: ArrayBuffer) {
return new Promise<ArrayBuffer>((resolve, reject) => {
const xktModel = new XKTModel()
parseIFCIntoXKTModel({
WebIFC,
data,
xktModel,
wasmPath: 'https://cdn.jsdelivr.net/npm/web-ifc@0.0.56/', // ./ in node
autoNormals: true,
log: (msg: unknown) => {
console.log(msg)
}
}).then(
() => {
xktModel.finalize()
resolve(
writeXKTModelToArrayBuffer(
xktModel,
null,
{},
{ zip: false }
) as ArrayBuffer
)
},
(e: unknown) => {
reject(e instanceof Error ? e : Error(e as string))
}
)
})
}
If we set the zip option to true it works. If we omit the zip option it works as well (and strangely enough generates a smaller file). However, setting zip explicitly to false gives the following error:
RangeError: offset is out of bounds
at Uint8Array.set (<anonymous>)
at toArrayBuffer (VM1198 @xeokit_xeokit-convert_dist_xeokit-convert__es.js:13046:13)
at createArrayBuffer (VM1198 @xeokit_xeokit-convert_dist_xeokit-convert__es.js:13002:10)
at writeXKTModelToArrayBuffer (VM1198 @xeokit_xeokit-convert_dist_xeokit-convert__es.js:12660:23)
at convert.ts:34:21
(Running a inside a vite/svelte app on Arc Browser, line numbers might not be reliable)
We tried the same code inside a Node script, and it also gives the same error.
We have been trying to convert an IFC file into an XKT model and then converting that model into an array buffer using
writeXKTModelToArrayBuffer, then turning it into an object url. We use version 1.1.19 of xeokit-convert and 0.0.56 of web-ifc. This is the (typescript) code we use:If we set the
zipoption totrueit works. If we omit thezipoption it works as well (and strangely enough generates a smaller file). However, settingzipexplicitly tofalsegives the following error:(Running a inside a vite/svelte app on Arc Browser, line numbers might not be reliable)
We tried the same code inside a Node script, and it also gives the same error.