cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

The 2025 Technology Preview Program is now live. Join today!

Parametric design
About Rhino & Grasshopper and PARAM-O.

Coding the Form: From Grasshopper to GDL

RhinoX
Booster

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



RhinoX_0-1756594436117.png

(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.

RhinoX_0-1756808162353.png

 

RhinoX_1-1756594436119.png

 

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.

 

RhinoX_2-1756594436121.png

 

 

RhinoX_3-1756594436121.png

 

 

RhinoX_4-1756594436122.png

RhinoX_0-1756594654836.png

 

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.

RhinoX_0-1756595047670.png

Materials and colors can be quickly changed.

RhinoX_0-1756806972014.png

 

RhinoX_1-1756807003943.png

 

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

2 REPLIES 2
RhinoX
Booster

2. THE XFORM

RhinoX_0-1756807252202.png

 

RhinoX_1-1756807277542.png

 

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.

 

RhinoX_2-1756807330794.png

 

RhinoX_3-1756807348258.png

 

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.

 

RhinoX_4-1756807385179.png

 

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.

 

RhinoX_5-1756807427965.png

 

 

RhinoX_6-1756807490814.png

 

RhinoX_7-1756807515479.png

 

RhinoX_8-1756807533797.png

 

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.

 

 

 

 

 

 

 

 

 

 

RhinoX
Booster

3. PUT AND GET

 

RhinoX_0-1756810970329.png

 

RhinoX_1-1756810994566.png

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.

 

RhinoX_2-1756811046550.png

 

RhinoX_3-1756811061051.png

 

RhinoX_4-1756811131347.png

 

RhinoX_5-1756811144347.png

 

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.

 

RhinoX_6-1756811193551.png

 

RhinoX_7-1756811205781.png

 

You can customize different hole shapes of the panels according to the geometry created in Grasshopper.

Setup info provided by author