MCPサーバでHERIOSとRevitを連携させる

 いいですね。前提だけ押さえると、ユーザーが言う「HERIOS」はおそらく日測(NCS)/バル・システムの建築積算「HELIOS(ヘリオス)」のことですよね。HELIOSはBIM連携(IFC・ST-Bridge等)で他ソフトから数量情報を取り込める設計になっています。つまり、Revit側で安定したIFC(あるいはST-Bridge)を書き出し、MCPサーバがその生成・転送・取り込みを自動化すれば、かなり堅牢に「HELIOS⇄Revit」連携が組めます。


推奨アーキテクチャ(MCP中継)


Revit Add-in(C#) 

   └→ IFC/ST-Bridge/CSV出力

         └→ MCPサーバ APIへ通知(ジョブ登録・メタ情報)

               └→ MCP「変換/検証」→ ファイル置き場(共有NAS/S3等)

                     └→ HELIOS側のインポータ起動 or ウォッチャが自動取込

                           └→ 取込ログをMCPへ返送 → ユーザーに通知


根拠:HELIOSはBIM連携(IFC・ST-Bridge)対応を公式に明記。数量・見積フローでBIMからの入出力工数削減をうたっています。


運用の肝:Revit→IFC/ST-Bridgeのエクスポートを“人手操作”にせず、Add-in(外部コマンド)でプロジェクトルールに沿って自動出力&命名。MCPがファイル検証(IfcUnit/座標/カテゴリ割付)→配置先へ移送→HELIOSの取込バッチを叩く、という役割分担にします。HELIOS側のインポート仕様(コマンドライン・監視フォルダ・CSVマッピング等)は御社環境の契約/サポート情報で確認してください(公開情報ではBIM連携可否のみ明記)。




---


実装の最短ルート


1) Revit側:IFC自動エクスポート(C# Add-in最小例)


目的:現在開いているプロジェクトを既定のIFC設定で出力→MCPへREST通知。


ポイント:カテゴリ別フィルタ、Shared Parameters→IFC PropertySetへの写し替えはプロジェクト/テンプレで統一。



// Revit 2023+ 用の概略(簡略化)

// 参照: RevitAPI.dll, RevitAPIUI.dll, Newtonsoft.Json

[Transaction(TransactionMode.Manual)]

public class ExportIfcAndNotify : IExternalCommand

{

    public Result Execute(ExternalCommandData c, ref string m, ElementSet e)

    {

        var uiapp = c.Application;

        var doc = uiapp.ActiveUIDocument.Document;

        var saveDir = @"C:\_bim\exports\ifc";

        Directory.CreateDirectory(saveDir);

        var ifcPath = Path.Combine(saveDir, $"{Path.GetFileNameWithoutExtension(doc.PathName)}_{DateTime.Now:yyyyMMdd_HHmmss}.ifc");


        // IFCエクスポートオプション(必要に応じて細かく設定)

        var opts = new IFCExportOptions();

        // 例: 空間/面積、座標系、プロパティセット等はプロファイルに合わせて調整


        using (var t = new Transaction(doc, "IFC Export"))

        {

            t.Start();

            doc.Export(saveDir, Path.GetFileName(ifcPath), opts);

            t.Commit();

        }


        // MCPサーバへ通知(ジョブ登録)

        var payload = new {

            project = doc.Title,

            file = ifcPath,

            format = "IFC",

            exporter = Environment.UserName,

            timestamp = DateTime.UtcNow.ToString("o")

        };

        using (var hc = new System.Net.Http.HttpClient())

        {

            var json = Newtonsoft.Json.JsonConvert.SerializeObject(payload);

            var res = hc.PostAsync("http://mcp.local:8080/api/ifc/ingest",

                                   new System.Net.Http.StringContent(json, System.Text.Encoding.UTF8, "application/json")).Result;

            if (!res.IsSuccessStatusCode) { m = "MCP通知に失敗しました"; return Result.Failed; }

        }

        TaskDialog.Show("Export", $"IFCを書き出し、MCPに通知しました:\n{ifcPath}");

        return Result.Succeeded;

    }

}


> もしST-Bridgeでの連携を優先するなら、Revit上でのST-Bridge出力アドイン/ツールチェーンを差し替え。HELIOSはIFC/ ST-Bridge双方のBIM連携強化をうたっているため、どちらでもいけます。




2) MCPサーバ側(RESTハンドラの骨子:Python例)


