Lesson 10.2Lesson 10.2 · Workflow, Portfolio & Career
Documentation & Collaboration
Definitions others can read, run and trust - clusters, naming, versioning, and the link to BIM
A definition only you can read is worthless to a studio. The professional skill is making your logic legible - to a teammate, to future you, and to the BIM model.
Most Grasshopper canvases are private languages: a tangle of wires that made sense at 2am and no one else can touch. That is fine for a sketch and fatal for a project. The difference between a clever student and a hire is whether your work survives being handed over.
This lesson is about the unglamorous craft that makes computational design a team sport: internalising the right inputs, clustering and naming and grouping so the graph reads like a document, versioning so you can go back, and connecting cleanly to BIM and the wider team so your logic feeds the building, not just your screen.
Internalise, cluster, name, group, version. Then hand it over and watch what breaks.
A definition is a document, not a private note
The first mental shift is to treat your definition as something other people will read - because they will: a colleague picking it up, a reviewer, or you in six months with no memory of it. A tangle of crossing wires and default component names ('Number Slider', 'Series', 'Panel') carries no meaning. A documented definition, by contrast, tells a story left to right: here are the inputs, here is the logic, here is the output, and each region says what it does.
This matters commercially. In practice, definitions are assets the firm reuses across projects; a facade panelizer or a stair generator that only its author understands cannot be reused, audited or trusted. Legibility is what turns a one-off script into shared infrastructure. It is also self-defence: the person most grateful for your labels and notes is future-you, debugging under a deadline. Documentation is not bureaucracy layered on top of the real work - in collaborative practice it is part of the real work.
There is a simple test for whether a definition is a document or a private note: could a competent colleague open it cold and, within a few minutes and without asking you anything, find the inputs, understand roughly what it does, and change something safely? If yes, it is infrastructure the studio can build on. If no - if it only runs while you stand over its shoulder explaining - it is a liability dressed as an asset, and firms have learned to treat it that way. The habits in this lesson exist to move every definition you build firmly onto the 'document' side of that line.
Your canvas will be read by a stranger (often future-you). Write it for them.
The four hygiene moves: internalise, cluster, name, group
Four habits turn a private tangle into a legible document. Internalise the inputs a recipient will not have: right-click a geometry parameter and 'Internalise Data' so the curve or brep is baked into the file and the definition opens without your Rhino model attached. Cluster finished sub-graphs: select a working region, make it a Cluster, and fifteen components collapse into one titled block with clean inputs and outputs - like a function. Double-click to open it; the detail is there when needed, hidden when not.
Name things for what they mean: rename a slider from 'Number Slider' to 'bay_count', a panel to 'target open area %'. Names are the cheapest documentation there is and the first thing a reader looks for. Group related components with the coloured group tool and give each group a title - INPUTS, PANEL LOGIC, RATIONALIZE, OUTPUT. Colour-code by role so the eye finds the region it needs. Add a few Scribble notes for the non-obvious decisions. Together these four moves - plus laying data flow strictly left to right - are the difference between a canvas someone can navigate and one they abandon.
Internalise. Cluster. Name. Group. Four moves from private tangle to shared document.
Versioning: going back without fear
Grasshopper has no built-in history, so a definition can be one bad afternoon away from unrecoverable. Professionals impose their own versioning. The simplest discipline is disciplined file naming with an incrementing suffix and a date - facade_v04_2026-08-21.gh - saving a new version at every milestone rather than overwriting. It feels clumsy and it will save your project.
Record the environment too: note the Rhino and Grasshopper version and, critically, the plug-ins and their versions, because a definition that relies on Kangaroo, LunchBox or Wallacei simply will not open the same way without them. A short text note or a Scribble on the canvas listing dependencies is enough. For real teams, geometry data-exchange platforms such as Speckle add proper versioned commits and let several people share model data across Rhino, Revit and Blender. And keep dead branches out: delete or clearly park the experiments you abandoned, so the version you hand over is the version you mean. Versioning is not about being tidy for its own sake - it is the ability to say 'go back to Tuesday's scheme' and actually do it.
A concrete convention that works in practice: name files project_part_vNN_YYYY-MM-DD.gh, bump NN at every milestone (never overwrite), and keep a two-line changelog in a Scribble on the canvas - 'v05: switched panelizer to LunchBox diamond; v06: added drainage low-point'. Pair that with a _dependencies.txt note listing Rhino 8, Grasshopper build, and each plug-in with its version. When a definition lands on a new machine and a red component appears because Kangaroo 2.5 is missing, that one note turns an afternoon of confusion into a thirty-second install. None of this is glamorous, and all of it is what lets a project survive a laptop change, a teammate leaving, or your own memory fading.
GH has no undo history across sessions. Save v01, v02, v03... and note the plug-in versions.
Handing a definition to a teammate
A hand-over is a test your documentation either passes or fails. The receiving person should be able to open the file, see the inputs immediately, change them safely, and get a sensible result - without reading every wire. A few things make that possible. Put the driving inputs together, front-left, clearly named, and constrain their ranges so a slider cannot be pushed to a value that breaks the model. Add a Scribble or a short read-me describing what the definition does, what to change, and what not to touch.
For a non-technical collaborator, expose only the controls that matter through a remote control panel - Human UI or the classic Grasshopper remote panel - so they get sliders and buttons without the intimidating canvas. Where a teammate must edit the logic, clusters are your friend: they can work inside one titled block without disturbing the rest. The honest test of a definition's quality is not that it works on your machine - it is that a colleague can pick it up cold and be productive in ten minutes. Build for that person from the start and your work multiplies across the studio instead of dying on your hard drive.
A short read-me is worth writing out in full because it is so often skipped. Three lines usually suffice: what it makes ('generates a diagrid facade from a surface and a bay count'), what to change ('the three sliders top-left; keep bay count between 6 and 40'), and what not to touch ('the cluster marked STRUCTURE - it is signed off'). Add a one-line note on the expected inputs - 'reference one open Brep on the SURFACE layer' - so the recipient is not left guessing what the definition wants fed to it. This costs two minutes and repays them a hundredfold, because the alternative is a colleague messaging you at every step, or worse, quietly editing something they should not have and breaking a result you had already delivered.
Constrain slider ranges so a teammate can't push an input that breaks the model.
Connecting to BIM and the wider team
Computational work rarely ends in Grasshopper; it feeds a building that is documented, costed and coordinated by a much larger team, usually in a BIM tool. The key bridge in the Rhino world is Rhino.Inside.Revit, which runs Rhino and Grasshopper inside Autodesk Revit, so your parametric logic can create and drive native Revit elements - walls, columns, adaptive components, families - directly. A facade you generated in Grasshopper becomes real Revit geometry the documentation team can schedule and detail, rather than a dead import. In the Autodesk-native world, Dynamo plays a similar role for Revit.
This changes your responsibility. Once your output lands in BIM it must speak the team's language: correct categories, sane parameters, elements that behave when others edit around them. Naming, grouping and clean data (this lesson) are what make that hand-off trustworthy. And BIM is only one downstream consumer - fabricators want DXF and machine files, visualisers want clean meshes, engineers want an analytical model. The through-line is the same: computational design is a contribution to a collaboration, and your definition's job is to hand its intelligence to the next person without loss. That mindset - not any single component - is what makes you employable on a real team.
Rhino.Inside.Revit turns your GH logic into NATIVE Revit elements - not a dead import.
Cluster
Collapses a group of components into one reusable, titled block
Grasshopper's equivalent of a function: hides detail behind clean inputs and outputs, and can be saved and reused across definitions. Double-click to edit inside.
Internalise Data
Bakes referenced geometry into a parameter
Lets a definition open on someone else's machine without your Rhino file. Freezes that input, so use it for inputs a recipient will not have.
Rhino.Inside.Revit
Runs Rhino and Grasshopper inside Autodesk Revit
The main bridge from Grasshopper logic to native BIM elements. Free from McNeel. Dynamo is the Autodesk-native equivalent for Revit.
Human UI / remote control panel
Exposes selected inputs as a simple slider-and-button interface
Lets a non-technical collaborator drive a definition without facing the canvas. Human UI is a free plug-in; a basic remote panel is built into Grasshopper.
Speckle
Open platform for versioned geometry and data exchange
Adds commit-style versioning and multi-tool sharing (Rhino, Revit, Blender). Useful when several people or apps must work from the same model.
Workshop - make a definition someone else can run
Take any definition you have already built and put it through a hand-over test. The exercise is not to add features - it is to make your existing logic legible and shareable.
Rhino + Grasshopper. Optional: Human UI (free) to expose a remote panel; a second person to test the hand-over.
Goal: turn a working-but-messy definition into a documented, hand-over-ready one Inputs: any Grasshopper file you have built (a facade, a screen, a tower massing) Time: ~45 minutes
- 1Lay it out left to right: inputs on the far left, output on the far right, and untangle crossing wires so data flows one direction.
- 2Name every driving input for its meaning ('baycount', 'maxradius', not 'Number Slider'), and constrain each slider's range so it cannot be pushed to a breaking value.
- 3Group the canvas into titled, colour-coded regions - INPUTS, LOGIC, RATIONALIZE, OUTPUT - and add two or three Scribble notes on the non-obvious decisions.
- 4Cluster one finished sub-graph into a single titled block, and internalise any input geometry a recipient would not have on their machine.
- 5Save it as a new version with a dated name and a canvas note listing the Rhino and Grasshopper version and any plug-ins. Then hand the file to a friend (or shut it and reopen tomorrow) and see whether they can change an input and get a sensible result in ten minutes.
You’ll walk away with
One definition rebuilt for legibility: left-to-right flow, named and range-limited inputs, titled colour groups, at least one cluster, internalised inputs, a dependency note and a dated version - plus a sentence on what your test reader found confusing.
Three altitudes on the same idea
Read the band that fits you — or all three.
Your definitions are practice assets - treat them like drawings that get issued. Named, grouped, clustered and versioned, they can be reused across projects and audited by consultants. Rhino.Inside.Revit lets your parametric intent become native BIM the documentation team can run with, instead of a hand-off that gets redrawn and lost.
Even a joinery or ceiling definition is worth documenting if you want to reuse it. Cluster the pattern engine, name the inputs, and expose a small remote panel so a colleague can dial a variation without touching the graph. Clean geometry and clear naming also make your output drop cleanly into the wider project model or a maker's cut file.
A clean, documented definition is a portfolio signal in itself. Studios read it as 'this person can work on a team'. Practise naming everything, grouping by role and clustering finished logic now - and learn the idea of Rhino.Inside.Revit even before you use it, because collaboration with BIM is exactly the skill firms are short of.
“Documentation is extra polish you add at the end if there's time.”
Do it yourself
Think about the person who inherits your file.
- 1Name the four hygiene moves that turn a private tangle into a shared document.
- 2Why must you internalise input geometry before sending a definition to someone without your Rhino file?
- 3Grasshopper has no session-to-session undo. How do professionals version their definitions?
- 4What does Rhino.Inside.Revit let your Grasshopper logic do that a plain export cannot?
- 5How would you let a non-technical colleague drive your definition without touching the canvas?
The one line to carry out
Peer-reviewed journals & authoritative standards
- 01Rhino Developer - Grasshopper guides — Robert McNeel & Associates, 2026.
- 02Mode Lab - The Grasshopper Primer (Third Edition) — grasshopperprimer.com (free online edition), 2020.
- 03The Dynamo Primer — DynamoBIM, 2026.
- 04McNeel Rhino Documentation — Robert McNeel & Associates, 2026.
Documented, shareable work is also what makes a portfolio credible. Next we turn from the definition to how you present it - showing the logic behind your projects so a studio can see how you think.
The author
Amogh N P
Architect, interior designer, and creative polymath. Studio Matrx began in his notebooks — his vision of design made honest, useful, and open to everyone. Its Academy is written and taught in his memory, and free, forever.
More about Amogh →