Download Sample Files


  • Building Shell.rvt Revit model containing the adaptive component family
  • Adaptive Grasshopper definition that creates the

Open Revit model first, and then open the Grasshopper definition. The building shell should be automatically generated using the existing adaptive component family:


This sample shows how to how to drive Autodesk Revit® adaptive components using Grasshopper and Rhino. The advantage to using this workflow is in the ability to use Rhino’s geometric ability to lay out a rational set of points on complex arbitrary geometry. Grasshopper can also make decisions as condition across the form change. This example uses the Grasshopper PANELING TOOLS plugin to create and filter the facade grid.

Setting Up to Use Adaptive Components

The Grasshopper definition is grabbing the existing adaptive component type (Category: Generic Models Family: Frame-Panel Type: Frame-Panel) and passes that to the AddAdaptiveComponent.ByPoints component:

The input to the AddAdaptiveComponent.ByPoints is a data-tree structure where each branch contains a set of 4 points, ordered correctly:

Using Adaptive Components

The PANELING TOOLS plugin in Grasshopper makes it easier to find points that make up each cell to insert an adaptive component. The Cellulate component in PanelingTools can order the points correctly.

A good strategy for complex trimmed forms normally is to grid out the untrimmed version of the form in Rhino, then use the trimmed version of the form to filter which grid-points are only on the trimmed version of the surface. Use the Trim Grid component to trim away grid points that do not lie on the trimmed version of the surface:

Note that the internal parameters in the adaptive component can be driven by Grasshopper also by setting the parameters on the component instance: