Ifc Ruhsat

io.github.BerkantACUN由 GitHub 帳號 BerkantACUN 發布v0.2.0更新於 Oct 24, 2026

Yapı ruhsatı IFC modelini Türkiye dijital proje yönetmeliğine (RG 33331) göre denetler; EK-9 formu

概覽

AI 產生的概覽

依土耳其數位建築執照 BIM 法規檢查 IFC 建築模型,並產生 21 列的 EK-9 品質控制表。

可以做什麼
對 IFC 模型執行法規檢查,每項發現都連結條文、附件表格、EK-9 列與 GlobalId 清單,可輸出 JSON 或寫入表單檔案(yonetmelik_kontrolu)。以 Markdown 產生 EK-9 模型品質控制表(ek9_formu)。彙整模型的 schema、產生軟體、專案/基地/建築/樓層骨架與類別數量(model_ozeti)。查詢強制與選用的 IFC 類別及其土耳其文名稱與類別代碼(ek5_siniflar),以及某類別所需的屬性與屬性集(ek6_gerekenler)。查閱法規依據、分階段時程與資料來源(yonetmelik_bilgisi)。
適用情境
適合準備土耳其建築執照送件的建築師、BIM 協調人員與報建團隊,在交給設計人或主管機關之前,對 IFC 模型做快速自動預檢並草擬 EK-9 表單。
執行需求
以 uvx(或 pip install)在 Python 3.10+ 上執行的本機程序;本機 stdio 使用不需帳號或 API 金鑰。選用的 Docker/HTTP 模式會監聽主機與連接埠,並可透過 IFC_RUHSAT_API_KEY 要求 X-API-Key 標頭。
安裝前請注意
它只是自動預檢,不構成法律意見;無法由機器核驗的列(LOD、房間幾何、PDF 與 IFC 一致性)會標為人工檢查,絕不視為通過。幾何檢查以邊界框為基礎,L 形房間可能誤報。工具為唯讀,本機伺服器不向網路傳送任何內容。遠端 HTTP 模式下檔案路徑參數被停用,模型以 IFC 文字傳送;API 金鑰只是共用密鑰,應把伺服器放在終止 TLS 的反向代理之後。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Ifc Ruhsat,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

ifc-ruhsat

Yapı ruhsatı IFC modelini yönetmeliğe göre kontrol eder. Türkiye'de 1 Eylül 2027'de yürürlüğe giren Mimarlık ve Mühendislik Projelerinin Dijital Olarak Hazırlanması Hakkında Yönetmelik (Resmî Gazete 5.8.2026, sayı 33331) her ruhsat projesinin IFC modelini 241 sayfalık eklere uydurmayı ve her teslimde EK-9 Model Kalite Kontrol Formu düzenlemeyi zorunlu kılıyor. Bu araç o ekleri makine kuralına çevirir: modeli okur, eksikleri madde numarasıyla söyler, EK-9 formunu doldurur. Komut satırından ya da Claude / Cursor gibi istemcilerden (MCP) kullanılır; yazılımdan bağımsızdır — Revit, Archicad, Allplan, Bonsai, hepsi IFC verir.

Otomatik ön kontroldür. Yönetmeliğin bazı satırları (LOD, mahal geometrisi, PDF–IFC uyumu) makinece denetlenemez; araç bunları "elle" diye açıkça bırakır, uygun saymaz. Nihai değerlendirme proje müellifi ile ilgili idareye aittir; bu araç hukuki görüş değildir.

