The Ramp Upgrade Project! V2

Hello everyone, I am Ami Nigam and I’ve just joined the Enzyme team as a Computational Designer as of December, 2018.

A little bit about my background, before joining the team, I was pursuing my Masters in Advanced Architecture from IAAC in Barcelona. At IAAC, my main area of focus was computational design, programming & digital fabrication and I did my Masters’ Thesis on Integration of Computational Fluid Dynamics (CFD) in early Design. Below are some images from that and other design and fabrication projects I worked on.

3D Printed Dress with DeFacto Beijing

I’ve also worked for 3 years in Beijing & London as a designer in various architecture and design firms. I am delighted to be a part of this young, forward looking team and hope we can sync our varying expertise and continue our explorations into BIM & Computational Design and their implications on the building industry. 

The Ramp Project

On my first day at the office, I was brought up to speed about the Ramp Upgrade Project that Jorge and Eugenio had been tinkering with. The idea is to turn this into a long term project where we’re going to try to develop a tool that makes it easier for Archicad users to create custom ramp objects using the Grasshopper – Archicad Connection.

Being an experienced Grasshopper user but fairly new to Archicad, I’m still understanding the ins and outs of this connection. What was very clear to me from the first time I used this connection is how powerful this is. This tool makes it easy for Rhino & Grasshopper based designers like myself to integrate the powerful ecosystem of BIM into my workflow.

I’ve spent weeks, possibly months in the past doing things like production drawings, schedules & diagrams that Archicad can do in minutes. This, I always thought, was one of the weakest points in my workflow as a Rhino + GH user. To say that I’m thoroughly impressed would be an understatement.

Now it’s possible to create a complex hybrid workflow with data based algorithmic design possibilities with feedback loops in the Conceptual Design & Design Development phases and leverage the core capabilities of Archicad to seamlessly work through the Schematics, Details and all the way to Tender drawings and Construction Packages. 


 If you’re a Rhino & GH based designer working in architecture and you haven’t yet tried out the Archicad – Grasshopper Live Connection, please try it immediately and prepare to be impressed. You can find more information about this here

While you’re at it, also check out some of the earlier tests developed by Enzyme as early users and testers of this tool here

The Ramp

Coming back to the Ramp Tool, we first tried to familiarize myself with the existing script that you can find more information about here. While this is a robust tool that can be used in a lot of cases, I realized that there are some limitations to this because of the logic. Primarily, the script was only able to work with 1° Curves, the discontinuity parameters of the curve are then used to convert this in to a smooth curve that creates the ramp profile. 

Curve Generator Script

The first thing we did was to write a simple script that would create a variety of curves using different number of control points and different degrees of curvature. This was important because we needed to test the upgraded tool on a variety of curves.

For V2, we’ve kept the input open to the user, you can use any curve and unless there’s physical limitations (which I will get to later in the post), the upgraded Ramp Object will be able to create a ramp that can be sent as a morph object to Archicad. If the input curve is a 1° degree curve (straight polyline), the resulting ramp will have sharp edges and will resemble the input curve. If the input curve is a 3° degree curve, it results in a smoother ramp with curved edges. 


1° Degree curve (polyline)

3° Degree curve

Another upgrade to the script is that it is now a GH User Object, this means that one doesn’t have to know or worry about the ins and outs of the script, you can simply plug in the inputs and the output will be a Brep (Boundary Representation : Grasshopper lingo for a non-mesh solid geometry) containing the ramp with some additional information about the ramp. 

GH User Object
3D + 2D Ramp Tool in Action

Known Bugs & Further Developments

There are a few limitations and bugs with this tool which will be tweaked out in further development and some extra features that we’re trying to implement. Some of these include:

  • Physical Collision Detection / Curve Angles Error : There are obviously some physical & geometrical limitations to ramps. They require a certain turning radius or angle depending on the width and physical collisions. In the V3, we’re trying to implement a check for this and an error message will be given out to the user asking them to review the inputs.
  • Masking Profiles : We tried to implement a ‘Masking’ Profile in V1 of this tool and we’re working further to add this functionality in V3.
  • Complex Profiles : We would like to add a functionality that allows users to add a complex profile that creates the ramp geometry.
  • Ramp from Boundary Lines : In V3, we’re trying to implement another way of making the ramp, this is similar to Masking Profiles where the ramp is generated from the 2 boundary curves instead of the walking line.
  • Right now, the object works with a single curve, using multiple curves causes bugs.
  • 2D Representation of the ramp requires some further development.
Ramp Tool Failure – Curve Angles / Solid Collisions

We Need Your Input!

Apart from these, we’re relying on the feedback of users (like you!) to download & test our object and give us feedback about what you like, what you don’t like, how we could improve the object and if it works / doesn’t work for you. As developers, we’re limited to testing this object mostly on the Windows platform with Rhino 5 & Rhino 6

Rhino + Archicad View : 3D Ramp + 2D Visualization
2D Archicad Visualization using the 2D Ramp Visualization Tool

Our plan is to keep developing this tool over the next few months. We’re going to move from GH Custom object (Cluster) to a C# or Python script with the same functionality. We hope that in the coming weeks, we can release a WIP version of this to the grasshopper community on food4rhino.

Thanks for taking the time to read this and for any further questions, clarifications,  feedback or just a hello, please feel free to email me.

You can find a link to download the package here and test it out. The package consists of 2 Custom User Objects & an example file. Download and save the file in the User Objects Folder in Grasshopper. You will need the latest version of Pufferfish (2-3) by Michael Pryor as I’ve used a couple of his components in the cluster. You can download this awesome plugin here