Architecture · Grasshopper · Guide

Create Parametric Sections and Hatches with Grasshopper

Create a clipped view, add hatch patterns and section settings and create a parametric section drawing.

60 minRhino 9 / GrasshopperIntermediate
Create Parametric Sections and Hatches with Grasshopper

Wall detail 3D model

Architects and BIM specialists model construction details in 3D, but the deliverable is almost always a 2D drawing: a section through the wall assembly with the correct material hatches (insulation, concrete, brick, sealant) placed on the right layers, at the right scale.

Traditionally this meant running Make2D or ClippingDrawings , then hatching by hand. Every time the detail changed, whether a thicker insulation layer or a different slab height, the drawing had to be redone.

With Rhino 9, the entire section workflow lives in Grasshopper 1. Sections become parametric: move a slider and the clipping plane moves, the 2D drawing regenerates, and the hatches follow. Custom hatch patterns are no locfanger hand-edited .pat files but Grasshopper definitions you can preview, adjust, and export as new .pat files.

dvsd

What you'll learn

  • How to create and control a Clipping Plane from the Grasshopper canvas, and limit it to specific objects and layers.
  • How to extract a live 2D clipped drawing (section curves, hatches, background linework) that updates when the model changes.
  • How to build a custom hatch pattern parametrically and apply it to the section.
  • How to browse and filter hatch patterns with the Value Picker.
  • How to inspect hatches, geometry, and non-geometry data on the canvas with the Content Viewer.

Prerequisites: Rhino 9, basic Grasshopper knowledge (placing components, wiring parameters). Download the model Foundation3D.3dm and the Grasshopper definitions for each section.

The model: a wall construction detail

In this section, we’ll go through:

  • What is in the example file and how the layers are organized.
  • Why section styles per layer matter for the parametric workflow.

Download the 3D model Download Foundation3D.3dm.

The example model is a typical exterior wall detail: a concrete foundation with a CMU, a floor slab, a wood stud wall system with an air cavity, and a brick veneer. Each building element sits on its own layer, and section styles are assigned per layer so that every material can carry its own hatch when sectioned.

3D wall detail with the Layers panel showing the material layers.

3D wall detail with the Layers panel showing the material layers.

This layer organization is the backbone of the workflow. The new Grasshopper components respect Rhino’s Section Styles (the hatch pattern, boundary settings and colors you assign to objects or layers), so the time invested here pays off in every drawing extracted later.

If you are starting from your own model, assign section styles in Object Properties > Section Style or per layer in the Layers panel before moving to Grasshopper .

Create a Parametric Clipping Plane

In this section, we’ll learn how to:

Download the Download Foundation3D-01.gh Grasshopper file.

All new clipping components live in the Rhino tab, Drafting subcategory in Grasshopper .

Grasshopper toolbar, Rhino tab with Clipping Section panel and Drafting panel.

Grasshopper toolbar, Rhino tab with Clipping Section panel and Drafting panel.

Start by placing a Model Clipping Plane component. Rather than referencing an existing clipping plane from the document, we build one from scratch so every property stays parametric:

  • Plane sets the position and orientation of the section cut. Because we want a vertical section through the wall, feed it an XZ Plane (from Vector > Plane). To keep the plane’s origin parametric, build the origin with a Construct Point and drive the Z input from a Number Slider. That slider becomes the “section height” control for the whole detail. For this example: X = 0, Y = 300, Z = -267 (slider range from -500 to 500, integer step). Move the slider and the section cuts up and down through the assembly.
  • Size and Depth set the width and depth of the clipping plane. Make sure the plane extends past the full wall assembly; geometry outside the plane’s extents will not appear in the extracted drawing.
    • For this example: Size = 2000 (mm), Depth = 100 (mm), Depth Enabled = False.
  • Label and Style define how the section marker is annotated: (0) None, (1) Annotation Dot, (2) Text. For this example, we chose Text so the section marker appears as readable text in the viewport. Style references an annotation style from the document; leave it empty to use the default.
  • Viewports sets which viewports the plane clips. A Query Viewports component with an empty name filter returns every model viewport, but for a specific drawing you often want just one. Wire a Value Picker into the Viewports input and tick only the viewport you want to work in. For this example, we chose the viewport named Foundation_06.
  • When the clipping plane should become part of the document, to use it in layouts or share the file, bake it with a Content Cache component. By default a baked clipping plane clips all objects in the model.
