web-ifc
Warning: this is pre-alpha software, an experimental backend for IFC.js
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
Installing the library as an npm dependency
npm install web-ifc
Using the library
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");
const ifcApi = new WebIFC.IfcAPI();
await ifcApi.Init();
let modelID = ifcApi.OpenModel(, );
ifcApi.CloseModel(modelID);
Building the library
Setting up emscripten
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.
WASM library
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.
Stand alone C++ executable
Compiling the library to a standalone executable requires use of CMAKE. For visual studio code, the easiest way is by installing cmake-tools.
Using the library as a C++ dependency
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.