如何从IFC对象获取类型?字符串转整数类型方法
解决IFC类型字符串转整数的问题
两种可靠的转换方式
1. 用IFC.js内置常量映射(推荐)
IFC.js的核心库web-ifc已经内置了所有IFC类型对应的整数常量,直接通过字符串名称访问即可:
import { IFC } from 'web-ifc'; // 从接口获取的字符串类型 const typeString = 'IFCDOOR'; // 转换为目标整数 const typeInt = IFC[typeString]; // 结果为395920057
这是最稳妥的方式,映射关系由官方维护,不会出现值不匹配的问题。
2. 手动维护类型映射表
如果无法使用内置常量,可以自己创建映射对象:
const ifcTypeMap = { IFCDOOR: 395920057, IFCWALLSTANDARDCASE: 230000002, // 根据需求添加其他类型 }; const typeString = 'IFCDOOR'; const typeInt = ifcTypeMap[typeString];
注意:这种方式需要自行同步官方的类型值,存在维护成本,仅作为备选方案。
关于直接获取整数的问题
目前getSpatialStructure和getIfcType接口仅返回字符串类型的IFC名称,没有直接返回对应整数的参数或选项,必须通过上述转换方式处理。
内容的提问来源于stack exchange,提问作者Shai Ghelberg
相关产品推荐
相关产品推荐