Place a Model Clipping Plane in Grasshopper.

Place a Model Clipping Plane in Grasshopper.

  • To name the section "Detail A" (for example), pass the clipping plane through a Model Object component, exactly as you would name any other model object in Grasshopper .
Create a 2D section drawing from your 3D detail model using the Create Clipping Drawing Grasshopper component.

Create a 2D section drawing from your 3D detail model using the Create Clipping Drawing Grasshopper component.

  • Drag the Number Slider. The wall assembly clips live in the viewport. This is already a parametric section, before a single line has been drawn.
Drag the slider and the section updates live in the viewport.

Control what gets clipped

In this section, we’ll see:

  • Two ways to restrict what the clipping plane cuts.
  • Option A: Objects Clipped against baked geometry in the Rhino document.
  • Option B: filter upstream in Grasshopper and feed the geometry straight into the drawing.

Download the Download Foundation3D-02.gh Grasshopper file.

A construction detail often includes context you don’t want to cut: an annotation scale figure, existing structure, or reference geometry. There are two ways to control this.

Option A: Objects Clipped

The Objects Clipped component works on the clipping plane after it exists in the Rhino document.

Its inputs:

  • Clip Filter offers (0) All, (1) Include Selected, or (2) Exclude Selected.
  • Objects / Layers are the objects or layers to include or exclude. Set the filter to Exclude Selected (2) and wire in the Context layer: the wall assembly is sectioned while the surrounding geometry stays whole.
Objects Clipped component with Layers input.

Objects Clipped component with Layers input.

Note
The Objects and Layers inputs must reference content that exists in the Rhino document (it must have an ID). Grasshopper-only geometry needs to be baked first, and Content Cache handles this cleanly.

Option B: filter upstream, feed geometry straight into the drawing

Objects Clipped works on a baked clipping plane inside the Rhino document. If you’d rather keep everything parametric and skip the bake step, do the filtering upstream in Grasshopper and feed the selected geometry directly into the Objects input of Create Clipping Drawing (see Extracting the 2D section drawing). Unlike Objects Clipped, that input happily accepts plain Grasshopper geometry, so nothing needs an ID in the document.

The definition mirrors the layout above:

  • Build the object selection separately. Type the layer name pattern into a Layers parameter (or a text panel) and query the document with a Query Model Layers component. Pipe the result into a Value Picker so the layers appear as a checklist on the canvas. In the picker, tick only the layers you want to cut, in this example 08_Insulation, 11_Floor plate, and 12_Parquet flooring.
  • Pass the picked layers through a Content component (Parent / Name / Tags) and then a Query Model Objects component with the Layer input driven by the picker. Its Extrusions and Breps outputs give you exactly the geometry sitting on those layers, still fully referenced but ready to travel through Grasshopper as data.
  • Wire that geometry into the Objects input of Create Clipping Drawing, alongside the clipping plane from Creating a parametric clipping plane and your Clipping Drawing Settings. Press Update (or expose the Update input) to generate the 2D drawing.
3D wall detail with insulation, floor plate, and parquet flooring highlighted; Grasshopper canvas with X/Y/Z sliders into Point into XZ Plane, Value Picker showing checked layers, Query Model Objects, and Create Clipped Drawing marked Detail A.

3D wall detail with insulation, floor plate, and parquet flooring highlighted; Grasshopper canvas with X/Y/Z sliders into Point into XZ Plane, Value Picker showing checked layers, Query Model Objects, and Create Clipped Drawing marked Detail A.

Extract the 2D Section Drawing

In this section, we’ll learn:

Download the Download Foundation3D-03.gh Grasshopper file.

Clipping the view is presentation; a deliverable needs linework. The Create Clipping Drawing component, the Grasshopper equivalent of Rhino’s ClippingDrawings command, extracts section curves, hatches, and background geometry into a 2D drawing stored as a block.

