交付前的自证:机房工勘与机房设计中的 20 条合规自检规则

摘要:返工通常发生在验收环节——尺寸不对、净距不够、功率与容量不匹配。DCDesigner 的合规自检把这些检查项变成 20 条可配置规则(7 大类):一键校验、问题分级、点击定位、报告可导出,编辑落定后还会自动复跑重叠与越界两条硬规则。本文说明规则集、阈值口径、报告形态与 AI 闭环,并明确它不构成规范符合性结论。
一、质量活动应该发生在交付前,而不是验收时

机房工勘与设计的质量问题有很强的「后置性」:图交出去、设备进场、施工开始,问题才被暴露。此时每一条问题的代价都被放大——柜前净距不够,可能要重新排位;功率与供电容量不匹配,可能要改配电;疏散门净宽不足,可能要拆改土建。

要减少返工,只能把检查动作左移。但人工自检有两个天然缺陷:

  1. 不完整:凭经验挑重点看,容易漏项;
  2. 不可留痕:查了什么、结论如何,无法作为过程证据。

DCDesigner 的做法是把检查项清单化、规则化、可导出。顶栏盾牌按钮(或属性面板·汇总页入口)打开左侧合规自检面板,一键按规则集校验当前设计,输出校验报告:面板内查看 + 导出 CSV / Markdown,点击问题项直接在图上选中并缩放定位涉及对象。

二、20 条规则、7 大类

规则注册表定义在public/js/checks.js(CHECK_RULES),完整清单如下:

类别规则检查内容布局实体重叠实体对象(机柜/柱子/空调/UPS/蓄电池/灭火器/风口/列头柜)互相压占越出房间对象超出房间内空范围净距柜前净距机柜正面朝向方向的可用净距柜后净距机柜背面维护净距柜侧与墙净距机柜侧面对墙净距通道宽度冷/热通道实际宽度与阈值比较空调检修面精密空调检修侧净距桥架净高桥架下沿距地最低高度、与下方设备顶面净高电力总供电容量机柜总功率 vs 房间总供电容量UPS 负载与冗余负载率上限与 N+1 / N+2 冗余折算机柜 A/B 双路机柜 RPDU 数量 ≥2(双路供电)列头柜回路输出回路配置粗核(N 路解析,提示级)制冷冷量配比制冷量 / 机柜功率最小配比(冗余折算后)功率密度单柜功率密度(kW/柜)与面积功率密度(kW/m²)提示封闭通道识别识别封闭通道并给出正向确认消防疏散门门净宽与开启方向(宜向外)安全出口面积超过阈值时需不少于两个安全出口灭火器保护半径内空网格采样近似覆盖承重楼板承重设备重量合计 / 房间面积 vs 楼板承重土建房间净高墙高 vs 结构层高、吊顶关系、净高(吊顶/层高 − 架空地板)、下送风所需架空地板高

