返回 BIM 与 IFC 博客
工具与对比 · 2026-10-16 · 9 分钟
在浏览器中从 IFC 模型统计工程量:净量、毛量,以及没有工程量的构件
IFC 通常自带工程量,例如 NetSideArea、GrossVolume、Length。但如果简单地全部相加,每面墙都会被算两次,而缺少工程量的构件则被悄悄漏掉。本文介绍如何对选中的构件做工程量统计,得到可以直接计价的合计,并判断合计何时不完整。
在浏览器中从 IFC 模型统计工程量:净量、毛量,以及没有工程量的构件 — IFC Viewer Online article cover
有人问:“2 层一共有多少平方米隔墙?”模型就摆在那里。大多数 IFC 导出文件其实已经带有答案:每面墙、每块楼板、每根梁都可以带一个 IfcElementQuantity,里面是建模软件在导出时写入的长度、面积、体积和重量。难点不在于得到一个数字,而在于得到一个既没有重复计算、也没有悄悄漏项的数字。
要点
- 选择要统计的构件(点选、框选、按类型或按楼层),然后在“测量”面板中运行工程量统计。
- 每个构件每种量只取一个值,净量优先于毛量:NetSideArea 优先于 GrossSideArea,NetVolume 优先于 GrossVolume。列中会注明用的是哪一个。
- 覆盖率也是答案的一部分。体积旁边显示“28/40”,意味着有 12 个构件不在合计中。
- 按 IFC 类、类型或楼层分组,然后把表格复制到电子表格,或下载为 CSV。
- 工程量来自模型本身。如果模型里的数值是错的,统计结果也会忠实地出错,所以请先验证模型。
动手试试:对真实模型做工程量统计
打开一个带“测量”面板的示例 IFC。选择几个构件(或在模型树中选择整个楼层),然后在面板中点击“工程量统计”。

打开交互式 IFC 查看器
IFC 中的工程量从哪里来
工程量并不是查看器根据三角面计算出来的,而是由建模软件写入文件的。它们是一种类似属性集的对象,叫作 IfcElementQuantity,通常以标准基本工程量集命名:Qto_WallBaseQuantities、Qto_SlabBaseQuantities、Qto_BeamBaseQuantities 等[ifc-qto]。Revit、Archicad、Tekla 和 Allplan 都能导出它们,但通常只有在勾选了“导出基本工程量”之类的选项时才会导出。
这带来两个后果。其一,数值遵循建模软件自己的规则(是否扣除洞口、各层是否合并),这通常正是你需要的。其二,导出时没开这个选项的模型完全没有工程量,不管几何看起来多么完整。
| 构件 | 常见工程量 | 统计时采用哪一个 |
|---|
| 墙 | Length, Height, Width, NetSideArea, GrossSideArea, NetVolume, GrossVolume | Length;NetSideArea;NetVolume |
| 楼板 | Width, Perimeter, NetArea, GrossArea, NetVolume, GrossVolume | Perimeter;NetArea;NetVolume |
| 梁 / 柱 | Length, CrossSectionArea, OuterSurfaceArea, NetVolume, NetWeight | Length;OuterSurfaceArea;NetVolume;NetWeight |
| 风管 / 管段 | Length, OuterSurfaceArea, GrossWeight | Length;OuterSurfaceArea;GrossWeight |
| 门 / 窗 | Width, Height, Area | Area(以及数量) |
重复计算的陷阱
一面 NetSideArea 为 10 m²、GrossSideArea 为 12 m² 的墙,是一面饰面 10 m² 的墙,而不是 22 m²。但“把所有面积类工程量加起来”(简单脚本或通用属性导出就是这么做的)得到的却是 22。一整层隔墙的合计大约翻倍,而且这个错误看不出来,因为每个单独的数字都是对的。
工程量统计遵循的规则很简单,并在表中写明:每个构件每种量(数量、长度、面积、体积、重量)只贡献一个值,按净量优先于毛量的优先级列表选取。把鼠标悬停在合计上,可以看到它来自哪些工程量名称;如果造价人员按毛量计价,CSV 会逐行注明。
覆盖率:数字旁边的那个数字
代价最大的工程量错误不是数值错了,而是漏了。从链接模型导出、没有基本工程量的 12 面墙根本不会出现在合计里,而合计本身看起来毫无可疑之处。
所以每个合计都带有覆盖率。如果组内并非所有构件都有该工程量,列上会显示一个小星号,提示框写着“40 个构件中有 28 个具有该值”,表格下方还有一行统计完全没有工程量的构件。CSV 会把覆盖率单独导出为一列,收到文件的人也能看到。
- 覆盖率 40/40:合计就是模型对该组给出的完整答案。
- 覆盖率低于构件数:有的构件有该工程量,有的没有。通常是混合导出(两个软件、两种设置)。
- 完全没有工程量:开启基本工程量重新导出,或用面积和距离工具手动测量这些构件。
分组:按 IFC 类、类型或楼层
同样的选择集,问题不同,读法也不同。按 IFC 类回答“墙、楼板、梁各有多少?”;按类型回答“W-200 和 W-100 各有多少米?”,这正是工程量清单计价的依据;按楼层回答“2 层有什么?”,这是现场安排施工顺序的方式。切换分组,表格和 CSV 都会随之变化。
选对构件就完成了一半工作。可以在模型树中按类型或楼层选择,也可以通过搜索按 IFC 类选择。如果 IFC 类本身就错了(例如墙被导出为 IfcBuildingElementProxy),分组会立刻暴露问题;常见的 IFC 模型错误一文解释了原因,以及如何在导出时修正。
从表格到造价
- 先验证。单位错误或满是 proxy 的模型,会生成一张看似精确、实则错误的表格。
- 选择范围(一个楼层、一个类型、一个分包),然后运行工程量统计。
- 检查覆盖率。凡是不完整的,都要做出决定:重新导出、手动测量,或注明排除项。
- 复制(在 Excel 或 Sheets 中会按列粘贴)或下载 CSV。在用逗号作小数点的地区,CSV 使用分号分隔,确保数字能以数字格式打开。
- 在造价软件中应用你的计量规则、损耗和单价。模型工程量是清单的起点,而不是清单本身。
在浏览器中从 IFC 模型统计工程量:净量、毛量,以及没有工程量的构件