Its companion, Clipping Drawing Settings, decides what the drawing contains:

  • Attributes Source: By Output Layers creates a clean, automatically structured layer tree under a root layer named after the clipping plane; By Source Layers keeps the original object attributes; By Input Objects combines both.
  • Section Hatch / Section Surface include the material hatches and fills cut by the plane.
  • Background, Tangents, Hidden, Silhouette control which edge types beyond the cut appear in the drawing. For a construction detail, enable Section Hatch and Background, and set attributes By Output Layers. Every extracted drawing then arrives pre-organized for layout work.

Wire the settings into Create Clipping Drawing together with:

  • Clipping Plane: the plane from Creating a parametric clipping plane.
  • Objects: the geometry to include. Unlike Objects Clipped, this input accepts plain Grasshopper geometry; nothing needs to be baked.
  • Placement: a target plane for the 2D drawing. Leave it empty to draw the section in place on the clipping plane, or give it a plane next to the model to lay the drawing flat for a sheet.
  • Update: drawing extraction can be heavy, so the component recalculates only when you press the Update button. Zoom into the component and click the + to expose Update as a Boolean input if you want automatic regeneration, which is useful with Grasshopper Player.
Clipping Drawing Settings wired into Create Clipped Drawing, with the 2D drawing placed beside the 3D model.

Clipping Drawing Settings wired into Create Clipped Drawing, with the 2D drawing placed beside the 3D model.

Move the section slider, press Update, and the 2D detail regenerates: cut lines, hatches, and background edges, on structured layers. This is the moment the workflow becomes parametric documentation.

Create Material Hatch Patterns

In this section, learn how:

Download the Download Foundation3D-04.gh Grasshopper file.

The extracted drawing picks up hatches from the section styles in the document. But what if the pattern you need doesn’t exist? Rigid insulation, for instance, is often drawn with a pattern that isn’t in the default library.

Previously, custom patterns meant hand-editing .pat files in AutoCAD’s text syntax with no live preview. In Rhino 9, hatch patterns are Grasshopper data:

  • Model Hatch Pattern is the pattern definition itself: name, description, units, scaling style (Drafting patterns scale with the plotted drawing; Model patterns have a fixed real-world scale, like actual brick coursing).
  • Hatch Line is one family of parallel lines in a pattern: a start point, direction, offset between repetitions, and a segments list for dashes (positive values are solid, negative are gaps).
  • Model Hatch is an instance of a pattern inside a boundary curve, ready to preview or bake.

Build a new pattern from solid Hatch Lines, at a 45° direction, and feed it into a Model Hatch Pattern. Wire a rectangle into a Model Hatch to preview the result live while you tune the offsets with sliders.

Model Hatch Line components feeding Model Hatch Pattern feeding Model Hatch with a rectangle boundary.

Model Hatch Line components feeding Model Hatch Pattern feeding Model Hatch with a rectangle boundary.

For patterns that are easier to draw than to describe, such as brick bonds, stone patterns, or batt insulation, use the Lines Pattern component instead. Draw the line segments inside a rectangular tile, feed both to the component, and it repeats the tile across the hatch area.

Batt insulation pattern built in Grasshopper.

Batt insulation pattern built in Grasshopper.

You can then apply the new pattern to the insulation layer in your clipped section, rotating and scaling the tile to match the layer’s orientation and thickness.

Apply the Batt insulation hatch pattern to the insulation layer.

Apply the Batt insulation hatch pattern to the insulation layer.

When the pattern is right, save it beyond this file:

  • Export Hatch Pattern writes a standard .pat file (set Overwrite to True when iterating) for use across Rhino and other CAD applications.
  • Content Cache bakes the pattern into the document so section styles can reference it, which means your parametric section from Extract the 2D section drawing can now cut insulation with your pattern.
Exporting a hatch pattern to a .pat file.

Exporting a hatch pattern to a .pat file.

Browse Patterns with the Value Picker

In this section, we’ll learn:

  • Why the Value Picker replaces long value lists for drafting workflows.
  • How to load the default hatch pattern library.
  • About search modes: Wildcards, Contains, Starts With, Ends With, Regular Expressions.