uvx ifc-ruhsat kontrol 123456_00_MM_GNEL_MD_BIM_000_01_000.ifc
ornekler\hatali_ornek.ifc — IFC4X310 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) …    3U9N2MO4vDDA4Hfy2J54b4X [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ş.    3U9N2MO4vDDA4Hfy2J54b4X [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.

Tam örnek: ornekler/hatali_ornek.EK-9.md — 21 satırlık EK-9 formu, her satırda Evet / Hayır / Kısmen / Elle ve dayanağı.

Kurulum

Python 3.10+ yeterli. uv varsa kurulum gerekmez, uvx ifc-ruhsat … yeter. Kalıcı kurulum:

pip install ifc-ruhsat

Komutlar

KomutNe yapar
ifc-ruhsat kontrol model.ifcBütün kuralları çalıştırır; hata varsa çıkış kodu 1 (CI'da kullanılabilir). --json makine çıktısı, --ek9 form.md EK-9 formunu dosyaya yazar, --disiplin ST EK-2 disiplin kodu
ifc-ruhsat ek9 model.ifcEK-9 Model Kalite Kontrol Formu (Tablo 9.1), Markdown
ifc-ruhsat ozet model.ifcŞema, üreten yazılım, proje/saha/bina/katlar, sınıf sayıları
ifc-ruhsat idsEK-6 ve EK-7'yi buildingSMART IDS dosyası olarak yazar (ids/) — Solibri, BIMcollab Zoom, usBIM.IDS, ifctester okur
ifc-ruhsat mcp [--http] [--host H] [--port P]MCP sunucusu (stdio; --http ile streamable HTTP)

MCP ile kullanım

Claude Desktop, Claude Code, Cursor ve MCP konuşan her istemci:

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

Sonra asistanınıza sorun: "C:\proje\A_blok.ifc yönetmeliğe uyuyor mu, EK-9 formunu çıkar", "IfcSlab için hangi özellikler zorunlu?", "Kolonlarda neden hata var, hangi maddeye göre?"

AraçNe yapar
yonetmelik_kontroluModeli denetler; her bulgu seviye, madde, EK-9 satırı ve GlobalId listesiyle
ek9_formuEK-9 formunu Markdown üretir
model_ozetiŞema, yazılım, iskelet, sınıf sayıları
ek5_siniflarZorunlu / isteğe bağlı IFC sınıfları, Türkçe adları ve kategori kodları
ek6_gerekenlerBir sınıf için zorunlu öznitelik ve özellik setleri (EK-6 / EK-7)
yonetmelik_bilgisiDayanak, kademeli takvim, veri kaynakları

Model araçları (model_ozeti, yonetmelik_kontrolu, ek9_formu) dosyayı dosya (yol) ya da ifc_metni (IFC metni, + dosya_adi) ile alır. Bütün araçlar salt okurdur ve MCP ek açıklamalarını (readOnlyHint, destructiveHint: false, idempotentHint, openWorldHint: false) taşır; her aracın açıklamasında ne zaman kullanılacağı, girdi örnekleri ve dönüş biçimi yazar.

Sunucu yalnızca verilen dosyayı okur; ağa hiçbir şey göndermez, kalıcı bir şey yazmaz. Cline gibi ajanlar kurulumu llms-install.md ile kendi başına yapabilir.

Uzak sunucu (Docker)

ifc-ruhsat mcp --http sunucuyu streamable HTTP ile http://<host>:8080/mcp adresinde açar (durumsuz; birden çok kopya yük dengeleyici arkasında çalışır). Hazır imaj her v* sürümünde yayımlanır:

bash
docker run --rm -p 8080:8080 -e IFC_RUHSAT_API_KEY=gizli ghcr.io/berkantacun/ifc-ruhsat
Ortam değişkeniVarsayılanAnlamı
IFC_RUHSAT_HOST0.0.0.0Dinlenecek adres (Azure Container Apps IPv6 desteklemediği için IPv4)
IFC_RUHSAT_PORT8080Port
IFC_RUHSAT_API_KEY—Verilirse her istekte X-API-Key başlığı bu değere eşit olmalı, yoksa 401

İstemci tarafı:

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

Uzak modda dosya parametresi güvenlik gereği kapalıdır: sunucu kendi diskinden hiçbir yol okumaz, verilirse araç uzak-dosya-kapali hatası döner. Modeli ifc_metni ile gönderin (sunucu onu geçici bir klasörde açar, iş bitince siler). İmaj Python 3.12 slim üzerinde, root olmayan kullanıcıyla (uid 10001) çalışır. Anahtar yalnız basit bir paylaşımlı sırdır; sunucuyu internete açarken TLS sonlandıran bir ters vekil (Container Apps ingress gibi) arkasında çalıştırın.

Ne denetleniyor

EK-9 satırıKontrolDurum
2 Proje bilgileriIfcProject, IfcPerson, IfcOrganization, IfcPersonAndOrganization öznitelikleri (EK-7 Tablo 7.1–7.5)otomatik
3 Dosya/proje adıEK-2 Tablo 2.1 dokuz alan; IfcProject.Nameotomatik (alt disiplin/dosya türü kodları listeyle karşılaştırılmıyor)
4 Mahal no/ismiIfcSpace.Name Kat_Bölüm_SıraNo (EK-3 Tablo 3.1, kat kodları EK-2 Tablo 2.14), LongName doluotomatik
5 Varlık adlarıDisiplin-Kategori-Açıklama; disiplin EK-2, kategori kodu EK-5 ve sınıfla uyumuotomatik
6 KoordinatIfcProjectedCRS (EPSG:5253–5259, datum, zon, birim) + IfcMapConversion (EK-7 Tablo 7.6–7.7)otomatik
7 LOD 300—elle
8 / 17 SınıflarEK-5 zorunlu + isteğe bağlı liste; IfcProxy / IfcBuildingElementProxy yasak; üst sınıf yerine alt sınıfotomatik + elle (anlam)
9 / 20 Öznitelik ve özelliklerEK-6'nın 68 zorunlu sınıf tablosunun tamamı: Name, Tag, malzeme (Ad_Dayanım), IfcSystem bağı, katman, Pset_/Qto_/TREpys_ özellikleri, veri tipi, izinli değerler; yanlış sette bulunan özellik ayrıcaotomatik
10 EmsalIfcSpatialZone alanları EmsalDurumu'na (DAHIL/HARIC/DIGER) göre toplanır, KAKS × parsel alanıyla karşılaştırılırkısmen (pafta tablosuyla karşılaştırma elle)
11 İskeletProje, Saha, Bina, ≥1 Kat; tek IfcProjectotomatik
12 Mahal var mımimari disiplinde IfcSpaceotomatik
13–14 Mahal geometrisiher mahalin hacimli 3B gövdesi var; aynı kattaki mahallerin sınır kutuları %10'dan fazla örtüşmüyorotomatik (kutu tabanlı, kaba)
15 Kata bağlılık ve kother eleman bir kata bağlı; gövdesi katın kotu ile üst katın kotu arasında (±1,5 m)otomatik
16 Yinelenentekrar eden GlobalId; aynı sınıf+ad+yerleşimotomatik
18 IFC sürümüIFC4X3, .ifc uzantısıotomatik
19 Ön Tanımlı Tipboş / NOTDEFINED; USERDEFINED ise ObjectTypeotomatik
1, 21dosya boyutu sınırı yayımlanmadı; PDF–IFC uyumuelle

EK-6'nın 68 zorunlu sınıf tablosunun tamamı nihai Resmî Gazete ekinden sayfa sayfa okunup kodlandı; her öznitelik IFC 4.3 şemasına, her özellik buildingSMART'ın resmî Pset şablonlarına karşı testle doğrulanır. Hangi tablonun hangi sayfadan geldiği: KAYNAKLAR.md. Geometri kontrolleri (mahal gövdesi, örtüşme, kot) sınır kutusu tabanlıdır — hızlı ve kaba; L biçimli mahallerde yanlış alarm verebilir, bunu bulgu metni de söyler.

Gerçek modellerde ne çıkıyor

Halka açık üç modelde, hiçbir şey değiştirmeden (bu modeller yönetmelik yokken yapıldı; sonuç "hazırlık ne kadar" sorusunun cevabıdır):

ModelŞemaSüreHata / uyarıÖne çıkanlar
buildingSMART resmî IFC 4.3 örneği, Building-Architecture.ifc (SketchUp, 21 varlık)IFC4X3< 1 s32 / 5Koordinat sistemi EPSG:32760 (Türkiye dilimi değil); 2 vekil sınıf; mahal numaraları ve TREpys_ setleri yok; Pset_BuildingCommon boş
Revit 2021 konut, Ifc4_Revit_ARC.ifc (13 MB, 522 varlık)IFC41,7 s47 / 12IFC 4.3 değil; 66 IfcBuildingElementProxy; 511 varlık adı şablon dışı; 47 duvarda FireRating yok; IfcPlate (44 giydirme cephe paneli) yönetmelik listesinde yok; hiç IfcSpace yok; koordinat sistemi yok
IfcOpenShell örnek evi, Ifc4_SampleHouse.ifc (2 MB)IFC4< 1 s40 / 9IFC4; IfcWallStandardCase (4.3'te kaldırıldı); malzeme adları Ad_Dayanım biçiminde değil; 28 elemanda Ön Tanımlı Tip yok

Ders: bugünkü tipik bir Revit çıktısı ile yönetmeliğin istediği dosya arasındaki fark büyük ama sayılabilir — IFC 4.3'e geçiş, vekil sınıfların sınıflandırılması, isimlendirme şablonu, yangın/kullanım özellikleri ve Türkiye'ye özel parsel/emsal setleri. Araç bu listeyi GlobalId'leriyle veriyor. Bir de yönetmeliğin kendi boşluğu görünüyor: Revit'in giydirme cephe panellerini attığı IfcPlate EK-5'in iki listesinde de yok (KAYNAKLAR.md).

Yönetmelik ne diyor, kısaca

  • Ruhsat eki projeler BIM tabanlı hazırlanır, IFC 4.3 (TS EN ISO 16739-1) teslim edilir; 2B paftalar modelden üretilip PDF/A verilir (m.4, m.9).
  • Varlıklar EK-5'teki sınıflarla, Disiplin-KategoriKodu-Açıklama adıyla modellenir (m.11, EK-5); vekil sınıf yasak (EK-6 6.1.3).
  • Her sınıf için EK-6'daki öznitelik ve özellik setleri, projeler için EK-7 (Türkiye'ye özel TREpys_ setleri dahil) doldurulur (m.12–13).
  • Model LOD 300'dür (EK-8); her teslimde EK-9 formu düzenlenir (m.15).
  • Takvim (Geçici m.1): yürürlük 1.9.2027; IFC teslimi 1.9.2029'dan itibaren büyükşehirlerdeki >10.000 m² projelerle başlar, 1.9.2032'de bütün binalar, 1.9.2033'te konut dışı.

Metin: Resmî Gazete 20260805-2 · Ekler (241 s.): 20260805-2-1.pdf

Kendi kurallarınız

Yönetmelik verisi src/ifc_ruhsat/ekler/*.json içinde, her dosya kaynağını kendi kaynak alanında söyler. Bir EK-6 tablosu eklemek: ilgili Resmî Gazete sayfasını okuyup ek6_ozellikler.json'a satırı ve sayfa numarasını yazın, testleri çalıştırın. Kural eklemek: src/ifc_ruhsat/kurallar/ altına kontrol(baglam) -> list[Bulgu] imzasıyla bir modül, kontrol.py'daki MODULLER'e bir satır. Her bulgu bir maddeye ve bir EK-9 satırına bağlanmak zorundadır; dayanağı olmayan kural eklenmez.

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

English

ifc-ruhsat checks an IFC model against Türkiye's building-permit BIM regulation (Official Gazette 5 Aug 2026, no. 33331; in force 1 Sep 2027; IFC delivery phased in from Sep 2029). It encodes the regulation's annexes — mandatory IFC 4.3 classes and 3-letter category codes (Annex 5), per-class attribute and property-set requirements including the Turkish TREpys_ sets (Annex 6), project/person/organisation and TUREF coordinate requirements (Annex 7) — and fills in the 21-row model quality-control form (Annex 9). Findings cite the article and annex table and list GlobalIds. Vendor-neutral (IfcOpenShell), usable as a CLI, as an MCP server for Claude/Cursor, and as buildingSMART IDS files for Solibri/BIMcollab/usBIM. It is an automated pre-check, not legal advice; rows that cannot be verified by machine are reported as manual, never as passed.

Lisans

MIT. Yönetmelik metni ve ekleri kamu belgesidir; buradaki JSON dosyaları o eklerin makine biçimidir, hangi sayfadan alındığı her birinde yazılıdır.

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

來源:README.md,提交 cd6d3ce

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.2.0最新Sep 17, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分