2

I have an ifc file for a 3D model, and I'm trying to make different elements of the model different colors. I'm using the IFC.js web-ifc-three IFCLoader for three.js. There are multiple examples of how to use the library but when I try to change colors for the elements based on a list of expressIDs there aren't any changes. I've tried making a subset with a specific material after the model is loaded, but that doesn't work either. I use:

//Sets up the IFC loading
var ifcModels = [];
var ifcLoader = new IFCLoader();
ifcLoader.ifcManager.setWasmPath("./three/examples/jsm/loaders/ifc/");
ifcLoader.load("./models/rac_advanced_sample_project.ifc", (ifcModel) => {
    ifcModels.push(ifcModel);
    console.log(ifcModels[0]);
    scene.add(ifcModel)
});
const initMaterial = new THREE.MeshLambertMaterial({
    transparent: true,
    opacity: 0.6,
    color:  0x008000,
    depthTest: false
});
console.log(ifcModels);
console.log(ifcModels[0]);
ifcLoader.ifcManager.createSubset({
    modelID: ifcModels[0].modelID,
    ids: [281144],
    material: initMaterial,
    scene: scene,
    removePrevious: true
});

to try to change the color of an element where its expressID is 281144, for example.

This is the code from one of their examples that I base the rest of my code off of: highlighting-single example

Does anyone know how to do this/has been able to do this?

helloworld
  • 21
  • 1

0 Answers0