mcpField
I
ifc-ruhsat

ifc-ruhsat

ローカル
github.com/BerkantACUN法務・行政35 週間前に更新

ifc-ruhsat について

ifc-ruhsatは、トルコの建築許可BIM規則に照らしてIFCモデルを検査し、EK-9品質管理フォームを作成します。建築プロジェクトチーム向けに、条項とGlobalIdを含む結果を示し、機械判定できない項目は手動確認として扱います。

主な機能

  1. 01規則に基づくIFCモデル検査
  2. 02EK-9検査フォームの作成
  3. 03条項とGlobalId付きの指摘
  4. 04モデル概要とIDSファイルの生成
  5. 05CLIとMCPサーバーのインターフェース

活用シーン

  1. 01提出前の許可モデルの事前検査
  2. 02不適合要素と根拠条項の特定
  3. 03必要なEK-9フォームの作成
  4. 04附属書6・7のIDSルールの出力

MCP 対応

MCPサーバーとして、規則検査、EK-9フォーム作成、モデル概要、IFCクラスとプロパティ要件、規則情報の照会ツールを提供します。モデルはファイルパスまたはIFCテキストで渡せますが、リモートモードではIFCテキストのみを受け付けます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"berkantacun-ifc-ruhsat": {
"command": "uvx",
"args": [
"ifc-ruhsat"
]
}
}
}
起動コマンドuvx ifc-ruhsat

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiifc-ruhsat0.2.0

ツール

6

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
dosyastringはい

詳細

ifc-ruhsat

建築許可用 IFC モデルを規則に基づいて検査します。 トルコでは、2027年9月1日に施行された「建築・エンジニアリングプロジェクトのデジタル作成に関する規則」(官報 2026年8月5日、第33331号)により、すべての許可申請プロジェクトで IFC モデルを241ページの付属書に適合させ、提出のたびに EK-9 モデル品質管理フォームを作成することが義務付けられています。このツールは付属書を機械判定可能なルールに変換し、モデルを読み込んで、不足項目を条項番号とともに示し、EK-9 フォームに記入します。コマンドラインまたは Claude/Cursor などのクライアント(MCP)から使用でき、特定のソフトウェアに依存しません。Revit、Archicad、Allplan、Bonsai はすべて IFC を出力できます。

自動事前チェックです。規則の一部の項目(LOD、室の形状、PDF と IFC の整合性)は機械では検査できません。このツールはこれらを「手動」と明記し、適合とは判定しません。最終評価はプロジェクト設計者および所管行政機関が行います。このツールは法的見解を示すものではありません。

uvx ifc-ruhsat kontrol 123456_00_MM_GNEL_MD_BIM_000_01_000.ifc
ornekler\hatali_ornek.ifc — IFC4X3
10 hata, 3 uyarı, 8 elle kontrol, 7 bilgi

X [m.11, EK-5 5.5 ve Tablo 5.3 · EK-9 m.5] 1 varlığın adı şablona uymuyor. Beklenen: iki harf disiplin,
  üç harf kategori kodu ve açıklama, orta tire ile (örn. MM-DVR-dis_20cm) …
    3U9N2MO4vDDA4Hfy2J54b4
X [EK-7 Tablo 7.6 · EK-9 m.6] IfcProjectedCRS.Name 'EPSG:3857'; TUREF 3° dilimlerinden biri olmalı:
  EPSG:5253 … EPSG:5259.
X [EK-6 Tablo 6.66 · EK-9 m.9] IfcWall: Pset_WallCommon.FireRating (Yangın Dayanım Sınıfı) 1 varlıkta yok ya da boş.
    3U9N2MO4vDDA4Hfy2J54b4
X [EK-6 6.1.3 · EK-9 m.17] 1 varlık IfcProxy/IfcBuildingElementProxy ile modellenmiş; yönetmelik vekil sınıfa izin vermez …
? [EK-9 madde 7] Gelişim seviyesi (LOD 300) geometrinin ayrıntısına bakılarak elle değerlendirilir.

完全な例:ornekler/hatali_ornek.EK-9.md — 21行の EK-9 フォームで、各行に「はい/いいえ/一部/手動」と根拠を記載しています。

