pyRevit ile Revit'e Python Butonu Eklemek: Başlangıç Rehberi
pyRevit, Revit'e kendi araçlarınızı bir Python betiği ve bir klasör yapısıyla eklemenizi sağlar. Kurulumdan ilk butona, ekibe dağıtımdan güvenli kullanıma kadar yolu öğrenin.
Bir bakışta
- pyRevit, otomasyon fikrini hızla araca çeviren bir araç takımıdır. Betiği yazar, Revit şeridinde bir buton olarak çalıştırırsınız; her seferinde eklenti derlemeniz gerekmez.
- Bir buton, klasör yapısıyla tanımlanır. Eklenti, sekme, panel ve buton klasörleri iç içe durur; butonun içinde çalışacak betik bulunur.
- Python bilgisi ve Revit nesne modeli ayrı öğrenilir. pyRevit sarmalar ve kolaylaştırır; hangi elemana nasıl ulaşılacağını Revit API belirler.
- Ekibe dağıtım, en büyük kolaylıklardan biridir. Araçlar ortak bir klasörden ya da depodan çekilerek herkese aynı sürümle ulaşabilir.
- Model değiştiren her betik, önce kopyada denenir. Hızlı yazılan araç, hızlı hasar da verebilir.
pyRevit nedir, ne işe yarar?
pyRevit, Revit içinde otomasyon ve eklenti fikirlerini hızla denemek için geliştirilmiş bir araç takımıdır. Projenin kendi tanıtımına göre, Revit için Python (IronPython ya da CPython), C# veya VB.Net ile eklentiler yazmaya olanak tanır; ayrıca hazır araçlarla birlikte gelir. Kurulduktan sonra Revit'te yeni bir pyRevit sekmesi görünür.
Pratikte pyRevit, temel olarak şu ihtiyaçlara cevap verir. Birincisi, küçük bir tekrar eden işi, örneğin seçili elemanları saymak ya da bir parametreyi toplu doldurmak, birkaç satır Python ile bir butona çevirmektir. İkincisi, ekibin ortak araçlarını tek bir yerde toplayıp dağıtmaktır. Derleme, imzalama ve kurulum paketi hazırlama gibi geleneksel eklenti yükü bu yolla azalır.
Her araca olduğu gibi pyRevit'e de gerçekçi bir bakış gerekir. Bu bir görsel programlama aracı değil, kod yazma aracıdır; Dynamo grafikleri bile pyRevit üzerinden butona bağlanabilir, ama temel kazanım Python betiğidir. Ayrıca kurulum ve güncelleme, kurumun bilgi işlem politikasına bağlıdır; bazı kurumlarda açık kaynaklı bir aracı kurmak için onay gerekir.
Kurulum ve ilk kontrol
Kurulum için projenin resmî yönergesi izlenir: pyRevit indirilip kurulur, Revit açıldığında pyRevit sekmesi görünüyorsa kurulum tamamlanmıştır. Sürüm ve kurulum yöntemi zamanla değiştiği için ayrıntıları kurulum anında resmî belgeden okumak gerekir.
Kurulumdan sonra önce hazır araçları gezin. Sekmedeki araçlar, hem işe yarar bir başlangıç sunar hem de iyi yazılmış butonların nasıl çalıştığını gösterir. Bu araçların betikleri açıktır; bir butonun klasörüne bakıp betiğini okumak, öğrenmenin en hızlı yollarından biridir.
Kurumsal bilgisayarlarda şu noktalara dikkat edin: kurulum yetkisi ve Revit sürümleriyle uyum. Aynı makinede birden çok Revit sürümü varsa her biri için aracın çalıştığı doğrulanmalıdır. Sorun yaşanırsa önce araç takımının kendi belgelerine ve topluluk kanallarına bakılır.
Bir butonun anatomisi
pyRevit'te araçlar klasör yapısıyla tanımlanır. En üstte eklenti klasörü bulunur; içinde sekmeler, sekmelerin içinde paneller, panellerin içinde butonlar yer alır. Her klasörün türü, adındaki uzantıyla belirtilir; bu yüzden klasörleri keyfî adlandırmak yerine pyRevit'in adlandırma kurallarına uymak gerekir. Butonun klasöründe çalışacak betik bulunur; isteğe bağlı olarak bir simge ve butonun davranışını anlatan ek dosyalar da eklenir.
Bu yapının güzel yanı, bir butonun kendi kendine yeten bir paket olmasıdır. Klasörü kopyalayıp başka bir eklentiye taşıdığınızda buton da taşınır. Şerit düzeni de klasör düzeninden doğar: panelin sırasını ya da butonun yerini değiştirmek için klasörleri düzenlemek yeterlidir.
Adlandırma ayrıntıları ve desteklenen buton türleri sürüme göre ayrıntı içerir; bu yüzden kendi sürümünüzün belgesini referans alın. Her yeni buton için önce küçük ve zararsız bir betikle yapıyı doğrulamak, sorunları erken yakalamanızı sağlar.
Şeritteki her buton, iç içe klasörlerin son halkasıdır
Bir eklentinin katmanları
- EklentiSekmeleri ve araçları taşıyan en üst klasör.
- Sekme ve panelŞeritteki görünür gruplar.
- ButonKullanıcının tıkladığı komut ve simgesi.
- BetikButona basılınca çalışan Python kodu.
İlk betik: açık dosyanın adını göstermek
En küçük anlamlı örnek, açık Revit dosyasının adını bir iletişim kutusunda göstermektir. Betik, pyRevit'in sunduğu modülleri çağırır, açık belgeye ulaşır ve bir uyarı penceresi açar:
from pyrevit import revit, forms
doc = revit.doc
forms.alert("Open file: " + doc.Title)
Betik kısa ama önemli noktaları gösterir: pyRevit modülünden belgeye erişim, Revit API'nin Document nesnesinin özelliği olan başlık ve kullanıcıya bilgi veren bir pencere. Buradan sonrası aynı kalıbın genişletilmesidir: belgedeki elemanları süzmek, bir parametreyi okumak, bir sonucu pencerede listelemek.
Modeli değiştirecek betikler için işlem (transaction) mantığı gerekir; Revit, model değişikliklerini bir işlem içinde ister. Salt okunur araçlarla başlamak, hem öğrenme hem güvenlik açısından iyi bir sıradır. Veriyi okuyan, sayan, raporlayan araçlar, modele zarar verme riski olmadan çok iş görür.
Öğrenme yolu
pyRevit öğrenmenin sırası, önce kullanmak, sonra yazmak, en sonra paylaşmaktır. Başlangıç aşamasında hazır araçları kullanıp betiklerini okuyun. Sonraki adımda tek bir problemi çözen salt okunur bir buton yapın. Daha sonra kullanıcıdan girdi alan pencereler, seçim ve filtreler ekleyin; bu noktada Revit API'nin eleman toplama ve parametre erişimi mantığını öğrenmeniz gerekir.
İleri aşamada modeli değiştiren araçlar gelir; burada işlem yönetimi, hata yakalama ve geri dönüş planı öne çıkar. Son olarak araçları ekibe dağıtmak, sürüm kontrolü kullanmak ve belgelemek vardır. Bir noktada betiğin sınırlarına ulaşılırsa, daha kapsamlı bir uygulama için C# ile yazılmış bağımsız bir Revit eklentisine geçmek doğal bir adımdır.
Önce kullan, sonra yaz, en son paylaş
pyRevit öğrenme yolu
- BaşlangıçKur ve hazır araçları okuButonların betiklerini inceleyin.
- TemelSalt okunur ilk butonSay, listele, raporla.
- OrtaGirdi ve seçimPencereler, filtreler, parametre okuma.
- İleriModeli değiştiren araçlarİşlem, hata yakalama, geri dönüş.
- DağıtımEkibe sunmakOrtak klasör, sürüm kontrolü, belgeleme.
Ekibe dağıtım ve güvenli kullanım
pyRevit'in en çekici yönlerinden biri, araçları ekibe tek bir kaynaktan sunabilmesidir. Eklenti klasörü ortak bir konumda ya da bir sürüm kontrol deposunda tutulur; herkes aynı sürümü kullanır, güncelleme tek yerden yayılır. Bu, e-posta ile betik gönderme düzeninden çok daha tutarlıdır.
Güvenlik konusunda şu kurallar işe yarar. Başkasının yazdığı betiği çalıştırmadan önce okuyun; modeli silebilir ya da veriyi dışarı gönderebilir. Modeli değiştiren araçları önce kopya dosyada deneyin ve yedek alın. Kurumsal ağda araç paylaşımı için bilgi işlem politikasına uyun. Ayrıca her aracın yanında kısa bir kullanım notu bulundurun; kim yazdı, ne yapar, nelere dokunmaz.
PyRevit ile Dynamo birbirinin rakibi değil tamamlayıcısıdır. Dynamo grafiği görsel bir mantıktır ve kolayca denenir; pyRevit ise grafikleri ve betikleri şeritte tek tuşluk komutlara dönüştüren bir sunum katmanı olarak da kullanılabilir.
Sık yapılan hatalar
En sık görülen hata, klasör adlandırmasını yanlış yapıp butonun görünmemesine neden olmaktır. İkinci hata, ilk betiği hemen modeli değiştirecek biçimde yazmaktır; hata durumunda geri dönüş olmaz. Üçüncüsü, betik içinde sabit dosya yolları kullanmaktır: araç başka bilgisayara taşınınca çalışmaz.
Bir diğer sorun, hata yakalamayı atlamaktır. Beklenmeyen bir durumda Python hata iletisi Revit'te anlaşılmaz görünür; kullanıcıya açıklayıcı bir mesaj vermek araca güveni korur. Son olarak, belgesiz araç dağıtmak, yazarı ayrıldığında kullanılamaz bir araca dönüşür.
Bu beceriyi Mindset programlarında nerede çalışırsınız
Revit'te Dynamo ile Otomasyon Eğitimi, Özel Araç ve Script Geliştirme ile Proje Otomasyonu ve İş Akışları modüllerini içerir; Revit içinde kendi araçlarını yazmak isteyen BIM uzmanları için doğrudan ilgili bir çerçevedir. BIM ve Autodesk Revit Uzmanlaşma Eğitimi ise Revit nesne modelini ve veri yönetimini temel düzeyde kuran bir zemin sağlar.
İlgili Mindset programı
Revit’te Dynamo ile Otomasyon Eğitimi
Sık sorulan sorular
pyRevit kullanmak için Python bilmek gerekir mi?
Hazır araçları kullanmak için gerekmez. Kendi butonunuzu yazmak içinse temel Python ve Revit'in nesne modelini bilmek gerekir. Küçük, salt okunur bir betikle başlamak ve adım adım ilerlemek makul bir yoldur.
pyRevit ile Dynamo arasındaki fark nedir?
Dynamo görsel bir programlama ortamıdır: düğümleri bağlayarak mantık kurulur. pyRevit ise kod yazarak şeritte buton oluşturmayı sağlar. İkisi birlikte kullanılabilir; örneğin bir Dynamo grafiği pyRevit butonuna bağlanabilir.
pyRevit ile yazılan bir araç, C# ile yazılmış bir eklentinin yerini tutar mı?
Küçük ve orta ölçekli otomasyonlarda büyük ölçüde evet. Kapsamlı, performansa duyarlı ya da ticari dağıtım gerektiren uygulamalar için derlenmiş bir eklenti daha uygundur. Karar, aracın büyüklüğüne ve dağıtım ihtiyacına bağlıdır.
Başkasının pyRevit aracını güvenle kullanabilir miyim?
Betiği okuyup anlamadan çalıştırmayın. Güvendiğiniz kaynaktan gelen aracı bile önce kopya dosyada, yedek aldıktan sonra deneyin. Kurumsal ortamda bilgi işlem onayı da gerekebilir.
Butonum neden şeritte görünmüyor?
En sık nedenler, klasör adlandırmasının pyRevit kurallarına uymaması ve eklentinin yüklenmemiş olmasıdır. Ekleme sonrası pyRevit'i yeniden yükleyin ve klasör türlerinin doğru yazıldığını resmî belgeden kontrol edin.