Kurz gesagt
- Die Python-3-Script-Komponente lässt sich in Grasshopper über `Maths` > `Script` hinzufügen.
- Für Eingabeparameter stehen die Zugriffsmöglichkeiten Item, List und Tree zur Verfügung.
- Mit einem Type Hint lassen sich Eingabedaten vor der Ausführung des Scripts in den ausgewählten Typ konvertieren.
- Das Deaktivieren des ungenutzten Standard-Ausgabeparameters kann insbesondere in Definitionen mit vielen Komponenten unnötige Verarbeitung reduzieren.
Dieser Leitfaden stützt sich auf die Erläuterungen zum Python-Scripting in Grasshopper in der Rhino-Entwicklerdokumentation, die am 29. September 2026 aktualisiert wurden. In Grasshopper lässt sich eine Python-3- oder IronPython-2-Script-Komponente hinzufügen; bei der allgemeinen Script-Komponente kann Python 3 auch über das Sprachmenü ausgewählt werden. Die folgenden Schritte konzentrieren sich darauf, Eingaben, Datenzugriff und Ausgaben der Komponente richtig einzurichten, bevor Geometrie erzeugt wird. Die Dokumentation weist ausdrücklich darauf hin, dass manche der beschriebenen Optionen von der Rhino-Version abhängen: Die Möglichkeit, einen Eingabeparameter als erforderlich festzulegen, ist beispielsweise ab Rhino 8.14 verfügbar.
1. Script-Komponente hinzufügen und benennen
Fügen Sie die Python-3-Script-Komponente über Script im Tab Maths auf der Grasshopper-Arbeitsfläche hinzu. Alternativ können Sie die allgemeine Script-Komponente platzieren und im Sprachmenü Python 3 auswählen. Ein Doppelklick auf die Komponente öffnet den Script-Editor; in dessen Statusleiste wird die verwendete Python-Version angezeigt.
Scripts sind in der Regel in die Komponente eingebettet und werden nicht als separate Dateien gespeichert. Wenn eine Definition mehrere Scripts enthält, benennen Sie die Komponente nach ihrem Zweck. Der Script-Tab und das Breakpoints-Panel übernehmen diesen Namen. Vergeben Sie auch für Ein- und Ausgabeparameter aussagekräftige Bezeichnungen. So können andere, die die Definition übernehmen, leichter erkennen, welche Daten erwartet und welche Ergebnisse erzeugt werden.
2. Das erste Script mit Ein- und Ausgaben erstellen
Die Script-Komponente enthält standardmäßig die Eingänge x und y sowie die Ausgänge out und a. Nicht benötigte Parameter lassen sich entfernen. Die Steuerelemente zum Hinzufügen oder Entfernen von Ein- und Ausgängen erscheinen, wenn Sie ausreichend weit in die Komponente hineinzoomen. Sie können auch alle Parameter auf einer Seite entfernen; die Komponente stellt diese Seite dann anders dar.
Für einen einfachen Test addieren Sie zwei Zahlen und weisen das Ergebnis dem Ausgang a zu:
a = x + yIm Script-Mode definiert die Komponente vor der Ausführung des Scripts die Eingabevariablen. Den Ausgabevariablen zugewiesene Werte werden anschließend an die Komponentenausgänge weitergegeben. In diesem Beispiel müssen passende Werte an die Eingänge x und y angeschlossen werden. Sind die Eingänge leer, können ihre Werte None sein; die Addition dieser beiden Werte führt während der Ausführung zu einem Fehler. Da Python keine typsichere Sprache ist, können inkompatible Operationen zur Laufzeit Probleme verursachen.
3. Eingabetyp und Datenzugriff auswählen
Wenn Sie per Rechtsklick auf einen Eingabeparameter einen Type Hint festlegen, werden die eingehenden Daten vor dem Script konvertiert. Im Beispiel der Dokumentation werden zwei Line-Werte mit dem Type Hint float in Zahlen umgewandelt; das Script addiert diese Werte. Type Hints lassen sich sowohl für Ein- als auch für Ausgabeparameter verwenden. Prüfen Sie anhand der verbundenen Daten, ob die Konvertierung das erwartete Ergebnis liefert.
Parameter Access im Parametermenü legt fest, in welchem Umfang das Script die Daten verarbeitet:
| Zugriff | An das Script übergebene Struktur | Wann verwenden? |
|---|---|---|
| Item | Jedes Datenelement wird einzeln verarbeitet | Für die Verarbeitung einzelner Elemente |
| List | Die Elemente eines Branches werden gemeinsam verarbeitet | Für die gemeinsame Verarbeitung der Liste eines Branches |
| Tree | Die gesamte Datenstruktur wird gemeinsam verarbeitet | Für die Verarbeitung von Branches und Elementen als Ganzes |
Bei Item-Zugriff erscheint eine Zahl auf Python-Seite als einzelner Wert; beim List-Zugriff werden die Werte eines Branches als Liste übergeben. Tree-Zugriff ermöglicht den Zugriff auf den Grasshopper-Datenbaum. Ein Type Hint kann auch dazu beitragen, den Elementtyp in der allgemeinen DataTree-Struktur festzulegen. Klären Sie vor der Wahl des Zugriffstyps, ob das Script ein einzelnes Element, eine Liste oder den gesamten Baum verarbeiten soll.
4. Ausgaben und erforderliche Eingaben verwalten
Der Parameter out fängt Text auf, der durch print()-Aufrufe im Script erzeugt wird. Standardmäßig wird jede Zeile zu einem eigenen Ausgabeelement. Ist Avoid Grafting Output Lines aktiviert, werden die ausgegebenen Zeilen als ein einzelnes Element weitergegeben. Wenn das Script nichts auf der Konsole ausgibt, lässt sich der Parameter out über Standard Output/Error Parameter im Kontextmenü der Komponente deaktivieren.
Durch Deaktivieren des ungenutzten Parameters out wird verhindert, dass die Komponente ausgegebenen Text erfasst und verarbeitet. Laut Dokumentation ist der Vorteil bei einer einzelnen Komponente möglicherweise gering. In großen Grasshopper-Definitionen, in denen viele Komponenten tausende Male ausgeführt werden, kann diese Anpassung jedoch sinnvoller sein.
Script-Eingaben sind anfangs optional. Wenn eine Eingabe zwingend erforderlich ist, können Sie im Rechtsklickmenü des Eingabeparameters die Option Required verwenden. Die offizielle Dokumentation weist darauf hin, dass diese Option ab Rhino 8.14 verfügbar ist. Markieren Sie erforderliche Eingaben insbesondere vor der Veröffentlichung des Scripts, um das Risiko einer Ausführung mit fehlenden Daten zu verringern.
Einsatz in Arbeitsabläufen für Architektur und Visualisierung
Für Architektinnen und Architekten, Innenarchitektinnen und Innenarchitekten sowie Visualisierungsteams helfen diese Einstellungen dabei, wiederkehrende Modellierungsschritte in eine übersichtlichere Grasshopper-Definition zu überführen. Wenn beispielsweise Parameternamen angeben, welche Daten ein Script erwartet, und der Eingabetyp festgelegt ist, lässt sich die Definition leichter im Team weitergeben. Die Wahl von Item, List oder Tree bestimmt außerdem, ob eine Operation auf einzelne Elemente oder eine Datengruppe angewendet wird.
Bei komplexeren Geometrien reicht dieser Leitfaden allein nicht aus: Die Quelle behandelt weder die Rhino- noch die Grasshopper-APIs und verweist dafür auf separate Dokumentation. Prüfen Sie daher zunächst den Ablauf mit einem einfachen Script und einem kleinen Datensatz, bevor Sie ihn in einer echten Definition verwenden. Da diese Quellen keine Angaben zu Workstation- oder Lizenzanforderungen enthalten, werden hier keine zusätzlichen Empfehlungen zu Hardware oder Kosten gegeben.
Häufige Fehler
Leere Eingaben übersehen und mit
None-Werten arbeiten: Prüfen Sie, ob die Eingaben verbunden sind und den erwarteten Typ haben.Den Parameterzugriff nicht passend zum Datenbedarf des Scripts auswählen: Item, List und Tree stellen unterschiedliche Datenstrukturen bereit.
Den ungenutzten Parameter
outaktiviert lassen: Wenn keineprint()-Ausgabe benötigt wird, kann der Parameter deaktiviert werden.Parameter nicht aussagekräftig benennen: Gerade in gemeinsam genutzten Definitionen macht das den Zweck von Ein- und Ausgängen unklar.
Quellen
1 QuelleQuelltexte werden nicht neu veröffentlicht; kurze Zitate sind gekennzeichnet, der Rest ist eigene Zusammenfassung und Einordnung.
Der wichtigste Nutzen dieser Empfehlungen für Architektur- und Visualisierungsbüros in der Türkei liegt darin, Grasshopper-Definitionen zuverlässiger und leichter übertragbar zu machen – nicht darin, die Hardware aufzurüsten. Aussagekräftige Parameternamen, der richtige Datenzugriff und die Kennzeichnung erforderlicher Eingaben können Zeit sparen, insbesondere wenn dieselbe Definition von verschiedenen Teammitgliedern genutzt wird.
Bei einer einzelnen Komponente kann das Deaktivieren des Parameters `out` nur einen begrenzten Effekt haben. In Definitionen mit vielen intensiv ausgeführten Komponenten kann es jedoch unnötige Verarbeitung reduzieren. Wichtig ist, Änderungen im tatsächlichen Arbeitsablauf zu testen und Optionen zu prüfen, die von der Rhino-Version abhängen. Da die Quellen keine Informationen zu Hardware, Preisen oder Lizenzen enthalten, sind für Entscheidungen zu diesen Themen zusätzliche offizielle Dokumente erforderlich.
Häufige Fragen
Wie fügt man in Grasshopper eine Python-3-Script-Komponente hinzu?
Die Python-3-Script-Komponente lässt sich in Grasshopper über `Script` im Tab `Maths` hinzufügen. Bei Verwendung der allgemeinen Script-Komponente können Sie Python 3 im Sprachmenü auswählen.
Was bedeuten Item-, List- und Tree-Zugriff in Grasshopper Python?
Item verarbeitet einzelne Datenelemente, List die Elemente eines Branches gemeinsam und Tree die gesamte Datenstruktur. Die Auswahl richtet sich danach, wie das Script die Daten verarbeiten soll.
Wofür ist der Parameter out in der Grasshopper-Python-Komponente gedacht?
`out` fängt Inhalte auf, die das Script mit `print()` ausgibt. Wenn keine Konsolenausgabe benötigt wird, lässt sich der Parameter im Kontextmenü der Komponente deaktivieren.



