Clipping Planes Come to Grasshopper 1
We’re excited to introduce Clipping Plane support in Grasshopper 1, building on Rhino 8’s powerful SectionTools.
With these new components, Grasshopper users can now:
-
Create and edit section/clipping planes directly from the Grasshopper canvas.
-
Style and manage section outputs with customizable section styles.
-
Automate outputs using Grasshopper equivalents of Rhino commands like
ExtractClippingDrawings,ExtractClippingSections,ExtractClippingSlices, andSaveClippingSectionView.
This integration makes it possible to drive sections parametrically, linking them directly to geometry in your definition. Whether you’re streamlining documentation, enhancing visualizations, or exploring design alternatives, sectioning is now a dynamic part of your Grasshopper workflow.
Grasshopper is steadily expanding the number of Rhino data types it can work with — and sections are a major addition for both design exploration and professional documentation.
How does it work?
Let’s dive in for a closer look at this new feature set. You’ll find all the new clipping plane components under the Rhino tab in the Drafting subcategory.
The first step is to create a clipping plane from scratch. To do this, add a Model Clipping Plane component to the canvas.
This component has several input parameters:
- Clipping Plane – Accepts an existing clipping plane as input and works like a pass-through component. This lets you inspect attributes of an existing clipping plane. Since we’re creating a new one, we’ll leave this input empty.
- Plane – Sets the position and orientation of the clipping plane surface.
- Size – Sets the clipping plane’s width.
- Depth – Sets the clipping plane’s depth.
- Depth Enabled – Toggles whether the depth value is used to clip objects.
- Label – Defines how the clipping plane is labeled. Options include:
- (0) None
- (1) Annotation Dot
- (2) Text
- Style – Sets the annotation style used to determine how the clipping plane is drawn with respect to arrows and fonts.
- Viewports – Sets the viewports where the clipping plane will be active.
To assign a name to your clipping plane—just like with other annotation objects—use the Model Object component. Keep in mind that you can simplify the component display by right-clicking on it and choosing Hide Unused Parameters, which hides any inputs or outputs you don’t need.
The setup shown above creates a clipping plane named “Sec A” positioned on the XY plane at {0.0, 0.0, 0.0}. It has a width of 10.0 units, and a depth of 1.0 unit (which is disabled). The label style has been set to “Text” and the annotation style has been left empty.
The Query Viewports component controls which viewports the clipping plane is applied to. If the name filter is left empty, the query component returns all available model viewports.
To assign specific viewports, first disconnect the Query Viewports component and then right-click the Viewports input and select the desired viewport(s) from the context menu.
With the clipping plane defined above, you should see the following representation in the viewport. You can use the Content Cache component to bake this clipping plane into your Rhino document.
By default, baking a clipping plane will automatically set it up to clip all objects in your model.
However, there may be times when you only want the clipping plane to affect certain objects and/or layers. To control this setting, you must use the Objects Clipped component.
The Objects Clipped component has the following inputs:
- Clipping Plane – Accepts a clipping plane to modify.
- Clip Filter – Defines how the objects should be handled by the clipping plane. Options include:
- (0) All - All model objects will be clipped.
- (1) Include Selected - Clipping applies only to the objects explicitly added through the Objects and Layers inputs.
- (2) Exclude Selected - Clipping will exclude any objects explicitly added through the Objects and Layers inputs.
- Objects – Objects to be included or excluded during clipping.
- Layers – Objects on these layers to be included or excluded during clipping.
If you want only certain objects to be clipped, pass the clipping plane you created above into the Clipping Plane input, then use the filter to choose which objects should be clipped and which should not.
Note: The Objects and Layers inputs must reference items that exist in the Rhino document (they must have an ID). If you try to use geometry or layers that are not part of the document—such as standard Grasshopper geometry—you’ll see a warning. To use them with the Objects Clipped component, you must first bake the geometry into the Rhino document.
What are Clipped Drawings?
One of the notable new additions to Grasshopper is the Extract Clipped Drawing component. It mirrors the functionality of Rhino’s CreateClippingDrawings command.
This component generates 2D geometry from clipping planes. The resulting drawings can be created directly on the clipping plane or repositioned and reoriented elsewhere in the model.
The Extract Clipped Drawing component has the following inputs:
- Clipping Plane – Accepts a clipping plane to create the drawing elements.
- Projection – Defines the view projection to be used during the Make2D process of creating the drawing elements. Options include:
- (0) Parallel
- (1) Parallel Reflected
- (2) Perspective
- Lens Length – Sets the lens length of the view projection. This only applies to projections set to Perspective. The default value is 50.0 mm.
- Objects – The objects to be included in the clipped drawing. Note: these objects do not have to be baked into the Rhino document prior to use. You can pass standard Grasshopper geometry into this input.
- Attributes – Defines how the attributes for the 2D geometry are calculated. Options include:
- (0) By Output Layers - The generated 2D geometry is placed on a new set of layers that are created automatically. These layers are grouped under a root layer named after the clipping plane. Each layer starts with default properties (such as color, linetype, and material), which you can modify later using Grasshopper’s object attribute components or directly in Rhino after baking the geometry.
- (1) By Source Layers - The generated 2D geometry keeps the attributes of the original objects it came from. This includes properties like layer, display color, linetype, and material. As a result, the output geometry is placed on the same layers as the source objects.
- (2) By Input Objects - The generated 2D geometry uses the same automatically created layer structure as By Output Layers, but its object attributes are derived from the source objects. Any attributes on the source objects that were set By Layer or By Parent are first resolved to their final values and then directly assigned to the 2D geometry.
- Reference Point – A reference point to be used when transforming the 2D drawing geometry from the clipping plane to the target plane.
- Placement – A target plane on which the 2D drawing geometry will be drawn. If left empty, the 2D drawing geometry will be shown “in-place” along the clipping plane.
- Update – Creating clipped drawing geometry can be time-consuming. For this reason, the component does not generate new geometry automatically. Instead, you must press the Update button to run the calculation. If you prefer automatic updates, zoom in on the component and click the plus (+) button at the bottom. This replaces the manual button with an Update input. When this input is set to
True, the geometry will automatically recalculate whenever any of the inputs change.
Example Files:
- A basic example showing how to setup a clipping plane and assign a section style to an obejct:
- ClippingPlane_Basic.3dm (2.9 MB)
- ClippingPlane_Basic.gh (21.4 KB)
- A simple example showing how to create a 2D drawing using a clipping plane:
- ExtractDrawing.3dm (3.3 MB)
- ExtractDrawing.gh (13.6 KB)















