paramate Grasshopper/Rhino CAD backend instructions

instructions to make a Grasshopper file paramate configurable

overview

The paramate system architecture allows for the use of different CAD backends. One of the options currently available is Grasshopper/Rhino from McNeel. This option enables paramate users to use Grasshopper files as CAD scripts when building paramate configurators.

setting up a Grasshopper file

The paramate system automatically detects and loads Grasshopper controls that are marked with "t3d_" at the beginnings of their nicknames. The rest of a nickname will appear as the name of the control in a configurator. All other controls without the "t3d_" prefix will be ingnored by paramate, but are still part of the script evaluation. Currently paramate supports the following types of Grasshopper controls: number slider, control knob, digit scroller, Boolean toggle and value list. The value list can only be used with a single output value.

To obtain an actual geometry of the model, paramate will select certain components of the Grasshopper script and bake them. In fact, it will bake all components with "t3d_bake" as a nickname. So it is good practice to have a terminal container for the geometry of the model and name it accordingly "t3d_bake". It is possible to have multiple components with the "t3d_bake" attribute. For an illustration see the "PolyRing.ghx" example.

The paramate system uses Grasshopper files in the *.ghx file format. Scripts running on paramate must be saved in this file format. If there are any problems or errors with a Grasshopper file, it will not work on the paramate system.

Model configuration is intended to be an interactive process. This requires for a Grasshopper file to be evaluated in a reasonable amount of time. Evaluation must take no longer then 10 seconds. Otherwise there will be a timeout during a configuration request. A very good evaluation time for an interactive workflow is under one second.

It is possible to define color for an object. For this use the "object bake" component from the LunchBox plugin and name it "t3d_bake" with the bake option enabled. For details see the "SimpleSphere.ghx" example.

security considerations

Script components are very powerful tools in Grasshopper. In a cloud application unfortunately, they are also insecure. Grasshopper components that may pose a security risk are only available upon special request and under special conditions. These components are: VB script, Python script, C# script, read file and file path. If a script without special permissions does contain any of these components, it will be rejected by the paramate system.

plugins

In principle, all plugins available for Grasshopper could be used by the paramate system. Of course, there are licence, security, stability and maintenance issues to consider. Currently, only the LunchBox plugin is supported by the paramate system. Further plugins may be supported upon request.