(data: Uint8Array)
| 200 | } |
| 201 | |
| 202 | async function LoadModel(data: Uint8Array) { |
| 203 | const start = ms(); |
| 204 | // const modelID = ifcAPI.OpenModel(data, { COORDINATE_TO_ORIGIN: true, CIRCLE_SEGMENTS: 24, TOLERANCE_PLANE_INTERSECTION: 1.0E-04, TOLERANCE_PLANE_DEVIATION: 1.0E-04, TOLERANCE_BACK_DEVIATION_DISTANCE: 1.0E-04, TOLERANCE_INSIDE_OUTSIDE_PERIMETER: 1.0E-10, TOLERANCE_SCALAR_EQUALITY: 1.0E-04, PLANE_REFIT_ITERATIONS: 1, BOOLEAN_UNION_THRESHOLD: 150}); |
| 205 | const modelID = ifcAPI.OpenModel(data, { |
| 206 | COORDINATE_TO_ORIGIN: true, |
| 207 | CIRCLE_SEGMENTS: 6, |
| 208 | TOLERANCE_PLANE_INTERSECTION: 1.0e-04, |
| 209 | TOLERANCE_PLANE_DEVIATION: 1.0e-04, |
| 210 | TOLERANCE_BACK_DEVIATION_DISTANCE: 1.0e-04, |
| 211 | TOLERANCE_INSIDE_OUTSIDE_PERIMETER: 1.0e-10, |
| 212 | TOLERANCE_SCALAR_EQUALITY: 1.0e-04, |
| 213 | PLANE_REFIT_ITERATIONS: 10, |
| 214 | BOOLEAN_UNION_THRESHOLD: 150, |
| 215 | }); |
| 216 | // #1092 -> TOLERANCE_PLANE_INTERSECTION: 5.0E-02 |
| 217 | // #1092 A -> TOLERANCE_PLANE_INTERSECTION: 1.0E-01, TOLERANCE_PLANE_DEVIATION: 3.0e-04, TOLERANCE_BACK_DEVIATION_DISTANCE: 3.0e-04, PLANE_REFIT_ITERATIONS: 10 |
| 218 | // #1256 -> TOLERANCE_PLANE_INTERSECTION: 1.0E-02, TOLERANCE_PLANE_DEVIATION: 1.0E-01, TOLERANCE_BACK_DEVIATION_DISTANCE: 1.0E-01 |
| 219 | // #1023 -> TOLERANCE_PLANE_DEVIATION: 1.0E-01, TOLERANCE_BACK_DEVIATION_DISTANCE: 1.0E-01 |
| 220 | // #540 -> TOLERANCE_PLANE_INTERSECTION: 1.0E-03, TOLERANCE_SCALAR_EQUALITY: 1.0E-01, PLANE_REFIT_ITERATIONS: 3 |
| 221 | // #1225 -> TOLERANCE_PLANE_DEVIATION: 1.0E-02, TOLERANCE_BACK_DEVIATION_DISTANCE: 1.0E-02, TOLERANCE_INSIDE_OUTSIDE_PERIMETER: 1.0E-02 |
| 222 | // #1506 -> TOLERANCE_PLANE_INTERSECTION = 1.0E-02, TOLERANCE_PLANE_DEVIATION = 1.0E-02, TOLERANCE_BACK_DEVIATION_DISTANCE = 1.0E-02; |
| 223 | // #604 -> BOOLEAN_UNION_THRESHOLD: 50 |
| 224 | // https://github.com/ThatOpen/engine_fragment/issues/97 -> CIRCLE_SEGMENTS: 4, PLANE_REFIT_ITERATIONS: 0, BOOLEAN_UNION_THRESHOLD: 1000 |
| 225 | // Ferroflex, samMateo -> CIRCLE_SEGMENTS: 6 |
| 226 | const time = ms() - start; |
| 227 | console.log(`Opening model took ${time} ms`); |
| 228 | ifcThree.LoadAllGeometry(scene, modelID); |
| 229 | |
| 230 | if ( |
| 231 | ifcAPI.GetModelSchema(modelID) == "IFC2X3" || |
| 232 | ifcAPI.GetModelSchema(modelID) == "IFC4" || |
| 233 | ifcAPI.GetModelSchema(modelID) == "IFC4X3_RC4" |
| 234 | ) { |
| 235 | //Example to get all types used in the model |
| 236 | let types = await ifcAPI.GetAllTypesOfModel(modelID); |
| 237 | if (types) { |
| 238 | for (let i = 0; i < types.length; i++) { |
| 239 | let type = types[i]; |
| 240 | //console.log(type); |
| 241 | //console.log(type.typeID); |
| 242 | //console.log(type.typeName); |
| 243 | } |
| 244 | } |
| 245 | } |
| 246 | |
| 247 | try { |
| 248 | // This function should activate only if we are in IFC4X3 |
| 249 | let alignments = await ifcAPI.GetAllAlignments(modelID); |
| 250 | console.log("Alignments: ", alignments); |
| 251 | } catch (error) { |
| 252 | // Code to handle the error |
| 253 | console.error("An error occurred:", error); |
| 254 | } |
| 255 | |
| 256 | let lines = ifcAPI.GetLineIDsWithType(modelID, IFCUNITASSIGNMENT); |
| 257 | //console.log(lines.size()); |
| 258 | for (let l = 0; l < lines.size(); l++) { |
| 259 | //console.log(lines.get(l)); |
no test coverage detected