# Grasshopper Python 3 rehberi: Veri erişimi, tür ipuçları ve çıktılar

Kaynak: https://3dsinifi.com/haber/grasshopper-python-3-rehberi-veri-erisimi-tur-ipuclari-ve · Kategori: İpuçları · Yayın: 8 Kasım 2026

> Rhino’nun geliştirici belgeleri, Grasshopper’da Python 3 veya IronPython 2 Script bileşeniyle çalışmanın temel adımlarını açıklıyor. Bu rehber; parametre, veri erişimi, tür ipucu ve çıktı ayarlarını uygulamalı biçimde ele alıyor.

## Kısaca
- Python 3 Script bileşeni, Grasshopper’da `Maths` sekmesinin `Script` panelinden eklenebiliyor.
- Giriş parametrelerinde Item, List ve Tree erişim seçenekleri bulunuyor.
- Type Hint, giriş verisini betik çalışmadan önce seçilen türe dönüştürebiliyor.
- Kullanılmayan standart çıktı parametresini kapatmak, özellikle çok sayıda bileşenin bulunduğu tanımlarda gereksiz işlemeyi azaltabilir.

Bu rehber, Rhino’nun geliştirici belgelerinde 29 Eylül 2026’da güncellenen Grasshopper Python betikleme açıklamasını temel alıyor. Grasshopper içinde Python 3 ya da IronPython 2 Script bileşeni eklenebiliyor; genel Script bileşeninde de dil menüsünden Python 3 seçilebiliyor. Aşağıdaki adımlar, geometri üretmekten önce bileşenin girişlerini, veri erişimini ve çıktılarını doğru düzenlemeye odaklanıyor. Belgede anlatılan bazı seçeneklerin Rhino sürümüne bağlı olduğu özellikle belirtiliyor; örneğin giriş parametresini zorunlu kılma seçeneği Rhino 8.14 itibarıyla mevcut.

## 1. Script bileşenini ekleyin ve adlandırın

Grasshopper tuvalinde `Maths` sekmesindeki `Script` panelinden Python 3 Script bileşenini ekleyin. Alternatif olarak genel Script bileşenini yerleştirip dil menüsünden Python 3’ü seçin. Bileşene çift tıklamak script editörünü açar; editörün durum çubuğunda kullanılan Python dil sürümü gösterilir.

Script’ler çoğunlukla bileşenin içine gömülüdür, ayrı dosya olarak saklanmaz. Tanımlamada birden fazla betik varsa bileşeni amacını anlatan bir adla yeniden adlandırın. Script sekmesi ve kesme noktaları paneli bu adı yansıtır. Giriş ve çıkış parametrelerini de anlamlı isimlerle düzenleyin; böylece tanımı devralan kişi hangi verinin beklendiğini ve ne üretildiğini daha kolay kavrar.

## 2. İlk betiği giriş ve çıkışlarla kurun

Script bileşeni varsayılan olarak `x` ve `y` girişleri ile `out` ve `a` çıkışlarını getirir. Bu parametreler gerekli değilse kaldırılabilir. Giriş ve çıkış ekleme ya da çıkarma kontrolleri, bileşen üzerinde yeterince yakınlaştırma yapıldığında görünür. Parametrelerin tümünü bir taraftan kaldırmak da geçerlidir; bileşen o kenarı farklı biçimde gösterir.

En basit denemede iki sayıyı toplayıp sonucu `a` çıkışına atayın:

```python
a = x + y
```

Script-Mode’da bileşen, giriş değişkenlerini betik çalışmadan önce tanımlar; çıktı değişkenlerine atanan değerler de bileşen çıkışlarına aktarılır. Bu örnekte `x` ve `y` girişlerine uyumlu değerler bağlanmalıdır. Girişler boşsa değerleri `None` olabilir ve bu iki değeri toplamak çalışma sırasında hata verir. Python’ın tür güvenli bir dil olmaması nedeniyle, uyumsuz işlemler betik çalışırken sorun çıkarabilir.

## 3. Giriş türünü ve veri erişimini seçin

Giriş parametresine sağ tıklayıp Type Hint belirlemek, bileşene gelen verinin betik öncesinde dönüştürülmesini sağlar. Belgede verilen örnekte iki Line değeri `float` tür ipucuyla sayısal değerlere çevrilir; betik bu değerleri toplar. Type Hint seçenekleri hem giriş hem çıkış parametrelerinde kullanılabilir. Bir dönüşümün beklenen sonucu verip vermediğini, bağlanan verilerle kontrol etmek gerekir.

Parametre menüsündeki Parameter Access, betiğin veriyi hangi kapsamda ele alacağını belirler:

| Erişim | Betiğe aktarılan yapı | Ne zaman kullanılır? |
|---|---|---|
| Item | Her veri öğesi ayrı ele alınır | Öğeleri tek tek işlemek için |
| List | Bir daldaki öğeler birlikte ele alınır | Bir dalın listesini topluca işlemek için |
| Tree | Tüm veri yapısı birlikte ele alınır | Dallar ve öğeler üzerinde bütün olarak çalışmak için |

