01 The scripts

Definitions, user objects
and one plugin.

Things I built for my own work and then kept using. Five are free because they are the ones I would have wanted somebody to hand me. The other three took long enough that I would rather be paid for them than pretend otherwise.

8 scripts · 5 free · Rhino 7, 8 and 9 · nothing else to install

.gh Contour Clean Takes a surveyor's contours, drops the duplicates, closes the gaps, and gives you one clean curve per level. Site · Rhino 7, 8, 9 Free

What it does

Survey files arrive as a few thousand polylines at the same twelve elevations, split wherever the surveyor stopped drawing, with duplicates sitting on top of each other. This joins them by level, throws away the strays shorter than a tolerance you set, closes the gaps under a span you set, and hands back one curve per level with the height on it as a data tree.

What it is not

It is not a terrain mesh. It gives you clean curves, and what you loft, patch or drape them into afterwards is your decision. The landscape course is about that decision.

What you get

  • contour-clean.gh
  • read-me.txt
.gh Sheet Setter Lays plans, sections and elevations from one model onto Rhino layouts at a chosen scale, with the section marks drawn on the plan. Documentation · Rhino 8, 9 $79

What it does

You give it a model, a list of levels and a list of section lines. It makes a layout per drawing at the scale you name, puts the detail on it, draws the section mark on every plan that section cuts, and numbers them so the mark and the sheet always agree. Move a level, run it again, and the whole set moves together.

What it is not

It is not a titleblock system and it does not manage revisions. It puts the right drawing on the right sheet at the right scale, which is the part that eats the afternoon.

What you get

  • sheet-setter.gh
  • example-model.3dm
  • read-me.txt
.ghuser Panel Numberer Numbers a panelised surface the way a fabricator reads it, row letter and column number, baked as text dots. Documentation · Rhino 7, 8, 9 Free

What it does

Feed it the panels and it works out the rows and columns from their own centres rather than from the order the tree happens to be in, then bakes a text dot at each panel centre reading A-01, A-02 and so on. The numbering survives a rebuild, because it comes from position and not from index.

What it is not

It is not a nesting or cutting tool. It labels what you already have, so that the drawing, the schedule and the crate all call the same panel the same thing.

What you get

  • panel-numberer.ghuser
.gh Plot Divider Splits a site boundary into plots at a given frontage and depth, keeps every plot on a road, and counts what you lost to access. Site · Rhino 8, 9 $39

What it does

Give it a boundary and the roads it touches. It divides the developable area into plots at the frontage and depth you set, keeps every plot touching a road, and reports the plot count, the average area, and the percentage of the site that went to access rather than to plots. That last number is the one the client asks about.

What it is not

It is not a planning check. It does not know your setbacks, your overlooking rules or your local plan, and it will happily draw you a layout that would never be consented.

What you get

  • plot-divider.gh
  • example-site.3dm
  • read-me.txt
.ghuser Tree Sizer Tells you what is actually in a data tree: the paths, the branch lengths, and where the null is, in one panel. Data · Rhino 7, 8, 9 Free

What it does

Plug anything into it and it prints the path count, the branch lengths, the total item count, the depth, and the exact path and index of every null and every empty branch. It is the thing I reach for before I start grafting, and it has saved me more hours than anything else on this page.

What it is not

It does not fix the tree. It tells you what shape the tree is in, which is almost always the part you were guessing at.

What you get

  • tree-sizer.ghuser
.ghuser Stair Check Draws a stair from a floor to floor height and tells you the going, the riser, and whether it passes. Utilities · Rhino 7, 8, 9 Free

What it does

Type a floor to floor height and a maximum riser. It picks a whole number of risers, draws the flight, and reports the going, the riser, the pitch, and two times the riser plus the going, so you can see at a glance whether it sits inside the comfortable band.

What it is not

It is not a code check and it does not know which code you are working to. It gives you the numbers, and the numbers are what you take to the check.

What you get

  • stair-check.ghuser
.ghuser Bake Named Bakes to the layer, colour and name you typed, instead of to whatever layer happened to be current. Utilities · Rhino 7, 8, 9 Free

What it does

One component that takes geometry, a layer path, a colour and a name, makes the layer if it does not exist, and bakes there. It also refuses to bake twice under the same name, so running a definition again replaces its own output instead of stacking a second copy on top of the first.

What it is not

It is not a full Rhino object manager. It bakes properly, which is the one thing the standard component fails to do.

What you get

  • bake-named.ghuser
.gha Façade Openings Drives window openings across a façade from a target glazing ratio and reports what each elevation actually came out at. Panels · Rhino 8, 9 $39

What it does

A compiled plugin rather than a definition. You give it the façade surfaces and a target ratio per orientation. It sizes and places the openings, keeps them off the slab edges and off the columns you feed it, and reports the ratio each elevation actually achieved, per floor and in total.

What it is not

It is not a daylight or an energy analysis. It hits a geometric ratio that you chose. If that ratio has to come from a daylight target, the number comes from Ladybug or from your engineer, and then this places the openings.

What you get

  • facade-openings.gha
  • read-me.txt

02 How you get them

The boring but necessary part.

If something here does not work in your Rhino, tell me and I will fix it. The same person who wrote them reads the email.

Email me
Why do the free ones need an account?

So I can tell you when one of them breaks. Rhino 9 is going to change things underneath these files, and the alternative is that you find out in the middle of a job. It is an email address and a password. There is no newsletter attached to it, and you are welcome to take the file and never come back.

Can I open them up and change them?

Every definition is unlocked, and reading one is half the point. Nothing is clustered shut and nothing is password protected, because a Grasshopper file you cannot open is a black box sitting in the middle of your own definition. The plugin is compiled, because a plugin has to be.

What am I allowed to do with them?

Use them on any job, in a studio of any size, for as long as you like. Change them, take them apart, build them into your own definitions. The two things you cannot do are resell them and ship them inside something you sell.

Will they work in my Rhino?

Each row says which versions it is tested in, and anything marked Rhino 7 runs in 7, 8 and 9. Nothing here needs another plugin, so there is nothing else to install and nothing to go out of date underneath it. When a file needs a real change for Rhino 9 with Grasshopper 2, that update is included and you get an email about it.

Windows says it blocked the download

Windows marks anything that arrived from the internet, and Grasshopper then hides the file without telling you why. Right click it, choose Properties, tick Unblock at the bottom, and restart Rhino. The same instructions are inside every archive, because this is the thing people email about most.

How does this relate to the courses?

A script does the job this afternoon. A course teaches you to build the next one yourself, which is a different thing to want and usually a later one. Buying a script is not a down payment on a course, and nothing here is a lesson file.