Rhino Common Archive

Rhino error - This object cannot be modified because it is controlled by a document

So it's been a bit busy recently at work writing up literature review notes, preparing for a visit to Trondheim, Norway, and continuing my research into operational modelling and planning for NHS hospitals. One of the key concepts of the development work I am currently undertaking to solve a research aim is the use of

Random string generator for Grasshopper

As a bit of something quick and fun, I produced a random string generator component for Grasshopper. It's a simple component with three inputs to control the number, length and chars included of strings and returns one output, a list of randomly generated strings. Quite what you'd wish to use this for I don't know,

How should you be coding Grasshopper components?

Grasshopper has evolved somewhat since its beginnings and it's becoming increasingly common to find Grasshopper developers out there looking to push the boundaries of visual programming/modelling. For the most part, scripting for Grasshopper was done within the built-in scripting components (for Python, C#, etc). It allows people with little programming knowledge to create their custom

How to stop a Grasshopper component in the middle of calculations

Moving away from the recent work in NodeJS back to Grasshopper has brought me onto a sore point with the majority of calculations I try to perform. Most of my work requires some intense spatial analysis but can take a rather long time to complete. Sometimes I connect incorrect data by mistake and calculations try

How to prevent multiple instances of a Grasshopper component being added to the canvas

Grasshopper components typically have the ability to be added to the canvas multiple times to allow different calculations to be performed depending on what it is your Grasshopper document is doing. However, there may occasionally be a need for your component to only be allowed on the canvas once. There could be many reasons for

How to stop specific outputs of a Grasshopper component from displaying results automatically

In this previous post, a way to stop a component from automatically displaying results on calculation was shown. This put the onus of previewing results directly onto the user. However, there may be a time when you wish for the user to view some results, but not all of them. For example, maybe you have

How to obtain minimum and maximum values from lists in Grasshopper - Version 2

In this previous post I showed the ways in which we can obtain the minimum and maximum values from lists of numbers in Grasshopper. I presented three solutions, using native Grasshopper components (with unintuitive naming), building your own using a C# script, or using a component which I offered for download. Since then, I found

How to add custom User Data to Rhino Objects

Objects in Rhino (the 3D modelling software, not the organs of the animal) have the option to attach custom user data that you may wish to share across tools. This might be of particular use in Grasshopper, enabling you to send one piece of geometry down the wires with custom data attached, rather than having

How to stop components from automatically displaying results in Grasshopper

When you run a component in Grasshopper, if there are outputs associated to it, the outputs will be visualised in Rhino without you needing to do much. This is part of the 'preview' feature of a component, but sometimes, you might not want the users to automatically see the output. For example, if you have

How to pass custom data between Grasshopper components

Grasshopper is designed to work with components that handle specific functions, rather than components which try to do an 'all-in-one' approach. When designing your own custom Grasshopper components, there might be a need to pass custom data along the wires between components. This is easy enough to do when you know how, but getting to