返回 BIM 与 IFC 博客
属性丢失是最常被反馈的 IFC 导出问题之一,而且它很少是单一的 bug,而是四五种不同的原因,从外表看却一模一样:打开导出的 IFC,预期的数据就是不在。令人头疼的是几何完全没问题,所以在下游有人去找某个本应出现在每个构件上的参数之前,一切看起来都很正常。
在修改任何导出设置之前,先确认属性是真的丢失了,而不只是藏在另一个名称的属性集下。打开 IFC,点击任意构件,完整的属性集列表会准确显示哪些 Pset 和值在导出后保留了下来。
在真实模型上检查属性集
打开 buildingSMART 的 Duplex 示例模型,点击任意一面墙,浏览它的全部属性集。然后打开你自己导出的文件,检查你的参数是否成功导出,以及位于哪个 Pset 之下。
IFC2x3 · 2.4 MB
打开交互式 IFC 查看器
原因 1:参数没有值
这是最常见的原因。如果某个构件的 Revit 参数为空,IFC 导出器会直接跳过该构件的这个参数,而不是写入一个空属性。在导出映射界面中,这些参数通常显示为灰色。解决办法在上游:在 Revit 中填写该参数。空参数不会被导出,没有例外。
原因 2:与 IFC 模式(Schema)的单位不匹配
如果某个 Revit 参数与标准 IFC 属性同名,但使用了不同的单位类型(例如一个长度参数映射到了模式要求为计数值的属性),导出器可能会拒绝写入。值确实存在,只是在映射时悄无声息地失败了。
原因 3:自定义 Pset 映射文件有问题
自定义属性集由一个文本映射文件驱动(即 IFC 导出的用户定义属性集配置)。如果该文件中的属性名与 Revit 参数不完全一致,比如拼写错误、大小写不对、数据类型标记错误,或者引用了模型中不存在的参数,那一行就什么也不会输出。没有报错,只是少了一个属性。
- 确认导出设置中确实选择了映射文件(它会在不同会话、不同电脑之间被重置)。
- 参数名称必须完全一致,包括大小写和空格。
- 确保声明的数据类型(Text、Real、Integer、Boolean)与 Revit 参数的类型一致。
- 确认参数存在于你要导出的类别上:墙的 Pset 配置行不会填充到门上。
原因 4:一个人导出正常,换个人就不行
有一种反复被报告、确实令人困惑的情况:同一个模型,由一位团队成员导出时所有参数都在,换成同事导出时共享参数却丢失了。通常的原因是,共享参数和自定义 Pset 映射文件都保存在各自电脑的本地。如果两台工作站上的共享参数文件或映射文件不完全一致,导出结果就会在不知不觉中出现差异。
原因 5:从未启用标准属性集
公共属性集(Pset_WallCommon、Pset_DoorCommon 等)是经模式标准化的数据,任何接收软件都知道如何读取,相当于模型的“护照信息”。它们并不总是默认导出。在 IFC 导出设置中启用“Export IFC Common Property Sets”,标准属性集就会与自定义属性集一起写入。
交付前属性检查清单
- 在 Revit 中填写空参数:空值永远不会被导出。
- 启用“Export IFC Common Property Sets”,确保包含标准属性集。
- 在导出设置中选择你的自定义 Pset 映射文件(检查它有没有被重置)。
- 确认整个团队使用的共享参数文件和映射文件完全一致。
- 通过重新映射到类型正确的参数来解决单位不匹配。
- 先导出到本地文件夹,打开 IFC,核实属性都已保留,然后再把文件提交到公共数据环境(CDE)。
如需同时避免 GUID、坐标和代理构件问题的导出设置,请参阅如何从 Revit 导出干净的 IFC 文件。如需在交付前确认没有其他问题,请运行一次完整验证,并以 Health Score(健康评分)达到 80 分或以上为目标。
从 Revit 导出后 IFC 属性丢失?修复检查清单