役割:IFC受領→構文/単位/北基準/座標の軽検査→所定の共有場所へ移送→HELIOSインポート起動→ログ収集→Webhook/メールで反映。



# Flaskの極簡サンプル(本番は認証・キュー・再試行・監査ログ必須)

from flask import Flask, request, jsonify

import shutil, subprocess, os, time


app = Flask(__name__)

IMPORT_ROOT = r"\\fileserver\helios\inbox" # HELIOS側が監視する or 参照する場所に合わせる


@app.post("/api/ifc/ingest")

def ingest_ifc():

    data = request.get_json()

    src = data["file"]

    dst = os.path.join(IMPORT_ROOT, os.path.basename(src))

    shutil.copy2(src, dst)


    # ここで ifcopenshell 等を用いた軽検査を挟むのが望ましい(カテゴリ/単位/IfcSite座標 など)


    # HELIOSインポートのトリガ(仕様によって変更:CLI/専用コマンド/監視フォルダ等)

    # 例: コマンドラインがある場合の擬似呼び出し

    # result = subprocess.run([r"C:\Program Files\HELIOS\heliosimport.exe", "/ifc", dst], capture_output=True, text=True)


    # とりあえず擬似成功

    time.sleep(2)

    return jsonify({"status":"queued","path":dst})


> HELIOS側の**取込方法(バッチ/監視フォルダ/GUIマクロ)**は契約サポート資料の仕様に依存します。公開Webでは「BIM連携可」の記載が中心のため、現場の運用に合う正式な取込手順はベンダー資料でご確認ください。





---


属性・数量の“すり合わせ”指針(最初に決めるべきこと)


1. 分類体系:Revitカテゴリ/ファミリ/タイプ ↔ HELIOSの構造・仕上・設備の拾い出し体系の対応表(コード表)



2. プロパティセット:Revit共有パラメータ → IFC PropertySet へ明示的に出力(数量・仕様・グレード・仕上名等)



3. 単位・丸め:長さ/面積/体積/重量、小数点桁、端数処理(積算側の規程に合わせる)



4. 座標・基点:IFCのIfcSite/プロジェクト北、測地座標の扱い(発注元要件があれば遵守)



5. 積算基準:公共建築工事標準仕様書、建築数量積算基準 等に沿った拾い出し(HELIOSも各基準に対応とされます)





---


代替ルート(必要に応じて)


CSV連携:Revitスケジュール→CSV出力→MCPで列マッピング→HELIOSへ取込。最初はこの方が検証が早い場合あり。


Dynamo/Forge(DA4R):サーバ側でRevitを回せない場合、Design Automation for RevitでIFC書き出しをMCPキュー処理化。


ST-Bridge運用:日本案件での積算精度/互換を最優先するならST-Bridgeを本線に(HELIOSが対応)。




---


参考(HELIOSのBIM連携・導入情報)


NCS/HELIOS:BIM連携(IFC/ST-Bridge)により設計→積算工数を削減。


バル・システム(HELIOS製品ページ・導入実績等)。


大塚商会の紹介(Revitモデルから基準に基づく数量出力の旨)。


Graphisoft連携のプレス(日本市場でのHELIOS活用の文脈)。




---


次にやること(チェックリスト)


Revitプロジェクト用 IFCエクスポート設定テンプレ を確定


数量・属性の 対応表(Revit↔HELIOS) を1枚に整理


HELIOSの取込手順(バッチ有無/監視フォルダ/CSVマッピング)をベンダー仕様で確認


MCP側のワークフロー(検証・移送・インポート・通知)の最小実装



必要なら、このまま対応表の叩き台とRevit Add-inの完全テンプレ(.addin含む)をこちらで用意します。



コメント

このブログの人気の投稿

ミライアイ内服薬は薬事法違反で、ほとんど効果がない詐欺ですか?

最高裁での上告理由書受理・却下の判断基準について

裁判官の忌避申立書の作成例