Files
awesome-copilot/skills/rhino3d-scripts/references/rhinocommon-map.md
T
John Haugabook b50617e33e new skill rhino3d-scripts (#1705)
* resolve readme validate

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: John Haugabook <johnhaugabook@gmail.com>

* rhino3d-scripts: rm reference to deprecated VBScript

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-15 11:08:46 +10:00

3.7 KiB

RhinoCommon Namespace Map

Use this to decide which Rhino.* namespace to import for a task. All of these are accessible from Python with import Rhino.

Document & Object Model

Need Namespace Key types
The active document, units, tolerances, undo Rhino RhinoDoc, RhinoApp
Reading/writing objects in the doc Rhino.DocObjects RhinoObject, ObjectAttributes, Layer, ObjectType
Tables (layers, materials, blocks, dim styles) Rhino.DocObjects.Tables LayerTable, InstanceDefinitionTable, MaterialTable
Custom per-object user data Rhino.DocObjects.Custom UserData
File I/O (.3dm, import/export) Rhino.FileIO File3dm, File3dmObject

Geometry

Need Namespace Key types
Points, vectors, transforms Rhino.Geometry Point3d, Vector3d, Transform, Plane, BoundingBox
Curves Rhino.Geometry Curve, NurbsCurve, PolylineCurve, LineCurve, ArcCurve
Surfaces & breps Rhino.Geometry Surface, NurbsSurface, Brep, BrepFace, Extrusion
Meshes Rhino.Geometry Mesh, MeshFace, MeshNgon
SubD Rhino.Geometry SubD, SubDFace, SubDEdge
Geometry collections (vertices, edges, faces lists) Rhino.Geometry.Collections MeshVertexList, BrepEdgeList
Intersections Rhino.Geometry.Intersect Intersection, CurveIntersections
Mesh refinement Rhino.Geometry.MeshRefinements
Space morphs (bend, twist, etc.) Rhino.Geometry.Morphs BendSpaceMorph, TwistSpaceMorph

User Interaction

Need Namespace Key types
Prompts, getters, command results Rhino.Input / Rhino.Input.Custom RhinoGet, GetObject, GetPoint, GetOption
Commands (when building a plugin) Rhino.Commands Command, Result
Forms, dialogs, panels Rhino.UI Dialog, Panels, RhinoEtoExtensions
UI controls / data sources Rhino.UI.Controls
Gumball Rhino.UI.Gumball

Display & Rendering

Need Namespace Key types
Viewports, display conduits, draw overlays Rhino.Display DisplayPipeline, DisplayConduit, RhinoViewport
Render content (materials, environments) Rhino.Render RenderContent, RenderMaterial, RenderTexture
Render mesh customization Rhino.Render.CustomRenderMeshes
Post effects Rhino.Render.PostEffects

Runtime & Plugins

Need Namespace Key types
Plugin lifecycle, settings Rhino.PlugIns PlugIn, FileImportPlugIn, FileExportPlugIn
In-process Rhino (run Rhino from external .NET) Rhino.Runtime.InProcess RhinoCore
Native interop (pointers, marshalling) Rhino.Runtime.InteropWrappers
User notifications (toasts) Rhino.Runtime.Notifications

Common Patterns

import Rhino
import scriptcontext as sc
import System.Drawing

doc = sc.doc                                          # Rhino.RhinoDoc
tol = doc.ModelAbsoluteTolerance                      # float
view = doc.Views.ActiveView                           # Rhino.Display.RhinoView
layer_index = doc.Layers.Add("MyLayer", System.Drawing.Color.Red)

# Find a Rhino object from a rhinoscriptsyntax GUID
rhobj = doc.Objects.Find(guid)                        # Rhino.DocObjects.RhinoObject
geom  = rhobj.Geometry                                # Rhino.Geometry.GeometryBase

# Add geometry with attributes
attrs = Rhino.DocObjects.ObjectAttributes()
attrs.LayerIndex = layer_index
attrs.Name = "example"
new_id = doc.Objects.AddCurve(curve, attrs)

Undo

undo_serial = doc.BeginUndoRecord("Batch Op")
try:
    # ... many doc.Objects.* calls ...
    pass
finally:
    doc.EndUndoRecord(undo_serial)
    doc.Views.Redraw()