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.

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.

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:

Let’s get started!

  1. Download the Download Foundation3D-01.gh Grasshopper file.
  2. All new clipping components live in the Rhino tab, Drafting subcategory in Grasshopper .
    Grasshopper toolbar with Rhino tab.

    Grasshopper toolbar with Rhino tab.

  3. Place 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. For this example: Size = 2000 (mm), Depth = 100 (mm), Depth Enabled = False.
      • 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) 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.

  4. To name the section "Detail A" (for example), type the name directly into the Name input of Create Clipping Drawing.
    The drawing needs a name from one of two places: the clipping plane’s name, optionally set upstream with a Model Object component, or the Name input of Create Clipping Drawing component shown here. Without either, the component warns and no drawing is created. If both are set, the clipping plane’s name takes precedence over the Name input.
    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.

  5. 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 you will learn:

A construction detail often includes context you don’t want to cut. The simplest way to control that is to pick the layers you care about in Grasshopper and pass only that geometry into Create Clipping Drawing.

Three components do the job:

  1. The Value Picker on the output lets you tick only the layers you want to cut. For this example: 08_Insulation, 11_Floor plate, and 12_Parquet flooring.
  2. Query Model Objects, with its Layer input driven by the Value Picker, returns the geometry on those layers. Its Extrusions and Breps outputs feed straight into the Objects input of the Create Clipping Drawing component.
  3. Tick a layer on or off in the Value Picker, press Update on the Create Clipping Drawing component, and the 2D clipping drawing is generated in Grasshopper .
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.

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.

Extract the 2D Section Drawing

In this section, we’ll learn:

Let’s get started!

  1. Download the Download Foundation3D-03.gh Grasshopper file.
  2. The Create Clipping Drawing component is the Grasshopper equivalent of Rhino’s ClippingDrawings command. It extracts section curves, hatches*, and background geometry* into a 2D drawing stored as a block.
  3. Two components, Clipping Drawing Settings and Label Style, decide what the drawing contains. For the latter, new inputs let you include annotations in general, and more specifically dimensions, leaders, text entities, and annotation dots.
    • 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. Section Hatch, Background, Tangents, Hidden, and Silhouette are all on by default, and Section Surface is off. For a cleaner construction detail, consider turning Hidden off.
  4. Wire the Clipping Drawing Settings component created above into Create Clipping Drawing component together with:
    • Objects: the geometry to include. Unlike Objects Clipped, this input accepts plain Grasshopper geometry, so nothing needs to be baked.
    • Layer: the root layer the block instance of the clipping drawing is assigned to. If left empty, the component places the block on a layer called Clipping Drawings by default.
    • Projection: sets the view projection used to generate the drawing. Options: (0) Parallel, (1) Parallel Reflected, (2) Perspective. Parallel is the usual choice for construction details; use Perspective when you want a camera-based view.
    • Ref Point: a reference point used when transforming the drawing from the clipping plane to the target placement plane. In practice it anchors the 2D output on the Placement plane, so if you want the drawing to land on a specific spot of a sheet, set Ref Point to the matching point on the clipping plane.
    • 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.

  5. 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:

Let’s get started!

  1. Download the Download Foundation3D-04.gh Grasshopper file.
  2. 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.
  3. Previously, custom patterns meant hand-editing .pat files in AutoCAD’s text syntax with no live preview. As in Rhino 8, hatch patterns are Grasshopper data. Rhino 9 updates the component set, most notably by adding the Lines Pattern component, which makes tile-based patterns easier to build.
    • 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.
  4. 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.

  5. For patterns that are easier to draw than to describe, such as brick bonds, stone patterns, or batt insulation, use the Lines Pattern component. It doesn’t produce a hatch on its own: it generates the hatch lines from the tile you draw. Pass those lines into Model Hatch Pattern to build the pattern, and then into Model Hatch to distribute the pattern across the boundary area.
    Batt insulation pattern built in Grasshopper.

    Batt insulation pattern built in Grasshopper.

  6. 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.

Let’s get started!

  1. Download the Download Foundation3D-05.gh Grasshopper file.
  2. 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.
  3. Wire a Query Model Hatch Patterns component into the Value Picker. The component reads the hatch patterns stored in the active Rhino document. Right-click it and choose Add Default Patterns to load Rhino’s 10 legacy default patterns into the document (this is the same set that Tools > Options > Hatches loads on first use). To work with a larger library, open Tools > Options > Hatches in Rhino and load the patterns you need there; they’ll immediately appear in the Value Picker. Then 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.

Let’s get started:

  1. Download the Download Foundation3D-06.gh Grasshopper file.
  2. 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.
  3. 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.
    • Hold while using the mouse to navigate: drag with the left mouse button to pan, scroll the mouse wheel to zoom, and drag with 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.
  • 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.