インストール

Python 3.10+ があれば十分です。uv があればインストールは不要で、uvx ifc-ruhsat … だけで使えます。永続的にインストールする場合:

pip install ifc-ruhsat

コマンド

コマンド内容
ifc-ruhsat kontrol model.ifcすべてのルールを実行します。エラーがある場合は終了コード 1 を返します(CI で使用可能)。--json は機械可読な出力、--ek9 form.md は EK-9 フォームをファイルに出力、--disiplin ST は EK-2 の分野コードを指定します
ifc-ruhsat ek9 model.ifcEK-9 モデル品質管理フォーム(表 9.1)を Markdown で出力します
ifc-ruhsat ozet model.ifcスキーマ、生成ソフトウェア、プロジェクト/敷地/建物/階、クラス数を表示します
ifc-ruhsat idsEK-6 と EK-7 を buildingSMART IDS ファイルとして出力します(ids/)— Solibri、BIMcollab Zoom、usBIM.IDS、ifctester で読み込めます
ifc-ruhsat mcp [--http] [--host H] [--port P]MCP サーバー(stdio。--http でストリーミング可能な HTTP を使用)

MCP での使用

Claude Desktop、Claude Code、Cursor、および MCP に対応するすべてのクライアントで使用できます。

{
  "mcpServers": {
    "ifc-ruhsat": { "command": "uvx", "args": ["ifc-ruhsat", "mcp"] }
  }
}

その後、アシスタントに質問します:「C:\proje\A_blok.ifc は規則に適合していますか。EK-9 フォームを作成してください」、「IfcSlab で必須のプロパティは何ですか」、「柱でエラーが出るのはなぜですか。どの条項に基づいていますか」

ツール内容
yonetmelik_kontroluモデルを検査します。検出事項ごとに、重大度、条項、EK-9 の行、GlobalId の一覧を表示します
ek9_formuEK-9 フォームを Markdown で生成します
model_ozetiスキーマ、ソフトウェア、骨組み、クラス数を表示します
ek5_siniflar必須/任意の IFC クラス、トルコ語名、カテゴリコードを表示します
ek6_gerekenlerクラスごとの必須属性およびプロパティセット(EK-6/EK-7)を表示します
yonetmelik_bilgisi根拠、段階的なスケジュール、データソースを表示します

モデルツール(model_ozeti、yonetmelik_kontrolu、ek9_formu)は、dosya(パス)または ifc_metni(IFC テキスト。加えて dosya_adi)でファイルを受け取ります。すべてのツールは読み取り専用で、MCP の注釈(readOnlyHint、destructiveHint: false、idempotentHint、openWorldHint: false)を備えています。各ツールの説明には、使用するタイミング、入力例、戻り値の形式が記載されています。

サーバーは指定されたファイルのみを読み込みます。ネットワークには何も送信せず、永続データも書き込みません。Cline などのエージェントは、llms-install.md に従って自分でインストールできます。

リモートサーバー(Docker)

ifc-ruhsat mcp --http は、ストリーミング可能な HTTP を使って http://<host>:8080/mcp でサーバーを起動します(ステートレスです。複数のインスタンスをロードバランサーの背後で実行できます)。すぐに使えるイメージは、各 v* リリースで公開されます。

docker run --rm -p 8080:8080 -e IFC_RUHSAT_API_KEY=gizli ghcr.io/berkantacun/ifc-ruhsat
環境変数デフォルト説明
IFC_RUHSAT_HOST0.0.0.0リッスンするアドレス(Azure Container Apps は IPv6 をサポートしていないため IPv4)
IFC_RUHSAT_PORT8080ポート
IFC_RUHSAT_API_KEY—指定した場合、各リクエストの X-API-Key ヘッダーがこの値と一致しないと 401 を返します

クライアント側:

{
  "mcpServers": {
    "ifc-ruhsat": {
      "type": "http",
      "url": "https://sunucu.example.com/mcp",
      "headers": { "X-API-Key": "gizli" }
    }
  }
}

