核心功能
Batch CAD Converter 是一款面向工程与建筑行业的多格式 CAD/BIM 文件批量转换工具,支持 Revit(.rvt/.rfa)、IFC、DWG、DGN 等主流格式的统一处理。该工具采用 Python 实现,提供完整的转换生命周期管理,包括格式自动识别、转换器调度、进度回调、错误处理及结构化报告生成。
显著优点
1. 多格式统一处理:通过枚举类 CADFormat 和自动扩展名识别,实现单一入口处理多种 CAD 格式,避免用户在不同转换工具间切换。
2. 健壮的容错机制:单文件失败不影响整体批次,支持 SKIPPED、FAILED、SUCCESS 等细粒度状态追踪,并记录完整错误信息。
3. 灵活的执行模式:支持顺序与并行(ThreadPoolExecutor)两种处理模式,用户可根据系统资源选择 max_workers 配置。
4. 可观测性设计:内置进度回调接口(set_progress_callback),便于集成到 GUI 或 CI/CD 流水线;转换结束后生成 JSON 格式的结构化报告,包含成功率、耗时统计及逐文件详情。
5. 格式专属参数传递:通过 options 字典为不同格式指定转换参数(如 Revit 的 complete/bbox 模式),满足专业级需求。
潜在局限与风险
- 外部依赖未内置:工具依赖
RvtExporter.exe、IfcExporter.exe等外部可执行文件,需用户自行配置converter_dir;若路径缺失或版本不兼容,将导致转换失败。 - 输出格式硬编码:当前实现强制输出为
.xlsx(见convert_file方法),对于需要保留原始几何或属性的场景可能不适用。 - 并行安全性:
ThreadPoolExecutor未针对 Revit 等需要 COM/单线程环境的转换器做特殊处理,可能引发资源竞争或崩溃。 - 超时固定:单文件转换硬编码 3600 秒超时,对于超大型模型可能不足,且不可配置。
适用人群
- 建筑/工程企业 IT 部门,负责历史项目数据归档与格式迁移
- BIM 咨询团队,需要批量提取多项目几何或属性数据
- 数据工程师,构建 CAD 数据 ETL 流水线
常规风险
外部可执行文件的调用存在路径注入与命令执行风险,建议对 converter_dir 和 options 参数进行白名单校验;并行模式下需注意临时文件冲突与系统内存占用。