revit-dynamo-cable-tray-kesif-otomasyonu

Revit + Dynamo + CPython3 ile Cable Tray / Fittings Keşfini Tek Tıkla Otomatik Export Etmek

24 Ocak 2026 · 5 dk okuma

Kısa özet

MEP projelerinde kablo kanalı (Cable Trays) ve modüller (Cable Tray Fittings) için keşif almak çoğu zaman “manuel schedule düzenleme + Excel’e aktarma + temizleme + birleştirme” şeklinde ilerliyor. Bu süreç hem zaman alıyor hem de proje bazlı parametre farkları yüzünden standardı korumak zorlaşıyor.

Bu yazıda, Revit içinde Dynamo + CPython3 ile çalışan bir akışla:

  • Cable Tray ve Cable Tray Fittings verilerini topladım,

  • ölçü/format dönüşümlerini otomatikleştirdim,

  • proje bazlı parametre farklılıklarını “alias” mantığıyla yönettim,

  • çıktıyı tek bir Excel dosyasında, üstte düz boylar altta modüller olacak şekilde standardize ettim.

Amaç: tek tıkla, tekrarlanabilir, okunabilir, denetlenebilir bir keşif çıktısı üretmek.


Neden böyle bir otomasyon gerekli?

Kablo kanalı keşfi pratikte iki ayrı dünyadan oluşur:

  1. Cable Tray (düz boylar)
    Burada genelde metraj önemlidir. Aynı tip kanalların uzunluklarını toplamak istersin. Sütunlar çoğu zaman: Level/Reference Level, Family and Type, Size, Height, Width ve Length gibi alanlardır.

  2. Cable Tray Fittings (modüller)
    Burada uzunluk değil, adet (Count) kritiktir. Dirsek, tee, reducer, cross gibi elemanlar parçadır. Sütunlar da buna göre şekillenir: Level, Family and Type, Size, Bend Radius, Angle, Comments ve Count gibi.

Manuel yöntemde sık yaşanan problemler şunlardır:

  • Aynı bilgi farklı parametre isimleriyle gelir (CT_Angle / CableTrayAngle / Angle gibi).

  • Excel’de açı “90.0000°” gibi gereksiz formatlarla görünür.

  • Bend Radius bazen 50,5 gibi değerler üretir; sen bunun 50 veya 55 gibi “standart adım” olmasını istersin.

  • “Family”, “Type” ve “Family and Type” kavramları karışır; yanlış alan export olur.

  • İki ayrı excel çıktısını birleştirmek ayrıca vakit alır ve hata çıkarır.

  • Modül tipinin (Kanal/Merdiven/Tel + DD/YD/RD…) elle sınıflandırılması

Bu yüzden hedef net: Tek grafikte, tek Python node içinde hepsini toparlamak ve tek Excel çıktısı üretmek.


Çözüm yaklaşımı (Revit + Dynamo)

Bu otomasyonda tek bir Dynamo grafiği içinde 4 blok mantığı kullandım:

revit-dynamo-cable-tray-kesif-otomasyonu

1) INPUTS

  • Output folder / dosya adı gibi temel girdiler

  • Opsiyonel bayraklar: radius snap açık/kapalı, modül tipi sınıflandırma açık/kapalı gibi

2) PARAMETER MAP

Kodun içine gömüp “her projede Python’a gir-çık” yapmak yerine, düzenlenebilir kısımları Dynamo’da blok olarak ayırdım:

  • TRAY_COLS / FIT_COLS (Excel kolon başlıkları)

  • SHAPE_MAP / FITTING_CODE_MAP (Modül tipi üretim sözlükleri)

Böylece “kolon adını değiştir, yeni anahtar kelime ekle” gibi işler için kodu bozmadan yönetilebilir hale geldi.

3) PROCESS (CPython3)

Tek Python node içinde:

  • Cable Trays: gruplanır, Length toplanır (toplam metraj)

  • Cable Tray Fittings: gruplanır, Count üretilir

  • ölçüler mm/m formatına çevrilir

  • açı değerleri 90.0000° yerine 90 gibi temiz yazılır

  • Bend Radius değerleri hem tam sayıya yuvarlanır, hem de istenirse 5’lik adımlara snap edilir (50, 55, 60 gibi)

4) COLLECT (Validation / Sanity Check)

Export başarılı görünse bile modelde eleman yoksa “boş Excel” çıkabilir. Bu yüzden:

  • Tray Count

  • Fitting Count
    gibi sayıları görsel olarak grafikte tutup hızlı doğrulama sağladım. Bu blok export’un “doğru veriyle” çalıştığını bir bakışta gösteriyor.


Modül tipi nasıl üretiliyor?

“Family and Type” metninden anahtar kelime arayarak iki parçalı bir etiket üretiyorum:

Şekil (Shape)

  • LADDER → Merdiven

  • TRAY → Kanal

  • BSKT / BASKET → Tel

Kod (Fitting Code)

  • OUTS → DD

  • INS → ID

  • TEE → YT

  • BEND / HOR → YD

  • CROSS → AD

  • REDUCER / ETHUCER → RD (projeye göre farklı yazımlar olabiliyor, ikisini de kapsıyor)

Sonuç: “Kanal – YD”, “Merdiven – DD”, “Tel – RD” gibi standart bir “Modül Tipi” kolonu.


Tek Excel çıktısı: Üstte düz boylar, altta modüller

Çıktıyı tek dosyada iki blok yapmak hem okunabilirliği artırır hem de arşiv yönetimini kolaylaştırır. Tipik yapı:

  1. Başlık satırı: “DÜZ BOYLAR (CABLE TRAY)”

  2. TRAY_COLS başlık satırı

  3. Tray satırları

  4. 1-2 boş satır

  5. “MODÜLLER (CABLE TRAY FITTINGS)”

  6. FIT_COLS başlık satırı

  7. Fitting satırları

İstersen bir sonraki adımda bu Excel dosyasına basit biçimlendirme (kalın başlık, filtre, donuk başlık satırı, kolon genişliği) de eklenebilir.


Dosya adı standardı

Excel adı otomatik olarak:

  • Revit proje adı + “Kesif”

  • aynı isim varsa sonuna 1, 2, 3… ekleyerek
    çıktıların üzerine yazmayı engelliyor.

Bu küçük detay, özellikle çok proje çıktısı alınırken takip ve arşivleme açısından büyük fark yaratıyor.


Sonuç ve etki

Bu akışın pratik çıktısı:

  • Keşif üretim süresi kısalır (manuel schedule/Excel temizleme azalır)

  • Format standardı korunur (her projede aynı kolon düzeni)

  • Hata riski düşer (birim/format dönüşümleri otomatik)

  • Değişiklik yönetimi kolaylaşır (PARAMETER MAP ile kod bozmadan güncelleme)


Paylaşım ve tekrar kullanılabilirlik

Bu çalışmayı özellikle “tek proje için değil, ekip standardı için” tasarladım:

  • Kolonlar ve sınıflandırmalar Dynamo tarafında düzenlenebilir

  • Parametre isim farklılıkları alias mantığıyla yönetilir

Benzer yazılar