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含む)をこちらで用意します。
コメント
コメントを投稿