2025-08-31
12:55 AM
- last edited on
2025-09-02
11:38 PM
by
Laszlo Nagy
Grasshopper and GDL are two powerful tools that bridge the gap between design and BIM. However, learning resources are still quite limited, and often fragmented. In this thread, I will share some of my approaches and workflows so that newcomers can more easily get started.
I use some designs from leading studios as remodeled examples, simply because these projects are too beautiful not to showcase.
1. GRADIENT PANEL
(Designed by Enzyme APD)
This is a stadium designed with triangular panels that shift color in a gradient. The approach can be achieved by creating the panels and gradient in Grasshopper, then bringing them into Archicad as a GDL Object.
The corner anchor points are decomposed into x, y, z coordinates, and the RGB colors are separated into r, g, b values before being passed into GDL as arrays.
Use GDL to group the decomposed values, apply DEFINE MATERIAL for materials, and PLANE for geometry generation. Thickness can be added (if needed) by generating the six plane surfaces of the panel.
Materials and colors can be quickly changed.
You can use this method for mesh models: after running the physics simulation with Kangaroo in Grasshopper, you can simulate the Membrane Structure in Archicad.
Operating system used: Windows
2025-09-02
12:06 PM
- last edited on
2025-09-02
11:41 PM
by
Laszlo Nagy
2. THE XFORM
The building façade was designed by Archiradar, featuring panels that can rotate to open at different angles as the sun moves during the day.
The challenging part of this project is that the panels are placed on a curved and twisted surface. This makes it a very interesting project.
First, create the curved surface using control points, then divide it into panels with UV.
Since the panel corners are not coplanar, you need to optimize them to be coplanar, making it easier to model in GDL.
Since most shape-creating commands in GDL are built on the XY plane, we need to align the panel planes with the XY plane in GDL. XFORM will help us do that.
You just need to deconstruct each panel’s plane in Grasshopper, then send it into GDL for XFORM to process.
The coordinates of the panels in the Global system are also converted into the Local system for each individual panel.
Once the coordinate system is standardized and you have the 4 corner points, you can easily create the geometry in GDL.
Since some panels are trapezoidal, the best way is to use the PRISM command with the converted corner point coordinates.
XFORM is a great command and the key point for smoothly converting models from Grasshopper to Archicad through GDL.
2025-09-02
01:07 PM
- last edited on
2025-09-02
11:51 PM
by
Laszlo Nagy
3. PUT AND GET
This is a case I posted in another topic, but I’m gathering it here and giving a bit of explanation.
You can use PUT and GET to transfer ARRAY values from Grasshopper, which means you can send the entire geometry from Grasshopper into GDL.
Standardize the plane with XFORM, then use PRISM or EXTRUDE to generate the shape.
Use Python to process Grasshopper data so it matches GDL’s format — for example, adding values like 15, -1, or hole parameters such as 900, 4000....
After Python processes the values, send them to GDL, then use a LOOP in GDL with PUT, and combine it with GET to generate the desired geometry.
You can customize different hole shapes of the panels according to the geometry created in Grasshopper.
2025-09-17 10:39 PM
Hi RhinoX,
Great work.....just for learning purposes it would be helpful to set the Display in GH to "Draw Full Names". It's easier for Learners to find the used nodes.
2025-09-18 04:12 AM
great work!
2025-09-24 01:28 PM
Yes, I will remember. Sometimes I forget to display the full name. But please note: this guide is intended for Grasshopper users who are already familiar with GH. Newbies may find it a bit difficult. The main purpose is to show how to approach GDL from Grasshopper.
2025-10-01
04:20 AM
- last edited on
2025-10-02
01:23 AM
by
Laszlo Nagy
4. THE TUBE COMMAND
The TUBE command in GDL is very useful when creating shapes similar to Sweep One Rail, or when generating parametric piping via Grasshopper. The exam project is shown below.
The Sousse and Bardo Memorial designed by George King Architects.
First, create the geometry and form in Grasshopper. This form is generated using Interpolate Curves and the Pipe component in GH.
Next, the method is to simply transfer the curve from GH to GDL in order to create the pipe using the TUBE command. For clarity, I isolated one simple example: the path points are taken by dividing the curve. The higher the number of divisions, the more accurate and smooth the result will be.
The GH scripts and GDL script use the transform plane method (XForm) that I mentioned earlier.
The Python script is used to add the status code and to loop the first three points for the TUBE command. Since TUBE requires two dummy points, we need to replace them.
Here we go. We can create the entire pipeline in Archicad using the DataTree from GH, where each pipe is generated as a separate GDL object
Elevation/ Section View.
4 weeks ago
- last edited
3 weeks ago
by
Laszlo Nagy
5. PROFILES
Just sharing a few of my ways to handle profiles in GDL — nothing special, but they help reduce manual work.
You can transfer any profile curve from Rhino to GDL using a Python script in Grasshopper, as long as the profile consists of lines and arcs only. The script formats the data into GDL code, making it easy to copy directly into your GDL object. The profile curve must be drawn in the XY plane at the Origin point.
si is a status code integer controlling the visual; assign its value before the code, e.g. si = 15.
The rail path curve was drawn manually in Rhino, then processed with a Python script in Grasshopper to divide it and send the planes to GDL via the Live Connection. All components are created within one Stair object.
The rail shape is controlled directly by the curve in Rhino; just move the curve’s control points to change the form.
Python script for generating baluster planes.
Stair GDL Script: Balusters