一、摘要
我用 TRAE SOLO 开发了 AutoCAD Material Takeoff(AMT)——一款从 AutoCAD DXF 图纸中自动提取结构混凝土工程量的工具。传统方式用AutoCAD/ Bluebeam 手动测量,一个中型项目需要 2-3 天;AMT 将这个过程压缩到 30 分钟以内,提效 90%+,同时消除了人工漏项和计数误差。
二、背景T
我是一名建筑结构工程师(美国硕士,10 年经验),日常工作涉及大量海外项目的工程量提取复核。
传统流程:
- 在 AutoCAD / Bluebeam / PlanSwift 中逐张打开 DXF 图纸
- 手动测量每个梁、柱、板、墙的尺寸
- 在 Excel 中逐项记录数据并汇总
- 一个中型项目(约 30 张图纸)需要 2-3 天
痛点:
- 重复性极高:数百个构件逐一手动测量,容易因疲劳漏项
- 一致性差:不同人测量结果存在 10-20% 的偏差
- 不可复用:图纸变更后需要全部重新测量
- 溯源要求:项目对提量结果有强溯源要求,需要提供可溯源材料
- 工具锁死:Bluebeam 年费 $440/seat x人数,中小团队负担沉重
三、实践过程
任务拆解
我将 ATM 拆解为 6个独立模块:
- 公共配置区:为多个CAD处理脚本提供统一路径管理和公共工具
- 数据初始化:导入必要计算库和局部配置
- DXF 解析引擎:读取图层名称、实体类型、几何信息
- 构件智能识别:根据图层关键词 + 几何特征自动分类
- 工程量计算:截面属性 × 几何长度/面积 → 混凝土体积
- 报告生成:输出格式化 Excel、输出可溯源的图纸文件
SOLO 能力应用
模块 1-2(基础设施层):
-
Prompt:「设计一个 Python 项目的公共配置模块,包含路径管理、日志配置和公共工具函数,支持多脚本复用」
-
SOLO 生成了配置管理框架,我补充了项目特定的路径规则和日志格式
-
这两个模块代码量不大,但为后续开发奠定了可扩展的基础
模块 3 — DXF 解析引擎:
-
Prompt:「用 ezdxf 库读取 DXF 文件,遍历所有图层,提取图层名称、实体类型统计和几何实体信息」
-
SOLO 生成了完整的解析框架,包括图层遍历、实体分类、属性提取
-
我在此基础上增加了图层过滤和白名单机制,跳过非结构图层
模块 4 — 构件智能识别:
-
Prompt:「根据图层名称中的关键词(COLUMN、BEAM、SLAB、FOOTING、WALL)自动分类结构构件,支持模糊匹配和别名词典」
-
SOLO 实现了正则表达式匹配 + 别名词典(COL、BEAM、SLB 等缩写)
-
踩坑:精确匹配漏识率超 40% → 改用模糊匹配后降至 5% 以下
模块 5 — 工程量计算:
-
Prompt:「对梁构件,从 DXF 线段实体提取起点终点坐标计算长度,结合截面属性(b×h)计算混凝土体积,单位统一为 m³,增加异常值过滤」
-
SOLO 生成了计算逻辑,我补充了截面属性缺失时的兜底处理
模块 6 — 报告生成:
-
Prompt:「用 openpyxl 生成格式化 Excel 报告,包含分类汇总表和逐构件明细表数据保留 2 位小数」
-
SOLO 一次生成了完整的 Excel 生成代码
-
我额外增加了可溯源图纸输出功能:在原图纸上标注每个构件的编号和计算结果,方便客户核对
SOLO处理过程(以Foundation脚本为例)
踩坑记录
- 图层命名不统一:精确匹配漏识率 40%+ → 改用关键词模糊匹配 + 别名词典,漏识率降至 5%
- DXF 版本兼容性:部分 R14/R2000 版本缺少实体属性 → 增加 try-except 兜底,跳过无法解析的实体并记录日志
- 截面信息缺失:部分图纸只有几何线段,无截面属性 → 增加从标注文字(MText/Text)中提取截面尺寸的备用逻辑
- 读取表格内容存在部分缺失:部分图纸表格的读取会出现构件表缺失的情况 → 增加按表格图层选择性解析,提高表格读取的成功率
四、成果展示
共享模块

基础模块识别

梁模块识别

柱模块识别

五、效率对比
| 工作内容 | 传统方式(Bluebeam) | ATM 自动提取 | 效率提升 |
|---|---|---|---|
| 打开并加载图纸 | < 1 分钟 | — | yes |
| 逐个构件测量 | 4-6 小时 | — | yes |
| 手动记录数据 | 2-3 小时 | — | yes |
| 汇总校核 | 1-2 小时 | — | yes |
| 总计(50 张图纸) | 2-3 天 | 30 分钟 | 30-50 倍 |
| 图纸变更后重做 | 2-3 天 | 30 分钟 | 30-50 倍 |
| 人工漏项率 | 5-15% | < 1% | yes |
六、核心价值
- 造价工程师 / 承包商:投标阶段快速出量,提升报价效率
- 结构咨询公司:多项目并行处理,降低人力成本
- 中小型设计院:无需购买 Bluebeam($440/年x人数),降低工具成本
- 国际工程项目:统一提量标准,消除不同人测量结果的偏差
技术亮点
- 纯 Python 实现,无第三方 CAD 软件依赖(仅需 ezdxf + openpyxl)
- 关键词模糊匹配 + 别名词典,适应不同设计院的图层命名规范
- 截面属性多源提取(图层属性 → 标注文字 → 兜底默认值)
- 结构化 Excel 输出,支持按楼层/区域/构件类型多维度汇总
- 可溯源图纸输出,提量有理有据
可复用性
核心架构(文件解析 → 规则识别 → 数据计算 → 报告输出)可扩展至:
- 钢结构提量(型钢截面 + 长度 → 重量)
- 钢筋提量(从标注文字提取钢筋信息 → BBS)
- 机电管线提量(按系统分类 → 长度统计)
- 装修工程量(按区域分类 → 面积统计)
七、SOLO 在开发中的角色
| 环节 | SOLO 的贡献 | 占比 |
|---|---|---|
| 代码生成 | 4 个核心模块的初始代码均由 SOLO 生成 | ~60% |
| 问题排查 | ezdxf API 用法、openpyxl 样式设置等 | ~20% |
| 代码优化 | 性能优化(大文件处理)、异常处理完善 | ~15% |
| 文档撰写 | Excel 报告格式化逻辑、注释生成 | ~5% |
最深刻的体验:SOLO 最大的价值不是「写代码」,而是「降低试错成本」。遇到不熟悉的 API 时,不再需要翻文档查 StackOverflow,直接问 SOLO 就能得到可运行的代码片段,然后把精力放在业务逻辑上。
八、后续计划
- 封装为 Web 版(Streamlit),降低使用门槛,
- 增加钢结构、砌体、机电等构件类型支持,
- 增加图纸批量处理和识别能力,
- 在国内工程群和校友群上架自动化提量服务,验证商业价值,
- 尝试Web版的付费商业化。
欢迎交流!如果你也从事工程造价或结构工程,或者对 DXF 解析 / Python 自动化感兴趣,欢迎在评论区讨论。




