IfcApi
IfcLoader
IfcViewerApi

IfcLoader.removeFromSubset

简介

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 方法将子集中的墙对象删除。