Samples
For additional samples, visit the Developer Samples Repository on GitHub.
RhinoCommon

Adding Objects
- Add Annotation Text
- Add Arrowheads to Curves
- Add Background Bitmap
- Add Brep Box
- Add Child Layer
- Add Circle
- Add Clipping Plane
- Add Command Line Options
- Add Cone
- Add Cylinder
- Add Layer
- Add Layout
- Add Line
- Add Linear Dimension
- Add Linear Dimension2
- Add Material
- Add Mesh Box
- Add Mesh
- Add Named View
- Add Nested Block
- Add NURBS Circle
- Add NURBS Curve
- Add Objects to Group
- Add Sphere
- Add Texture
- Add Torus
- Add Truncated Cone
- Add Twisted Cube
- Copy Groups
- Create Block Definition
- Determine Object Layer
- Duplicate Object
- Extend Curve
- Find Objects by Name
- Get Object UUID
- Modify Object Color
- Move Grip Objects
- Move Objects to Current Layer
- Object Color
- Object Display Mode
- Pick Point
- Pre and Post-Pick Objects
- Rename Object
- Replace Hatch Pattern
- Select Objects in Object Groups
- Select Objects on Layer
- User Data
- Zoom to Object
Blocks
Curves
- Add Arrowheads to Curves
- Add NURBS Curve
- Brep from Curve Bounding Box
- Calculate Curve Intersections
- Constrained Copy
- Create Contour Curves
- Curve Bounding Box
- Curve Deviation
- Divide Curve by Segments
- Divide Curve Straight
- Extend Curve
- Extract Isocurve
- Fillet Curves
- Find Curve Parameter At Point
- Find point on curve at distance
- Hatch Curve
- Increase NURBS Curve Degree
- Intersect Lines
- Line Between Curves
- Offset Curve
- Reparameterize Curves
- Reverse Curve
- Surface from Edge Curves
- Tween Curve
Drawing
Layers
Picking and Selection
Viewports and Views
Other
- Add Leader
- Add Radial Dimension
- Advanced Display Settings
- Array By Distance
- Boolean Difference
- Box Shell
- Calculate Surface Curvature
- Change Dimension Style
- Circle Center
- Closest Point Calculation with RTree
- Create Mesh from Brep
- Create Spiral
- Create Surface From Points and Knots
- Curve Surface Intersection
- Custom Geometry Filter
- Custom Python
- Custom Undo
- Determine Language Setting
- Determine Normal Direction of Brep Face
- Display Conduit Arrowheads
- Display Conduit
- Display Order
- Display Precision
- Divide by Length Points
- Duplicate Surface Border
- Duplicate Mesh Boundary
- Dynamically Drawing Text Strings
- Edit Text
- Explode Hatch
- Export Control Points
- Extend Surface
- Extract Render Mesh
- Extrude Brep Face
- Furthest Z on Surface given X Y
- Get Multiple With Options
- Increase NURBS Surface Degree
- Insert Knot
- Instance Archive File Status
- Instance Definition Names
- Instance Definition Tree
- Intersecting Line and Circle
- Is Planar Surface in Plane
- IsBrepBox Test
- Isocurve Density
- Loft Surfaces
- Mesh Volume
- Modify Light Color
- Move CPlane
- Move Points Non Uniform
- Move Points
- Object Iterator
- Orient On Surface
- Orthogonal Mode
- Planar Surface
- Project Points to Breps
- Project Points to Mesh
- Read Dimension Text
- Set RhinoPageView Width and Height
- Show Surface Direction
- Single Color Back Faces
- Space Morph
- Split BReps with Planes
- Sprite Drawing
- Surface from Corner Points
- Sweep Surfaces with Sweep1
- Text Justify
- Tight Bounding Boxes for Breps
- Transform Breps
- Tweak Colors
- Unroll Surface and Mesh
- Unroll Surface
- Visual Analysis Modes
Rhino.Python

- Hello Python
- Array Points on Surface
- Circle From Length
- Copy Objects to Layer
- Create Shortcut
- Get Current Model Information
- Get Curve Length
- Draw a Parametric Curve
- Export Control Points
- Garden Path Sample
- Export Points
- Annotate Curve Endpoints
- Import Points
- Annotate Curve Form
- Sticky Values
- Custom Getpoint
- Make a Circle with RhinoCommon
openNURBS

