Web ifc is a WASM-based ifc parser & geometry generator. This repository contains the c++/typescript source code.
https://www.npmjs.com/package/web-ifc
Example viewer application using ThreeJS
npm install web-ifc
See examples
for different ways to use web-ifc.
For a short intro, this is how to use the library from javascript:
const WebIFC = require("web-ifc/web-ifc-api.js");
// initialize the API
const ifcApi = new WebIFC.IfcAPI();
// initialize the library
await ifcApi.Init();
// open a model from data
let modelID = ifcApi.OpenModel(/* placeholder filename */, /* IFC data as a string or UInt8Array */);
// the model is now loaded! use modelID to fetch geometry
// close the model, all memory is freed
ifcApi.CloseModel(modelID);
The WASM library is built through emscripten, please see the emscripten installation guide for information on how to set up emscripten. Afterwards both setup-env
and em++
need to be in your path.
Run npm install
to install all dependencies.
Run npm run init-repo
to download both dependencies of the project (glm and earcut.hpp) to the correct location. This only needs to happen once.
Run npm run setup-env
whenever you open a new terminal, this will set up the required emscripten environment variables for you to compile code.
Run npm run build-release
to build a release version of the wasm binary and the accompanying web-ifc api. It will be placed in ./dist
.
Run npm run dev
to launch a development server with a basic ifc file viewer.
Compiling the library to a standalone executable requires use of CMAKE. For visual studio code, the easiest way is by installing cmake-tools.
The library is header only, the files in web-ifc-cpp
can be trivially included in any project. The library depends on GLM and earcut.