リモートモードでは、セキュリティ上の理由から dosya パラメーターは無効です。サーバーは自身のディスク上のパスを一切読み取りません。指定すると、ツールは uzak-dosya-kapali エラーを返します。モデルは ifc_metni で送信してください(サーバーは一時フォルダーに展開し、処理完了後に削除します)。イメージは Python 3.12 slim 上で、root 以外のユーザー(uid 10001)として実行されます。キーは単純な共有シークレットにすぎません。サーバーをインターネットに公開する場合は、TLS を終端するリバースプロキシ(Container Apps ingress など)の背後で実行してください。

検査内容

EK-9 の項目チェック内容状態
2 プロジェクト情報IfcProject、IfcPerson、IfcOrganization、IfcPersonAndOrganization の属性(EK-7 表 7.1–7.5)自動
3 ファイル/プロジェクト名EK-2 表 2.1 の 9 項目、IfcProject.Name自動(下位分野/ファイル種別コードはリストと照合しません)
4 部屋番号/名称IfcSpace.Name が Kat_Bölüm_SıraNo の形式(EK-3 表 3.1、階コードは EK-2 表 2.14)、LongName が入力済み自動
5 要素名Disiplin-Kategori-Açıklama。分野は EK-2、カテゴリコードは EK-5 とクラスとの整合性を確認自動
6 座標IfcProjectedCRS(EPSG:5253–5259、測地系、ゾーン、単位)+ IfcMapConversion(EK-7 表 7.6–7.7)自動
7 LOD 300—手動
8 / 17 クラスEK-5 の必須リスト+任意リスト。IfcProxy / IfcBuildingElementProxy は禁止。上位クラスではなく下位クラスを使用自動+手動(意味)
9 / 20 属性とプロパティEK-6 の必須クラス表 68 件すべて:Name、Tag、材料(Ad_Dayanım)、IfcSystem との関連付け、レイヤー、Pset_/Qto_/TREpys_ プロパティ、データ型、許可値。誤ったセットに含まれるプロパティも検出自動
10 建ぺい率IfcSpatialZone の面積を EmsalDurumu(DAHIL/HARIC/DIGER)に応じて集計し、KAKS × 敷地面積と比較一部自動(図面上の表との比較は手動)
11 骨組みプロジェクト、敷地、建物、1 つ以上の階。IfcProject は 1 つのみ自動
12 部屋の有無建築分野の IfcSpace自動
13–14 部屋のジオメトリ各部屋に容積のある 3D ボディがある。同じ階の部屋の境界ボックスが 10% を超えて重ならない自動(ボックスベースの概算)
15 階との関連付けと高さ各要素がいずれかの階に関連付けられている。ボディはその階と上階の高さの間にある(±1.5 m)自動
16 重複重複する GlobalId。同じクラス+名称+配置自動
18 IFC バージョンIFC4X3、.ifc 拡張子自動
19 定義済みタイプ空欄/NOTDEFINED。USERDEFINED の場合は ObjectType自動
1, 21ファイルサイズの上限は公開されていません。PDF–IFC の整合性手動

EK-6 の必須クラス表 68 件すべてを、最終版の官報付属文書からページごとに読み取り、コード化しました。各属性は IFC 4.3 スキーマに照らし、各プロパティは buildingSMART の公式 Pset テンプレートに照らしてテストで検証されます。各表の出典ページ:KAYNAKLAR.md。ジオメトリチェック(部屋のボディ、重なり、高さ)は境界ボックスベースです。高速ですが概算のため、L 字型の部屋では誤検知する場合があります。この点は検出結果の説明にも記載されます。

実際のモデルで何が出るか

公開されている3つのモデルを、何も変更せずに確認した結果です(これらのモデルは規則がない状態で作成されているため、「準備状況はどの程度か」という問いへの答えになります)。

