Studio Matrx Monthly · Volume 1 · Issue 3 · August 2026
Amogh N P
 In loving memory of Amogh N P — Architect · Designer · Visionary 
Documentation & CollaborationLesson 10.2
CPD for Architecture, Planning & Urban Design/Module 10 · Workflow, Portfolio & Career

Lesson 10.2 · Workflow, Portfolio & Career

Documentation & Collaboration

Definitions others can read, run and trust - clusters, naming, versioning, and the link to BIM

13 min Interactive lessonFree · open lessonByAmogh N P· Architect & interior designer
The hook

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.

READ IT LEFT TO RIGHTINPUTSPANEL LOGICOUTPUTSliderbay_countSlidermax_radiusCurveinternalisedClusterpanelize_facadeGeometrydouble-click to openInternalise . Cluster . Name . Group - so a stranger can navigate the canvas.
Zoom
The four hygiene moves that turn a private tangle into a shared document. Data flows strictly left to right through titled, colour-coded groups - INPUTS, PANEL LOGIC, OUTPUT; a finished sub-graph is collapsed into a named Cluster; input geometry is internalised so the file opens without the Rhino model; and every slider is named for what it means.

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.

ONE DEFINITION, MANY CONSUMERSGH definitionnamed, grouped, cleanRevit / BIMRhino.Inside.RevitFabricatorDXF, machine filesTeam / Speckleversioned dataEngineer / vizanalysis, meshesYour logic is a contribution to a team - hand its intelligence on without loss.
Zoom
Your definition as a contribution to a collaboration. The Grasshopper logic sits at the centre and feeds several downstream consumers: native BIM elements through Rhino.Inside.Revit, versioned model data through a platform like Speckle, machine files for fabricators, clean meshes for visualisers, and an analytical model for engineers. Clean naming and data are what make each hand-off trustworthy.

Rhino.Inside.Revit turns your GH logic into NATIVE Revit elements - not a dead import.

Tools and moves for sharing your work

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.

Hands-on workshop

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.

Given & goal
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
  1. 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.
  2. 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.
  3. 3Group the canvas into titled, colour-coded regions - INPUTS, LOGIC, RATIONALIZE, OUTPUT - and add two or three Scribble notes on the non-obvious decisions.
  4. 4Cluster one finished sub-graph into a single titled block, and internalise any input geometry a recipient would not have on their machine.
  5. 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.

The worked example

Three altitudes on the same idea

Read the band that fits you — or all three.

For the architectDesign intent, geometry & delivery

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.

For the interior designerParametric interiors, pattern & furniture

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.

For the studentSkills, portfolio & jobs

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.

Misconception check

Documentation is extra polish you add at the end if there's time.

In collaborative practice, legibility is not a finishing coat - it is a load-bearing part of the work, and doing it at the end is doing it too late. A definition built as a private tangle usually cannot be cleanly documented after the fact; the structure that makes it readable - left-to-right flow, grouped regions, clustered functions, named inputs - has to be there while you build. Teams treat undocumented definitions as risk, not assets, because no one can reuse, audit or safely edit them. The habit of naming and grouping as you go costs almost nothing and is precisely what separates a professional canvas from a student one.
Try it

Do it yourself

Think about the person who inherits your file.

  1. 1Name the four hygiene moves that turn a private tangle into a shared document.
  2. 2Why must you internalise input geometry before sending a definition to someone without your Rhino file?
  3. 3Grasshopper has no session-to-session undo. How do professionals version their definitions?
  4. 4What does Rhino.Inside.Revit let your Grasshopper logic do that a plain export cannot?
  5. 5How would you let a non-technical colleague drive your definition without touching the canvas?
Take this with you

The one line to carry out

A definition earns its value only when other people can read, run and trust it - so internalise, cluster, name, group and version your work, and connect it cleanly to BIM through Rhino.Inside.Revit, because computational design in practice is a team sport.
Take it further
References & further reading

Peer-reviewed journals & authoritative standards

  1. 01Rhino Developer - Grasshopper guidesRobert McNeel & Associates, 2026.
  2. 02Mode Lab - The Grasshopper Primer (Third Edition)grasshopperprimer.com (free online edition), 2020.
  3. 03The Dynamo PrimerDynamoBIM, 2026.
  4. 04McNeel Rhino DocumentationRobert McNeel & Associates, 2026.
Related lessons
Recap
Treat your canvas as a document others will read. Four moves make it legible - internalise the inputs a recipient lacks, cluster finished logic into titled blocks, name everything for meaning, and group by role - all with data flowing left to right. Version with dated files and a note on plug-in dependencies. Hand-over is the real test: constrain ranges, add a read-me, expose a remote panel for non-technical users. And connect to the wider team, above all to BIM via Rhino.Inside.Revit, so your logic feeds the building.
Carry forward →

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.

A

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 →