InspectorGadget: Moving The Rhino Viewport With Grasshopper

Hi,

I would like to create a component that lets us move between a list of 2d views in the rhino document.

Let me explain what I mean

By a view, I mean a 2d rectangle on the world XY plane. The component takes a list of these rectangles. Then, in each rhino XY viewport, widgets that they can click to iterate through the views in the list. With each click, the viewport pans and zooms to the next view accordingly.

Why do this

We wish to use a grasshopper cluster to create some “inspection points” in the rhino document. These are regions of the drawing requiring human inspection and correction. This component should reduce the time and effort required to pan and zoom through a set of inspections.

In one workflow, as the user corrects the issues, the inspection points are no longer flagged, eventually leading to an “all clear” state, which may be communicated to the user by the control widgets directly.

In an approval based work flow, the user may “accept” or “reject” an inspection point, in which case the component may build up an output list of accepted and rejected inspection points.

Questions:

  • Can we do this in a C# script component in grasshopper, or will this require a full grasshopper plugin?

  • what design should we use for our rhino-side “view coordinator” object? Do we need to handle “collisions” between multiple copies of the component?

  • how do we make floating navigation and decision widgets in the rhino viewport… from a grasshopper component. Is there a specific UI tutorial or sample code that we should study here?

Thanks for the help!