Create parametric BIM geometry with ARCHICAD and Rhino3D Grasshopper. Learn how to use Graphisoft’s free plugin to make your favorite CAAD tools work together.
This article is is all about installing, connecting and understanding the workflow. In other words: the framework of your ARCHICAD-Grasshopper collaboration.
That being said, it is not a modeling manual. For constructing parametric BIM models with Rhino3D, Grasshopper and ARCHICAD refer to these resources.
What I will talk about:
- Download + Install
- Start ARCHICAD, Grasshopper and Live Connection
- ARCHICAD Grasshopper Parametric BIM Workflows
- Parameter Input: Settings Component
- Parameter Input: Favorite Component
- Parameter Input: ARCHICAD settings
- File Management
- Installation Troubleshooting
- Resources and Links
This is actually a breakdown of Graphisoft’s User Guide. I highly recommend reading it.
Reminder: In another article I put together some useful learning resources for Rhino3D and Grasshopper. This article is about starting Grasshopper and its basics concepts.
Download + Install <
You download 1 file which installs 2 plugins. 1 for ARCHICAD and 1 for Grasshopper. You’ll find the download link here. On the page scroll down a little bit:
You’ll land here:
It should be obvious what to download here. Mind you, the Grasshopper-ARCHICAD-Live-Connection works only with a valid Rhino3D licence. Minimum requirement is an Evaluation licence:
Run your installation app. The installer will place the connection plugins in the right place. If not, check the next chapter.
For further information, check Graphisoft’s User Guide.
Start ARCHICAD, Grasshopper and Live Connection <
Start ARCHICAD, start Rhino3D. In Rhino3D, start Grasshopper.
Now, your first challenge is how to ram interfaces of two major apps into one screen. (If you have more than one screen, relax and skip this.)
- On Windows 10, press Winkey+Right/Left Arrow. Your prio app window will jump to the left or right, with 50% width. (See here.)
- On Mac OSX: “In the top-left corner of an app window, click and hold the green button, drag the window to the side you want, then release the button. On the other side of the screen, click the second app you want to work with.” (Quote)
In Windows, the result will look like this:
As you see, there’s no Rhino3D window up front. Most of the time I work with Grasshopper and ARCHICAD without having to check with Rhino3D previews. See next chapter for this.
Now to make ARCHICAD and Grasshopper actually work together you’ll have to do something.
In ARCHICAD, choose File – Interoperability – Grasshopper Connection:
You’ll see a small window appear that works as remote control for the connection. First of all you have to click on Start Connection. When the connection is active the wheel starts spinning.
It doesn’t stop spinning as long as the connection is active. So don’t get nervous about it. (I first thought that it was trying to connect forever.)
Now the connection being active, you may of course stop it again: via Break Connection. So that’s pretty straightforward.
Also, the window shows which Grasshopper file (.gh) your ARCHICAD project is connected with. This can only be one file at a time. And it shows only when you’ve also linked your Grasshopper file to your ARCHICAD project. Which has yet to be done.
In Grasshopper, best save your running, new and empty file. This way, it has a name that ARCHICAD can refer to. (It can handle an unsaved file too, but you’ll get just less confused.) Then, from the File menu, choose Connect Document to ARCHICAD:
A window shows up that lists your running Grasshopper files. The one that’s in front is the one that is highlighted and connected:
If you need to connect one of the other files, mark it and press Connect. That simple.
Now, back in ARCHICAD you should see the Grasshopper file name pop up in the connection window:
When you connect another Grasshopper file to ARCHICAD and this new file doesn’t yet show up in ARCHICAD’s control window, break and restart the connection from there. The newly connected Grasshopper file should show up.
Two last things: First, the button Send Changes switches between automatic and manual update. It referes to changes made in ARCHICAD that effect Grasshopper’s definition. (Like in a Favorite definition.) Second, Select in GH allows selecting components in Grasshopper that relate to selected ARCHICAD geometry.
One final issue: Grasshopper’s Display menu allows you to make ARCHICAD objects (GDL objects, that is) show up with real geometry in Rhino3D’s viewports:
For further information, check Graphisoft’s User Guide.
ARCHICAD Grasshopper Parametric BIM Workflows <
Within the app network you’ve set up, Grasshopper plays the main part. It’s the primary place to construct your parametric model. The relation between your three applications works like this:
- Rhino3D or ARCHICAD supply Grasshopper with input geometry.
- In Grasshopper this input geometry is parametrically developed into complex geometry with optional BIM data.
- ARCHICAD receives Grasshopper’s output for BIM model implementation.
So what about input geometry? Let’s assume you want a wall like this:
Let’s also assume the wall isn’t drawn in ARCHICAD but comes into our model as output from Grasshopper. As an ARCHICAD user you know that a wall needs a reference line. This line can be considered the geometry input of the wall. In this case, it’s a curve.
Because you won’t normally draw the curve in Grasshopper you have 2 options:
- Draw the curve in Rhino.
- Draw the curve in ARCHICAD.
Let’s say, since you love Rhino3D’s NURBS abilities, you draw the curve here:
In Grasshopper, you pick a Curve input parameter (Params – Geometry) …
… right-click and choose Set one Curve. You are prompted to select the curve drawn in Rhino. After selecting it the Rhino curve has become the reference of Grasshopper’s Curve component. As a result, the component icon has changed from orange to grey.
Now you pick an ARCHICAD Wall component (ARCHICAD – Design) and connect it to the Curve input:
As a result, you see a wall pop up in ARCHICAD and also in Rhino. (If nothing happens in AC, check the connection status. For reference see here.)
This is ARCHICAD … and this is Rhino3D:
To sum it up:
- The wall’s reference line was drawn in Rhino3D.
- The line was referenced into Grasshopper.
- The output wall shows up in ARCHICAD (coordinates relate to Rhino).
- A preview is shown in Rhino3D.
Now, let’s try it the other way round. Again, as a result we want to have a curved wall in ARCHICAD. But this time, we’ll draw the reference line in ARCHICAD:
Tool choice is crucial – this curve was drawn using the Spline tool.
In Grasshopper, pick an ARCHICAD Spline input Parameter:
(In ARCHICAD, if you use another 2D tool to draw the curved line (for example Polyline), then in Grasshopper you have to pick the 2D Curve input Parameter.)
Now you proceed just like in your first approach. Right-click to Set one Spline in ARCHICAD as reference:
Now select the Spline in ARCHICAD’s Floor Plan window. The component turns grey as a result. (If not, check the connection status.).
Back in Grasshopper, connect an ARCHICAD Wall component to the Spline parameter:
The result is the same as before. The making is different though:
- The wall’s reference line is drawn in ARCHICAD.
- The line is referenced into Grasshopper.
- The output wall is placed in ARCHICAD (coordinates relate to Rhino).
- A preview is shown in Rhino3D.
As you see: Whether input comes from Rhino or ARCHICAD, the result is the same. So is the effort. Therefore, which strategy should you follow? Because, if you can draw your input geometry in ARCHICAD, you might consider to skip Rhino completely. But it’s not that simple.
ARCHICAD and Grasshopper combined create parametric BIM. With this in mind, even in this little example a major logical difference can be observed:
- A Rhino NURBS curve is itself parametric – it can be changed by parameters in Grasshopper that again depend on other parameters … and so on.
- An ARCHICAD Spline is not parametric – it can be changed by mouse-dragging spline points.
- As the wall can change its curvature according to the reference curve, with Rhino’s NURBS curve it will be more parametric than with ARCHICAD’s Spline.
However, this does not mean that the ARCHICAD-Spline-approach is wrong. Or less elegant than the Rhino-NURBS-strategy. Keep in mind: Designing truly parametrically responsive geometry can become pretty complex in Grasshopper. And that is not always necessary.
Bottom line: Figure out in advance the degree of parametric control you want to have over your building parts. And adapt your workflow accordingly.
For further information, check Graphisoft’s User Guide.
Parameter Input: Settings Component <
In a BIM model, changeability of geometry is crucial. Why? You can construct building parts in a second. (Well, most of them.) But then, you spend hours to change them – over and over again – in the process of planning.
In your Grasshopper-ARCHICAD carousel you have some distinct choices for parameter assignment. And mind you, I am only talking about the ARCHICAD model output:
- In Grasshopper, use a Settings component to connect to a Design component (described in this chapter).
- In Grasshopper, use a Favorite component to connect to a Design component (see next chapter).
- In ARCHICAD, unlock Grasshopper-made BIM elements and apply conventional ARCHICAD settings (see yet another chapter).
Again, more than one way to do it. However, as with the building strategy above, there are pros and cons for each of them. Let’s look at the first option.
In Grasshopper, pick the Wall Settings component:
Connect it to the Wall component Settings input:
You see: That’s a big one. You can tell by the input names what parameters Grasshopper allows to set for an ARCHICAD wall. (By the way, to see complete names in component display, check Display – Draw Full Names.)
In my example I connected Number Sliders to the most obvious inputs. ARCHICAD responds like this:
Grasshopper’s Settings components are available for every Design component:
In this article I can’t get into too much detail. However, I want you to show one important BIM aspect that’s served in Grasshopper. It’s the Property input:
Connect one to Property Settings input:
Via right-click Select Classifications and Properties:
Here you may define Classification-related Properties for your Grasshopper-made BIM element. As soon as you have done this, Grasshopper generates the according inputs in its Property Settings component:
Since ARCHICAD’s classification and property scheme is not part of this article I suggest you refer to Graphisoft Help pages if needed.
It should be obvious why using the Settings component makes sense: Each Settings input can be fed by other parameters which makes your BIM element truly parametric.
Because, again: Using ARCHICAD and Grasshopper together is meant to create a Parametric BIM model.
This does not mean, however, that you have to use Settings all the time (see here and here.)
For further information about the connection plugin check Graphisoft’s User Guide.
Parameter Input: Favorite Component <
Instead of generating object settings in Grasshopper (see above) you may instead use ARCHICAD’s Favorite feature inside Grasshopper. Pick a Favorite component:
As you see, the Favorite is an ARCHICAD Input component. Now plug it into the Wall component’s Wall Settings input:
When you click inside the Favorite component’s white space a list will pop up showing available Favorites. In the example above it’s Wall Favorites, which is what we want here. Be aware that Grasshopper may also present you with another list. So always be sure to choose the right list before picking a Favorite:
Now, pick a Favorite, and your wall will update accordingly:
Which Favorites can you choose in Grasshopper? The ones that are stored with your running and connected ARCHICAD project. So in order to define a specific kind of wall, just define a custom Favorite in ARCHICAD. This way, you can use it in Grasshopper via a Favorite component as shown above.
When you do this, keep in mind that you’ll have to Send Changes to Grasshopper. Otherwise it won’t know about the new Favorite you just composed:
I won’t show you how to define and handle Favorites in ARCHICAD – check Graphisoft Help pages if necessary.
Using ARCHICAD Favorites to define a Grasshopper-made BIM element is quite another approach than using the Settings component:
- It’s easier, because you define your settings in good old ARCHICAD.
- It’s less parametric because you can’t connect parameters to other parameters as is possible with Grasshopper’s Settings component.
Design your own Parametric BIM strategy with ARCHICAD and Grasshopper. Each time, choose whatever is appropriate.
For further information, check Graphisoft’s User Guide.
Parameter Input: ARCHICAD Settings <
A third option to change a BIM element’s settings is to use ARCHICAD’s element settings. This is a bit tricky, though.
First of all be sure to interrupt the live connection between Grasshopper and ARCHICAD. But not by Breaking the Connection. Pick a generic Grasshopper component that can be used as an On/Off switch, the Boolean Toggle:
Now, connect this to the Wall component’s Synchronize input. Be sure it’s set to False. That way, Grasshopper does not send any updates to ARCHICAD:
The Synchronize input is actually designed for this Boolean Toggle. A feature that allows you to keep control over the model update process that you should use frequently. (You get True by double-clicking False.)
Now that Grasshopper has already produced the wall (in my example) be sure to set the Toggle to False. Then select your BIM element in ARCHICAD:
By default, Grasshopper-generated geometry is locked in ARCHICAD so you can’t change anything. But you may unlock it:
Apply changes as you like, for example give it more Height:
The model will change accordingly.
Now back in Grasshopper, when you switch Boolean on, you’ll see that your ARCHICAD change remains.
In general, changing Grasshopper-generated BIM geometry in ARCHICAD itself is pretty straightforward.
Keep in mind that as long as ARCHICAD geometry is linked to Grasshopper this way, Grasshopper settings will override ARCHICAD settings. Let’s say, you connect a Settings component to the Wall component and change the Wall Height here … :
… the ARCHICAD wall will take on this new Grasshopper value as soon as you synchronize. Ignoring the changes you made in ARCHICAD before.
For Grasshopper-generated BIM geometry, changing it via ARCHICAD settings is the most familiar way. But there are drawbacks:
- Even without working with Grasshopper at all, for a well-structured BIM model you should use favorites in ARCHICAD as much as possible to avoid inconsistencies.
- ARCHICAD settings are not parametrically controllable.
Find your own way of doing Parametric BIM with ARCHICAD and Grasshopper. Spend some time on planning your data structure.
For further information, check Graphisoft’s User Guide.
File Management <
For Grasshopper-controlled geometry in ARCHICAD, can you make it standalone? Yes, of course.
When your BIM geometry doesn’t need to be connected to Grasshopper anymore: Set it free.
Be sure to unlock it. Then, choose Edit – Move – Drag a Copy … :
… and move the geometry off its original position. This duplicate of your geometry is now outside Grasshopper’s control.
Now, you may keep your original Grasshopper-made geometry to develop another version, or delete it altogether.
Another topic concerning files: You can run as many Grasshopper files as you want. Each of them can supply one running ARCHICAD project with geometry. In other words: ARCHICAD can collect Grasshopper data from multiple files. However, no matter how many Grasshopper files are running, you can only connect one at a time to ARCHICAD. Just check the according control window in Grasshopper … :
… and ARCHICAD:
One last thing concerning file management between Grasshopper and ARCHICAD. When you see something like this … :
.. it means that this Grasshopper file is not connected to an ARCHICAD project.
For further information, check Graphisoft’s User Guide.
Installation Troubleshooting <
Your installation may not work – Graphisoft’s Forum pages are full of related posts. Here is the solution.
But first of all: Where does the Installer store the plugins anyway? It will drop the connection plugin for ARCHICAD into Graphisoft Add-Ons folder:
… and the connection plugin for Grasshopper (Assembly) it will store here:
So be sure to check out these two locations when you encounter problems. Now, in case the ARCHICAD-Grasshopper-connection doesn’t work, most probably the installation went wrong.
There may be 2 reasons:
- The plugin files are already installed in older versions of ARCHICAD or Grasshopper. In this case, search for theses files (see above) and delete them.
- The plugin files have not been installed before, but you have more than one ARCHICAD or Rhino3D installed on your system (e.g. ARCHICAD INT and GER). Again, search for the files and move or copy them to their correct locations.
This being said, I was not able to install the connection plugin on my MacBook. The error message went like an older installation was in the way. So I removed virtually every piece of software that might have been related to this older installation. (I did a decent cleanup of my HD by doing this.) I even deleted my virtual Windows machine with ARCHICAD on it and more. (Which again was not that bad because working with CAAD on a virtual OS is not a good idea anyway.)
Nothing worked. Until I found this article on Graphisoft’s Help Center pages. The solution was to run a Terminal command, and it did the job.
One last notice on troubleshooting anything that’s related to Grasshopper-ARCHICAD stuff. Graphisoft offers a 80-page Help File:
I would highly recommend reading it so you don’t lose time with any misconceptions about this kind of workflow.
For further information, check Graphisoft’s User Guide.
Resources and Links <
For a change, you might want to watch some videos on this topic. For example, here you can see how Parametric BIM works for ARCHICAD’s Curtain Wall tool.
The same YouTube channel provides some more basic tutorial videos here.
I myself have written another article on how to start in Grasshopper here and here. I will write many more articles about building actual models with Grasshopper and ARCHICAD and put them here, too.
Once more, a reminder that Graphisoft itself has produced a User Guide for this whole stuff.
And again, if you have this specific Mac-Installer problem I had, there is help here.
Roundup <
The ARCHICAD-Grasshopper Connection empowers you to do truly Parametric BIM. ARCHICAD’s BIM authoring capabilities meet Grasshopper’s powerful Parametricism.
Along with growing potential the workflows starts getting more complex, too. However, I hope I could shed some light on the basic framework of this new tool collaboration.
Now, pick a design task, and start researching!
© 2018 / Horst Sondermann / All Rights reserved
Leave a Reply
You must be logged in to post a comment.