モデルスキーマ時間エラー/警告主な内容
buildingSMART公式IFC 4.3サンプル、Building-Architecture.ifc(SketchUp、21要素)IFC4X3< 1 s32 / 5座標系EPSG:32760(トルコのゾーンではありません);代理クラス2件;部屋番号とTREpys_セットなし;Pset_BuildingCommonは空
Revit 2021の住宅、Ifc4_Revit_ARC.ifc(13 MB、522要素)IFC41,7 s47 / 12IFC 4.3ではありません;IfcBuildingElementProxyが66件;要素名511件がテンプレートに準拠していません;47件の壁にFireRatingなし;IfcPlate(カーテンウォールパネル44枚)は規則のリストにありません;IfcSpaceなし;座標系なし
IfcOpenShellのサンプル住宅、Ifc4_SampleHouse.ifc(2 MB)IFC4< 1 s40 / 9IFC4;IfcWallStandardCase(4.3で廃止);材料名がAd_Dayanım形式ではありません;28要素に事前定義タイプなし

教訓:現在一般的なRevitの出力と規則が求めるファイルとの差は大きいものの、数えられます。つまり、IFC 4.3への移行、代理クラスの分類、命名テンプレート、防火・用途のプロパティ、そしてトルコ固有の敷地・容積率セットです。このツールはそれらをGlobalIdとともに提示します。また、規則そのものの抜けも分かります。Revitが出力するカーテンウォールパネルのIfcPlateは、EK-5のどちらのリストにもありません(KAYNAKLAR.md)。

規則の概要

  • 建築許可申請に添付するプロジェクトはBIMベースで作成し、IFC 4.3(TS EN ISO 16739-1)で提出します。2D図面はモデルから生成し、PDF/Aで提出します(第4条、第9条)。
  • 要素はEK-5のクラスを使い、Disiplin-KategoriKodu-Açıklamaという名前でモデリングします(第11条、EK-5)。代理クラスは禁止されています(EK-6 6.1.3)。
  • 各クラスについて、EK-6の属性とプロパティセットを入力し、プロジェクトについてはEK-7(トルコ固有のTREpys_セットを含む)を入力します(第12~13条)。
  • モデルのLODは300です(EK-8)。提出のたびにEK-9のフォームを作成します(第15条)。
  • スケジュール(暫定第1条):施行日は1.9.2027です。IFC提出は1.9.2029から大都市の>10.000 m²のプロジェクトを対象に開始し、1.9.2032にすべての建物、1.9.2033に住宅以外の建物が対象となります。

本文:官報20260805-2 · 添付文書(241ページ):20260805-2-1.pdf

独自のルール

規則データはsrc/ifc_ruhsat/ekler/*.jsonにあり、各ファイルはそれぞれのkaynakフィールドに出典を記載しています。EK-6の表を追加するには、該当する官報のページを確認し、ek6_ozellikler.jsonに行とページ番号を記入して、テストを実行します。ルールを追加するには、src/ifc_ruhsat/kurallar/の下にkontrol(baglam) -> list[Bulgu]シグネチャを持つモジュールを作成し、kontrol.pyのMODULLERに1行追加します。各指摘は条項とEK-9の行に紐づける必要があります。根拠のないルールは追加しません。

uv sync && uv run pytest && uv run ruff check .

English

ifc-ruhsatは、IFCモデルをトルコの建築許可BIM規則(2026年8月5日付官報、第33331号;2027年9月1日施行;IFC提出は2029年9月から段階的に開始)に照らしてチェックします。規則の付属書を実装しており、必須のIFC 4.3クラスと3文字のカテゴリコード(付属書5)、クラスごとの属性およびプロパティセット要件(トルコ固有のTREpys_セットを含む、付属書6)、プロジェクト・担当者・組織とTUREF座標の要件(付属書7)を定め、21行のモデル品質管理フォーム(付属書9)を作成します。指摘には条項と付属書の表を示し、GlobalIdを記載します。ベンダーに依存せず(IfcOpenShell)、CLI、Claude/Cursor向けのMCPサーバー、Solibri/BIMcollab/usBIM向けのbuildingSMART IDSファイルとして利用できます。これは自動化された事前チェックであり、法的助言ではありません。機械で検証できない行は、合格ではなく手動確認として報告します。

ライセンス

MIT。規則本文とその付属書は公開文書です。ここにある JSON ファイルはそれらの付属書を機械可読形式にしたもので、取得元のページは各ファイルに記載されています。

mcp-name: io.github.BerkantACUN/ifc-ruhsat

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。