几个实现上的细节值得说明:

  • 净距判定复用拖动标尺同款几何函数pairClearancewallClearances),支持任意 90° 旋转朝向,正面朝向约定与 POD 一致(rotation 0 = 朝北
  • 承重估算按可配置系数(如机柜 150kg/kW、UPS 9kg/kVA、蓄电池 0.3kg/(Ah·只)、空调 350kg/台、列头柜 250kg/台),对象props.weight存在时优先使用实测重量;
  • 地板出风口(vent)不计为柜前/柜后净距的障碍物(与地面齐平,不挡维护通道);
  • 灭火器覆盖半径用 500mm 网格采样近似,而非解析计算。
三、阈值:全部可配置,且明确声明性质

自检的价值不在「替规范下结论」,而在「按项目标准做一致性检查」。因此阈值全部可配置:

  • 面板「阈值与规则」折叠区逐项修改,即改即存(localStorage),重新运行生效;
  • 规则可单独开关;一键恢复默认;
  • 报告页脚注明:「阈值为经验参考值,不构成规范符合性结论」

默认值(DEFAULT_CFG)可作为工程参考:

项目默认值项目默认值柜前净距900mm疏散门最小净宽900mm柜后净距600mm两个安全出口面积阈值100m²柜侧与墙净距600mm灭火器保护半径15000mm冷通道宽1200mmUPS 负载率上限85%热通道宽900mm冷量/功率最小配比1.0空调检修面900mm单柜功率密度提示10kW/柜桥架下沿距地最低2200mm面积功率密度提示1.2kW/m²桥架下沿高出下方设备300mm楼板承重预警线80%吊顶下净高最低2400mm下送风所需架空地板高400mm

这些数字不是「规范规定」,而是可调的经验起点:不同等级、不同业主标准的机房,应在面板里改成项目适用的数值。

四、问题分级、定位与报告4.1 三级问题

  • 严重(error):重叠、越界等必须修复的问题;
  • 警告(warn):净距、电力、制冷、消防、承重、土建中的超标项;
  • 提示(info):信息性结论,包括正向确认(如「已识别封闭通道 N 条」)。

面板顶部显示计数徽章与通过规则数,问题清单可点击项跳转到画布选中并缩放定位。

4.2 报告导出

报告支持 CSV(UTF-8 BOM + CRLF,Excel/WPS 直接打开)与 Markdown 两种格式,内容包括:项目信息、结果概览、问题明细(级别 / 类别 / 规则 / 涉及对象 / 实测值 / 建议值 / 说明 / 定位坐标)与免责声明。报告正文固定中文——与工程量清单同一决策,理由是把报告当作工程文件而非界面截图。

4.3 实时布局检查

审计型规则(净距/电力/制冷/消防/承重/土建)由面板手动运行;而两条硬规则边改边查:

  • 编辑落定0.9s自动重跑「实体重叠 / 越出房间」(事件驱动防抖,非轮询,无编辑零开销);
  • 问题对象在画布上以红色虚线框标记(导出 PNG / DXF 自动忽略,不污染成果);
  • 顶栏自检按钮右上角挂计数徽章;
  • 状态栏只对「新增问题 / 全部解决」做增量提示,不重复打扰。

也就是说:布局类错误在编辑过程中就会被打断,不必等到交付前才集中发现。

五、AI 闭环:让自检结果可被程序消费

Agent 指令query.checks返回与面板相同的结构化问题清单(level/rule/cat/msg/ 实测值 / 建议值 / 定位 / 涉及对象 id),并支持参数cfg临时覆盖阈值。这让「AI 出图 → 自检 → 按问题逐项修正 → 再跑直至通过」形成闭环:模型不必理解规范,只需消费同一套结构化结论并按对象 id 修改。

对人工使用者的意义同样明确:自检报告可以作为过程证据留档,说明「交付前做过哪些检查、结论是什么、还剩哪些未解决项」。

六、边界:自检能做什么、不能做什么

  • 规则代码只做比较,不把规范解读硬编码进判断逻辑;合规结论的责任仍在设计人与审核人;
  • 房间近似按墙体包围盒矩形处理,L 形/异形机房的面积与净距在边界处为近似值;
  • 承重为估算(系数法/实测优先),不等于结构复核;
  • 净距判定对旋转非 90° 倍数的对象部分跳过;
  • 实时检查只覆盖「重叠 / 越界」两条 error 级规则,其余审计规则需手动运行;
  • 阈值改了要重新运行才生效;不同项目应在此处体现项目标准差异,而不是照搬默认值。

附:事实来源与核验方式

  • 规则集与阈值默认值:public/js/checks.jsCHECK_RULESDEFAULT_CFGrunChecks纯函数)
  • 面板与报告:public/js/checks-panel.js;实时检查:public/js/livecheck.jsmarkDirty防抖钩子)
  • 报告导出格式:public/js/checks.js(CSV / Markdown 构建)
  • AI 闭环:README.md「AI Agent 接口」中的query.checks;契约见public/api/agent/openapi.json
  • 可复现核验:

node tests/checks.test.mjs          # 引擎与报告纯函数(正反分支、阈值覆盖、规则开关、报告结构)node tests/checks-panel.cdp.mjs     # 面板开合、问题渲染与点击定位、互斥、阈值持久化(需无头 Chrome)node tests/livecheck.cdp.mjs        # 实时检查:防抖、红框、徽章、增量提示(需无头 Chrome)