UNDER CONSTRUCTION
openNURBS samples have yet to be ported to this site. Please check back soon for updates. In the meantime, you can view the original documentation here: https://wiki.mcneel.com/developer/opennurbs/home or see the openNURBS samples bundled with the SDK.
C/C++ 
Adding Objects
- Add a Cone Surface
- Add Arrowheads to Curves
- Add Background Bitmaps to Viewports
- Add a Brep Box
- Add Clipping Planes
- Add a Cylinder
- Add a Line Curve Object
- Add a Linear Dimension
- Add a New Layer
- Add a NURBS Circle
- Add NURBS Curve
- Add Objects to a Group
- Add Spherical Surface
- Add Text
- Add Torus
- Add Truncated Cone
- Create Contour Curves
- Create New View
- Create a NURBS Circle
- Create NURBS Surface
- Create Plane Surface
- Create Surface from Edge Curves
- Creating NURBS Cage Objects
- Duplicate Object
- Fillet Curve
- Modify an Object's Name
- Surface from Control Points
Blocks
Curves
- Add a Line Curve Object
- Add NURBS Curve
- Calculate Curve Intersections
- Calculating Partial Lengths of Curves
- Calculate Radius of Curvature
- Control Point Curve Through Polyline
- Convert an Arc to a NURBS Curve
- Create Bounding Polyline of a Mesh
- Create Surface from Edge Curves
- Curve Evaluation
- Deviation between two Curves
- Divide a Curve by Length
- Divide a Curve by Segments
- Extend Curve
- Extracting Isoparametric Curves from Surfaces
- Intersect Curves with Meshes
- Intersect Line Curves
- Pull Curve to Surface
- Reparameterize Curve
- Split Curve Into Multiple Segments
Layers
Picking and Selection
Surfaces
- Add a Cone Surface
- Add Spherical Surface
- Calculate Solid Volumes
- Create NURBS Surface
- Create Plane Surface
- Create Surface from Edge Curves
- Determine the Maximum Z Coordinate Value of a Surface
- Duplicate the Borders of Surfaces
- Extend Surface
- Extracting Isoparametric Curves from Surfaces
- Loft Surfaces
- Pull Curve to Surface
- Sweeping Surfaces with Sweep1
- Sweeping Surfaces with Sweep2
Viewports and Views
- Create New View
- Get and Set Active Viewport
- Ghost Viewport
- Maximize View
- Screen Capture All Viewports
- Screen Capture Viewport
- Set a CPlane to a View
- Set a View's Construction Plane
- Shading Viewports
- Transform Screen to World Coordinates
- Transform World to Screen Coordinates
- Two View Layout
- Zoom Extents of Points
Other
- Attaching User Data to Brep Components
- Boolean Difference
- Calculate Mesh Volume
- Calculate the Angle Between Two Vectors
- Calculate Volume Centroid of Solids
- Change Construction Plane Modes
- CRhinoGetFileDialog to Preview Bitmaps
- Get Brep Face Vertices
- Hatch Boundary
- Intersecting Meshes
- Mesh Boolean Difference
- Mesh Boolean Intersection
- Meshing Objects
- Modify Grip Weight
- Move a Construction Plane
- ON_SimpleArray Utilities
- Replace Object Hatch Pattern
- Rotate Objects Around Center
- Set Command Prompt
- Show Hidden Objects
- Split Brep Edges
- Split Brep
- Synchronize Object Render Color
- Test if an Object is a Circle
Grasshopper 
UNDER CONSTRUCTION
Grasshopper Component samples have yet to be ported to this site. Please check back soon for updates. In the meantime, you can view the original documentation here: https://wiki.mcneel.com/developer/grasshopper/gha
RhinoScript 
Adding Objects
- Add NURBS Curve
- Add Points at Curve Endpoints
- Array Points on Surface
- Auto Label Objects
- Convert Dots to Text
- Create Box Frames
- Create Center Point on Closed Curve
- Create Square Pipes
- Create an Ellipsoid Parametrically
- Create an Icosahedron
- Drawing Steel Shapes
- Fibonacci Spirals
- Mark Points on a Line
- Multiple Pipe
- Platonic and Archimedean Solids
- Polar Arrays
- Random Surface Points
- Revolve Profile Curves
Blocks
Curves
- Curve Properties to Excel
- Divide Curve With Equidistant Points
- Divide Curve to Dashed
- Evaluate Curve Torsion
- Export Curve Control Points
- Extract Interpolated Curve Construction Points
- Extract Isocurve Intersection Points
- Find Closest Curve to Point
- Import Interpolated Curve
- Knot Multiplicity
- List Knot Vector of NURBS Curve
- Move Curve Grips
- Offset Curve
- Select Curves by Degree
- Set Length of Curve
- Splitting Curves into Segments
- Straightening Circles
- Trim Curve with Circle
Layers
Picking and Selection
Surfaces
Viewports and Views
Flamingo
- Assign Flamingo Material
- Flamingo Legacy Plant Browser
- Flamingo Object Mapping Properties
- Get Flamingo Material
- Get Mapping Information From Object
- Get Material List
- Get Plant Points
- Import Flamingo Material
- Modify Flamingo Plant
- Query Flamingo Plant Objects
- Query Plant Wireframe
- Tag Object As Flamingo Plant
- Un-tag an Object as a Flamingo Plant
Other
- Airfoil Shapes
- Arc Point Distribution
- Batch Convert AutoCAD Files
- Batch Render
- Batch Save Small
- Calculate the Angle Between Two Vectors
- Circle Packing
- Computer Physical Address
- Count Objects
- Create CutPlane
- Exploding Meshes
- Export Points to Excel
- Exporting Meshes to Geomview
- Extract Thumbnail Preview Images
- Get RGB Color Intensities
- Import Text from File
- Is Dynamic Array Dimensioned
- Join the Dots
- List AutoCAD Export Schemes
- List IGES Export Schemes
- Match Object Attributes
- Match Text Properties
- Mesh Volume Centroid
- Opening 3DM Files
- Perpendicular Vectors
- Rotate Object Around Point
- Rotate Plane Parallel to World
- Save Plugin List to File
- Save Video Card Info
- Saving Files
- Scale Text by Dimension Scale
- Select Multiple Files
- Set Material Colors from Object Colors
- Split File Path String
RhinoMobile

UNDER CONSTRUCTION
RhinoMobile samples have yet to be ported to this site. Please check back soon for updates. In the meantime, you can view the samples on GitHub here: https://github.com/mcneel/RhinoMobileSamples