Download the Download Foundation3D-05.gh Grasshopper file.

A document quickly accumulates dozens of hatch patterns; Rhino 9 ships with 58 new defaults alone. Scrolling a value list doesn’t scale. The Value Picker (Params tab > Input) is built for exactly this: finding, filtering, and selecting from long lists of values.

Wire a Query Model Hatch Patterns component into the Value Picker. Right-click the query component and choose Add Default Patterns to load Rhino’s whole default library. Expand the Value Picker and:

  • Type to search, with Wildcards (Batt*), Contains, Starts With, Ends With, or full Regular Expressions.
  • Click to select; + Click for multiple values; + Click for a series.
    Left: Value Picker expanded; Right: Value Picker filtered to Batt, two hatch patterns found.

    Left: Value Picker expanded; Right: Value Picker filtered to Batt, two hatch patterns found.

The Value Picker isn’t limited to hatches. It handles numbers, text, and model objects (shown by object name) simultaneously, so the same technique works for picking layers, section styles, or parts from a catalog folder.

Inspect the Content with the Content Viewer

In this section, we’ll learn:

  • Why non-geometry data is hard to inspect in Grasshopper .
  • How the Content Viewer draws hatches, materials, and other data on the canvas.
  • About embedded viewport mode and its navigation shortcuts.

Download the Download Foundation3D-06.gh Grasshopper file.

How do you see a hatch pattern before applying it? Or check what a section style actually contains? Grasshopper previews geometry in the Rhino viewport, but drafting workflows are full of non-geometry data: patterns, linetypes, styles, colors, text.

The Content Viewer (Params tab > Util) displays almost any Grasshopper content graphically, directly on the canvas:

  • Connect it to the Value Picker’s** output: the selected hatch pattern draws itself in the viewer. Flip through patterns in the picker and preview each one instantly, a live pattern browser in two components.
  • Connect it to any component output (curves, BREPs, materials, annotation styles) to isolate and inspect that data without the distraction of everything else previewed in the scene.
  • Leave it unconnected and it shows a Rhino viewport embedded in the canvas. Right-click to change the display mode; hold + left mouse to pan, use the mouse wheel to zoom, and the right mouse button to rotate.
Value Picker into Content Viewer showing the selected hatch pattern.

Value Picker into Content Viewer showing the selected hatch pattern.

In this workflow the Content Viewer earns its place while designing the hatch pattern and letting you preview candidates before committing to one.

Put it All Together

The complete definition reads like the workflow itself:

  1. Number Slider into Model Clipping Plane**: one parameter drives the section cut.
  2. Objects Clipped: context stays whole, the assembly is cut.
  3. Clipping Drawing Settings into Create Clipping Drawing: a structured 2D detail, extracted on demand.
  4. Model Hatch Line into Model Hatch Pattern into Export Hatch Pattern: custom material patterns, previewed live and saved as .pat.
  5. Query Model Hatch Patterns into Value Picker and/or Content Viewer: find, pick, and verify patterns without leaving the canvas.
  6. Content Cache: bake the results into the document when they’re ready for layouts. Change the insulation thickness in the model, drag the section slider, press Update, and the drawing, hatches and layer structure follow. The detail is no longer a drawing you redo; it’s an output you regenerate.

Where to go next

  • Drive multiple clipping planes from one definition to generate a full drawing set (plans, sections, details) in one pass.
  • Use Grasshopper Player with the exposed Update input to turn this definition into a one-click MakeDetail command for your team.
  • Explore the Model View component to inspect how a clipping plane projects into a view, useful for debugging drawings with missing geometry.
  • Combine with layouts: place the extracted drawing blocks on sheets at scale.

Downloads

Download Foundation3D.3dm
Download Foundation3D-01.gh
Download Foundation3D-02.gh
Download Foundation3D-03.gh
Download Foundation3D-04.gh
Download Foundation3D-05.gh
Download Foundation3D-06.gh

Finished!
Congratulations for completing this tutorial! Feel free to continue using these tools to detail your design or create a new one from scratch. If you have any questions ask us on Discourse or drop an e-mail to our support team: support@mcneel.com.