Selection of Rhino Objects

In the effort of creating a filtering tool with GH, I’d like to have your take on the best way to highlight Rhino geometry.
Suppose that you’d like to select all the objects (mostly blocks) from a certain layer which have certain Attributes (Key/Value combo), and over a certain volume (assuming they are closed polysurfaces).
How would you go about highlighting / selecting them in the Rhino interface ?

I don’t want to display GH preview objects as it will produce the ugly rash-like effect you get when you super-impose render meshes.

Thanks !

I suspect Human UI must have something for this,
but as a quick solution, why not set wireframe preview in Gh and maybe setting the preview material into a brighter colour than the standard green.


If you could get rid of the rash, would you then like to be able to show GH previews? Basically you can put an additional transformation onto the preview which would move it slightly towards the camera, thus occluding whatever Rhino geometry is in the same place. This transformation can be applied during the preview drawing, it would not require you to actually move the geometry itself.

It might also be possible to disable depth-testing, forcing your preview on top of everything else. But that may look altogether too weird.

Hi David,

I’d like to avoid the preview objects altogether here.
It will speed things up dramatically as we may be speaking of a ****load of objects here.
If I could just get the objects selected in Rhino, that would be fine, even though the Rhino selection highlight is far from perfect.

Okay, what exactly do you mean by this:

UserData on the object geometry? UserData on the object attributes? What data types are important for the value, or is text equivalence always sufficient?

Well, never mind all that filtering stuff, I’ve got that figured out.
The thing is that I need those Rhino objects selected…

In order to select an object in Rhino, you must know its identifier. You can get the id of referenced geometry if you plug it into a GUID parameter. Then the id can be plugged into a C# script which can then set selection states.

I can write that script but first I need to know what data you actually have.

Well, in our case, it boils down to selecting block instances…