Skip to content

Diff & Approval ​

Diff and Approval icon

概要 ​

Original / Modified 2 つの BuildingData を比較し、各変更を per-field で承認 する Git ライクな UI コンポーネントです。AI による生成や MCP 経由の編集結果を本番フローに通す前の 承認ゲート として使うことを意図しています。フォームはモードレスで、開いている間も Grasshopper は応答し続けます。

  • グループ: 3. Validate & Diff
  • ニックネーム: DiffApprv
  • Exposure: Primary
  • v5.5.0 新規 (旧 Comp_I09 AnalyticalMerge を全面刷新、ComponentGuid 流用)

性悪説原則 (Assume Guilty) ​

すべての変更は デフォルト「未承認」状態 で表示されます:

  • ユーザーがチェックを入れた変更だけが Output に反映
  • 一括承認 (Approve All) は 2 段階確認 (Arm CheckBox → ボタン)
  • 監査ログ .approved.json に承認 / 拒否 / 時刻 / ユーザー名を永続化
  • Cancel で閉じても status="cancelled" で記録

詳細: AI 機能 利用規約 §2

入力パラメータ ​

パラメータ名型デフォルト説明
Original (Ori)Generic—比較元 (信頼できるバージョン)
Modified (Mod)Generic—比較対象 (AI 編集 or MCP 編集後)
OpenDialog (D)Booleanfalsetrue の立ち上がりで承認フォームを開く(モードレス。false に戻すと外部から閉じられる)
AutoApprove (Auto)Booleanfalse(任意)debug / CI 専用。フォームを経ずに全変更を承認。商用設計フローでは使用禁止
AuditPath (P)Text""(任意).approved.json 監査ログの保存先パス(空なら保存されず Warning)

出力パラメータ ​

パラメータ名型説明
Approved (Out)Generic承認済の変更のみが Original に適用された BuildingData(フォームが開いている間は Original と同一)
Diff (D)Text (List)全変更の一覧(承認/拒否ステータス付き。GUID ではなく位置ベースの DisplayKey 例 X1-Y1 @ 1F を使用)
Stats (St)Text統計(総数 / 承認 / 拒否件数と現在のステータス)
Pending (P)Booleanフォームが開いている、または未承認の変更が残っている(下流はこれが False になるまでゲートするのが基本)
Selected (Sel)GenericUI 上で選択中の Change (S06 でハイライト表示用。リアルタイム更新)
SelectedInfo (SI)Text選択 Change の説明 (Category / Location / Kind / FieldPath)
ChangesList (ChL)Generic (List)全 Change オブジェクト一覧(Comp_S06_DiffPreview で一括ハイライト等に使用)

変更検知のカテゴリ ​

カテゴリ検知される変更キー
Global / Building_MetadataDesign_Phase 変更、Project_Name 変更 等フィールドパス
Grids通り芯追加 / 削除 / SpanAxis/Label
Grid_Nodes (v5.9.0)交点オフセットの追加 / 削除 / 変更"X2-Y3"(表示は X2-Y3 (+0, +300) のようにオフセット付き)
Levels階追加 / 削除 / Height / Slab_On_BeamName
Catalog_*(16 種)エントリ追加 / 削除 / Type_ID 変更 / Revit_Family_Type / MaterialType_ID
Layout_*(18 種)Instance_ID 追加 / 削除 / Floor / Grid / Type_ID / Justification / End_Release_* / Is_VoidInstance_ID(表示は位置ベース)

Grid_Nodes の変更も他カテゴリと同様に per-change で個別承認 できます(v5.9.0)。

指標記録 diff_metrics.tsv(v5.7.0) ​

差分計算・承認のたびに、件数のみの指標が TSV で追記記録されます(検証インフラ Metrics v0 の一部):

  • 保存先: %APPDATA%/MakeBuildingPro/diff_metrics.tsv
  • 列: timestamp / event / building / total / added / removed / modified / approved / rejected / categories
  • イベント: diff_computed(差分計算直後。approved/rejected は -)/ approval_applied / approval_cancelled
  • 変更の中身(Before/After 値・プロンプト文)は記録されない(件数のみ・機密情報非保持)
  • timestamp 以外が直前の記録と同一の行はスキップ(AutoApprove の solve 連発による重複抑止)
  • 集計は MCP ツール get_approval_stats からも参照可能

AutoApprove の警告 ​

AutoApprove=true 設定時、毎回 GH Runtime Message に警告ログ が出力されます (suppress 不可)。商用設計フローでの使用は禁止されており、AI Terms of Use §2.5 に違反します。

ワークフロー例 ​

Comp_I06 AI Building Generator (Modified)
            ↓
Comp_I09 Diff & Approval (Original = 信頼版、Modified = AI 出力)
   ↓ ユーザーが per-field 承認
Approved (BuildingData)
   ↓
Comp_S01 Build Model → 3D / Comp_E06 Speckle / 等

関連 ​

更新履歴 ​

  • v5.9.0: Grid_Nodes カテゴリを追加(キー "X2-Y3"・オフセット付き DisplayKey・per-change 承認可)— 交点移動の差分を可視化
  • v5.7.0: 指標記録 diff_metrics.tsv を追加(セッション毎の差分/承認件数を TSV 追記。件数のみ・連続重複はスキップ)