IfcLoader.removeFromSubset
方法用于从 IFC 文件的一个子集中移除一个对象。这个子集可以是由 IfcLoader.load
方法加载的所有对象,也可以是通过 IfcLoader.loadSubset
方法载入的对象集。这个方法对于减少内存占用和提高应用程序性能非常有用。
IfcLoader.removeFromSubset(subset, obj)
subset
:要从中删除对象的 IFC 对象子集,该值由 IfcLoader.load
方法返回,或者 由 IfcLoader.loadSubset
方法创建。
obj
:要删除的 IFC 对象实例,该类型是 Three.IfcObject
的子类之一。
import { IfcLoader } from 'ifc.js';
const loader = new IfcLoader();
// 加载 IFC 文件数据
loader.load('./sample.ifc', (f) => {
// 在 IFC 数据模型中获取部分对象集
const subset = loader.loadSubset(f, [ 'IfcWall', 'IfcSlab', 'IfcColumn' ]);
// 从子集中删除一个对象
const wall = subset.find(o => o.isIfcWall);
loader.removeFromSubset(subset, wall);
});
在上面的代码中,我们首先使用 IfcLoader
类的 load
方法从一个 IFC 文件中获取数据。然后,我们使用 loadSubset
方法创建一个由墙、板和柱组成的子集。接着,我们使用 removeFromSubset
方法将子集中的墙对象删除。