Item erişiminde sayı, Python tarafında tek bir değer olarak; List erişiminde bir dalın değerleri liste olarak görünür. Tree erişiminde ise Grasshopper veri ağacına erişilir. Tür ipucu, genel DataTree yapısındaki eleman türünü de belirlemeye yardımcı olabilir. Erişim biçimini seçmeden önce betiğin tek bir öğe mi, bir liste mi, yoksa tüm ağacı mı işleyeceği netleştirilmelidir.

## 4. Çıktıları ve giriş gereksinimlerini yönetin

`out` parametresi, betikteki `print()` çağrılarının ürettiği metni yakalar. Varsayılan davranışta her satır ayrı bir çıktı öğesine dönüşür. `Avoid Grafting Output Lines` seçeneği etkinleştirildiğinde yazdırılan satırlar tek bir öğe olarak aktarılır. Betik konsola bir şey yazmıyorsa, bileşenin bağlam menüsündeki `Standard Output/Error Parameter` seçeneğiyle `out` parametresi kapatılabilir.

Kullanılmayan `out` parametresini kapatmak, bileşenin yazdırılan metni yakalayıp işlemesini engeller. Belgeler, tek bir bileşendeki kazancın küçük olabileceğini; çok sayıda bileşenin binlerce kez çalıştığı büyük Grasshopper tanımlarında ise bu düzenlemenin daha anlamlı olabileceğini belirtiyor.

Script girişleri başlangıçta isteğe bağlıdır. Girişe mutlaka veri sağlanması gerekiyorsa, giriş parametresinin sağ tık menüsündeki `Required` seçeneği kullanılabilir. Resmî belgede bu seçeneğin Rhino 8.14’ten itibaren bulunduğu belirtiliyor. Özellikle betiği yayımlamadan önce zorunlu girdileri işaretlemek, eksik veriyle çalıştırma riskini azaltır.

## Mimarlık ve görselleştirme iş akışında kullanım

Mimarlar, iç mimarlar ve görselleştirme ekipleri için bu ayarlar, tekrarlanan modelleme adımlarını daha anlaşılır bir Grasshopper tanımına dönüştürmeye yardımcı olur. Örneğin, bir betiğin hangi veriyi beklediğini parametre adlarıyla belirtmek ve giriş türünü tanımlamak, ekip içinde tanımı devretmeyi kolaylaştırır. Item, List veya Tree seçimi de işlemin tekil öğelere mi yoksa bir veri grubuna mı uygulanacağını belirler.

Daha karmaşık geometriler gerektiğinde bu rehber tek başına yeterli değildir: kaynak, Rhino veya Grasshopper API’lerini kapsam dışı bırakıyor ve bu konular için ayrı belgelere yönlendiriyor. Bu nedenle önce basit bir betik ve küçük bir veri kümesiyle akışı doğrulayın; ardından gerçek tanıma geçin. İş istasyonu ya da lisans gereksinimleri hakkında bu kaynaklarda bilgi verilmediğinden, burada ek bir donanım veya maliyet önerisi sunulmuyor.

## Sık yapılan hatalar

- Boş girişleri gözden kaçırıp `None` değerleri üzerinde işlem yapmak: girişlerin bağlı ve beklenen türde olduğu kontrol edilmelidir.
- Parametre erişimini betiğin veri ihtiyacına göre seçmemek: Item, List ve Tree farklı veri yapıları sağlar.
- Kullanılmayan `out` parametresini açık bırakmak: `print()` çıktısı gerekmiyorsa parametre kapatılabilir.
- Parametreleri anlaşılır adlandırmamak: özellikle paylaşılan tanımlarda giriş ve çıkışların amacını belirsizleştirir.

## Pro ipucu
Betiği yayımlamadan önce gerekli girişleri `Required` olarak işaretleyin; bu seçeneğin Rhino 8.14 itibarıyla bulunduğunu ve eksik girişte çalışmayı önlemek için kullanılabildiğini unutmayın.

## 3dsınıfı yorumu
Bu belgedeki önerilerin Türkiye’deki mimarlık ve görselleştirme ofisleri için asıl değeri, donanımı yükseltmekten çok Grasshopper tanımlarını daha güvenilir ve devredilebilir hâle getirmesinde. Anlamlı parametre adları, doğru veri erişimi ve gerekli girişleri belirlemek; özellikle aynı tanımın farklı ekip üyelerince kullanıldığı işlerde zaman kazandırabilir.

`out` parametresini kapatmanın etkisi tek bileşende sınırlı kalabilir; ancak çok sayıda bileşenin yoğun biçimde çalıştığı tanımlarda gereksiz işlemeyi azaltma potansiyeli var. Değişiklikleri gerçek iş akışında denemek ve Rhino sürümüne bağlı seçenekleri doğrulamak önemli. Kaynaklarda donanım, fiyat veya lisans bilgisi bulunmadığından bu başlıklarda karar vermek için ek resmî belge gerekir.

## Kaynaklar
- [developer.rhino3d.com](https://developer.rhino3d.com/guides/scripting/scripting-gh-python/) (özet)

_Yapay zekâ ile yazıldı, kaynaklarla doğrulandı. © 3dsınıfı_
