IfcApi
IfcLoader
IfcViewerApi

IfcApi.StreamAllMeshesWithTypes

简介

IfcApi.StreamAllMeshesWithTypes是Ifc.js的接口之一,用于返回所有模型网格数据的数组,该数据包含了模型中的实体类型信息。

方法原型

StreamAllMeshesWithTypes(source, options, progressCallback);

参数介绍

source (必填参数)

  • 类型: [Stream | Blob | File | string | ArrayBuffer | Uint8Array | ArrayBufferView]

指定IFC文件的源数据,可以是以下几种数据类型:

  • Stream:可读可写的数据流;
  • Blob:表示Blob(Binary Large Object),是一个文件化的二进制对象;
  • File:表示文件类型;
  • string:表示文本类型;
  • ArrayBuffer/Uint8Array/ArrayBufferView:表示二进制流类型。

options (可选参数)

  • 类型: Object

一个包含可选配置属性的对象,支持以下属性:

  • useAsync: 是否使用异步加载数据。默认值为false。设置为true可以提高数据加载效率。

progressCallback (可选参数)

  • 类型: Function

当数据未异步加载时,通过该回调函数实时获取数据加载进度。

示例代码

import {IfcApi} from 'ifc.js';

const ifcApi = new IfcApi();
const url = '/path/to/your.ifc';

ifcApi.StreamAllMeshesWithTypes(url, {
  useAsync: true
}).then(meshTypes => {
  console.log(meshTypes);
}).catch(error => {
  console.error(error);
});

结果示例:

[
  {
    "name": "WallStandardCase",
    "meshes": [
      {
        "triangles": [
          [...]
        ],
        "colors": [[...]],
        "material": {...},
        "fastAccess": {...}
      },
      {...}
    ]
  }
],

上述示例中,返回的meshTypes数组是一个包含原始网格数据和实体类型信息的数组,每个元素都包含一个name属性和一个meshes属性。name属性表示实体类型名称,meshes属性表示该类型实体的所有网格数据。网格数据包含三角形、颜色、材质信息等。