咨询从Revit/IFC模型提取Revit对象元数据的方法及资源
从Revit及IFC模型提取构件元数据的方法
一、从Revit模型直接提取
通过Revit API开发提取
这是获取深层几何元数据最可靠的方式:
- 拉伸方向(Extruted Direction XYZ):
- 对于拉伸生成的族实例,用
FamilyInstance.GetTransform().BasisZ获取拉伸轴方向,或通过ExtrusionAnalyzer类直接提取拉伸参数; - 系统族墙的延伸方向可读取
Wall.Orientation属性; - 柱、梁的方向需结合
LocationCurve的切线方向与构件自身变换计算得出。
- 对于拉伸生成的族实例,用
- 形状信息(Object Shape Information):
- 调用
Element.Geometry获取构件几何集合,遍历判断类型:- 若为
Solid类型,检查Solid.SweepInfo可判断是否为扫掠实体(Swept solid); - 通过
BooleanOperationsUtils相关方法识别是否存在裁剪(Clipping)或CSG运算痕迹; - 由
BRepBuilder生成的实体属于Brep类型;
- 若为
- 也可通过
FamilySymbol的参数判断构件的基础造型方式(拉伸、融合等)。
- 调用
借助Revit内置功能或插件
部分第三方BIM数据提取插件,或Revit自带的高级导出功能,支持导出包含几何元数据的JSON/CSV文件。需选择包含「几何详细信息」的导出选项,才能获取拉伸方向、形状类型这类深层信息。
二、从IFC模型提取
通过IFC解析工具开发
IFC文件中柱、梁、墙对应IfcColumn、IfcBeam、IfcWall实体,解析几何表示信息即可获取数据:
- 拉伸方向(Extruted Direction XYZ):
基于拉伸的构件几何用IfcExtrudedAreaSolid表示,直接读取ExtrudedDirection属性的XYZ坐标值即可。 - 形状信息(Object Shape Information):
IfcExtrudedAreaSolid对应拉伸实体,IfcSweptAreaSolid对应扫掠实体;- 几何包含
IfcBooleanResult则说明存在CSG布尔运算(裁剪、合并等); IfcBrep或IfcManifoldSolidBrep代表Brep类型实体;
解析时遍历构件的Representation.Representations集合,找到对应几何表示项判断类型。
借助IFC专业工具
BIMcollab Solibri、Autodesk Navisworks这类工具支持导出构件几何元数据。在导出设置中勾选「几何属性」相关选项,可将拉伸方向、形状类型等信息导出为Excel、CSV等可读取格式。
内容的提问来源于stack exchange,提问作者Nyein Thu Thu Aung
相关产品推荐
相关产品推荐

