developer:dotnetplugins


Rhino .NET Framework SDK

.NET Framework Plug-In Development (Rhino 4.0 and 5.0)

(Rhino 3.0 .NET plug-in development pages can be found here) Rhino ships with the necessary components to enable Rhino.NET plug-ins on users computers. Plug-ins can be created with a compiler that compiles assemblies using .NET 2.0, including:

  • C# 2008 (including Express) - be sure to target .NET 2.0
  • VB.NET 2008 (including Express) - be sure to target .NET 2.0
  • C# 2005
  • VB.NET 2005
  • SharpDevelop 2.0

Older versions of VB.NET and C# (ie 2001 and 2003) will not work

Downloads

What is .NET?

The term .NET can be confusing because it is used in several different contexts. With respect to Rhino, we are talking about the Microsoft .NET framework. This is a programming model that exposes Windows and its related services through an object oriented interface. The model is language neutral i.e any programming language that compiles to .NET intermediate language can use the .NET framework. Complete information on .NET is at: http://www.microsoft.com/net/

What is the Rhino.NET SDK?

Rhino.Net SDK helps developers to extend Rhino's functionality using 'Rhino plug-ins'. The Rhino.NET SDK provides the tools to develop Rhino plug-ins using a .NET programming language. This means that Rhino plug-ins can now be developed using VB.NET, C#, C++.NET, Delphi.NET (and the list goes on).

The Rhino.NET SDK is actually a wrapper around the Rhino C++ SDK. Most of the classes and methods provided by the C++ SDK are available through .NET.

Where is the Rhino.NET SDK?

The Rhino.NET SDK is composed of a rhino plug-in named RhinoDotNetManager.rhp and an assembly named Rhino_DotNET.dll located in the Rhino system directory. The Rhino_DotNET.dll assembly is what all Rhino.NET plug-ins reference to get exported classes and functions from Rhino. These files are installed with Rhino and are not a separate download.

What can I do with the Rhino.NET SDK?

The Rhino.NET SDK is designed to allow .NET developers to create Rhino plug-ins with the same capabilities as C++ developers.

Learning Resources

VB.NET School - Covers all you need to know to start programming in VB.NET.

C# School - Covers all you need to know to start programming in C#.

Questions

Post questions or read other people's questions/answers on the plug-ins newsgroup

Some of your questions may be answered by the DotNET Essentials page

Rhino.NET Articles

How To: Add a Spherical Surface to Rhino 2010/02/09 08:53  
How To: Add a Custom Menu to Rhino 2010/02/09 08:45  
Inflection point plugin 2010/02/09 08:23  
The Rhino Installer Engine (Beta) 2010/02/08 17:24 Brian Gillespie
Calculate the angle between two vectors 2010/01/26 16:37  
Changing the Display Precision 2010/01/26 16:37  
How To: Add a named view 2010/01/26 16:37  
.NET 2010/01/26 16:37  
Reading/Writing plug-in user data to a Rhino .3dm file 2010/01/26 16:37  
Moving Point Objects 2010/01/26 16:37  
C++, .NET 2010/01/26 16:37  
Info: Defining New Plug-in Commands 2010/01/26 16:37  
VB.NET plugin for Molecular modeling 2010/01/26 16:37  
How To: Determine Rhino's Language Setting 2010/01/26 16:37  
How To: Test if an Object is a Circle 2010/01/26 16:37  
.NET 2010/01/26 16:37  
Curve-Surface Intersection 2010/01/26 16:37  
DotNET Plug-in: base surface from a trimmed one 2010/01/26 16:37  
Info: Rhino 4.0 SDK: Textures and Mappings 2010/01/26 16:37  
.NET 2010/01/26 16:37  
How To: Move Objects to the Current Layer 2010/01/26 16:37  
Modifying an Annotation Object's Dimension Style 2010/01/26 16:37  
.NET 2010/01/26 16:37  
.NET 2010/01/26 16:37  
How to: Document Data commands in a Rhino.NET plug-in. 2010/01/26 16:37  
Finding the Centers of Circles 2010/01/26 16:37  
How To: Set a View's Construction Plane 2010/01/26 16:37  
How To: Modify an Object's Color 2010/01/26 16:37  
How To: Set a CPlane to a View 2010/01/26 16:37  
솔리드 개체의 체적 계산 2010/01/26 16:38  
뷰포트 스크린 캡처 2010/01/26 16:38  
Finding the Centers of Circles 2010/01/26 16:37  
Replacing a Hatch Object's Pattern 2010/01/26 16:37  
Detecting Custom Texture Mapping 2010/01/26 16:37  
Calculating the Volumes of Solid Objects 2010/01/26 16:37  
How To: Add a Cylinder to Rhino 2010/01/26 16:37  
How To: Determine an Object's Layer Name 2010/01/26 16:37  
Adding Textures to Objects 2010/01/26 16:37  
How To: Divide a Curve by Length 2010/01/26 16:37  
How To: Dynamically Draw Geometry when Picking Points 2010/01/26 16:37  
Determining the Normal Direction of a Brep Face 2010/01/26 16:37  
.NET 2010/01/26 16:37  
Creating Aligned Dimensions 2010/01/26 16:37  
How To: Retrieve the Unit System of the Active Document 2010/01/26 16:37  
How To: Interactively Pick an Angle 2010/01/26 16:37  
How To: Add a Linear Dimension to Rhino 2010/01/26 16:37  
Create a Bounding Polyline of a Mesh Object 2010/01/26 16:37  
Determining if a Brep is a Box 2010/01/26 16:37  
How To: Show All Hidden Objects 2010/01/26 16:37  
How To: Add a Truncated Cone to Rhino 2010/01/26 16:37  
Selecting Objects that are in a Group 2010/01/26 16:37  
How To: Modify the Weight of a Grip Object 2010/01/26 16:37  
Modifying Texture Intensity 2010/01/26 16:37  
Mesh Types 2010/01/26 16:37  
How To: Pick Point Objects 2010/01/26 16:37  
Create Surfaces From Corner Points 2010/01/26 16:37  
VB.NET plugin for Molecular modeling 2010/01/26 16:37  
How To: Add Objects to a Group 2010/01/26 16:37  
How To: Extend a Curve Object 2010/01/26 16:37  
Adding Arrowheads to Curves 2010/01/26 16:37  
솔리드 개체의 체적 중심 계산 2010/01/26 16:38  
How To: Clear Rhino's Undo and Redo Lists 2010/01/26 16:37  
C++, .NET 2010/01/26 16:37  
.NET 2010/01/26 16:37  
Extracting Isoparametric Curves from Surfaces 2010/01/26 16:37  
.NET 2010/01/26 16:37  
Adding command line options 2010/01/26 16:37  
How To: Move a Construction Plane 2010/01/26 16:37  
How To: Synchronize an Object's Rendering Color 2010/01/26 16:37  
Creating Sublayers 2010/01/26 16:37  
How To: Sweeping Surfaces using RhinoSweep1 2010/01/26 16:37  
How To: Extend a Surface 2010/01/26 16:37  
How To: Find the Parameter of a Curve at a Point 2010/01/26 16:37  
C++, .NET 2010/01/26 16:37  
.NET 2010/01/26 16:37  
How To: Replace Rhino's Color Picking Dialog 2010/01/26 16:37  
How To: Determine Rhino's Language Setting 2010/01/26 16:37  
Obtaining the Insertion Point of a Block 2010/01/26 16:37  
实现extractPt 2010/01/26 16:38  
Another Approach to Picking Objects 2010/01/26 16:37  
뷰와 화면 캡처 2010/01/26 16:38  
Info: Attaching User Data to Brep Components 2010/01/26 16:37  
Modifying Advanced Display Settings 2010/01/26 16:37  
Drawing Meshes 2010/01/26 16:37  
C++, .NET 2010/01/26 16:37  
FPU Issues 2010/01/26 16:37  
How To: Modify a Light's Color 2010/01/26 16:37  
Duplicate the Borders of Surfaces 2010/01/26 16:37  
3D 점 정렬 2010/01/26 16:38  
Loading failure of DotNET plugins 2010/01/26 16:37  
Rhino 3.0 .NET Framework SDK 2010/01/26 16:37  
Hatching Boundaries 2010/01/26 16:37  
An example of a VB.NET plugin with some nice advanced stuff in it. 2010/01/26 16:38  
Split a set of BReps with a plane 2010/01/26 16:37  
How To: Simplify polylines 2010/01/26 16:37  
How To: Select Objects 2010/01/26 16:37  
Setting a Viewport's Title 2010/01/26 16:37  
Divide a curve using equi-distance points. 2010/01/26 16:37  
An example of a VB.NET plugin with some nice advanced stuff in it. 2010/01/26 16:38  
Zoom to an Object 2010/01/26 16:37  
How To: Add a Line Curve Object 2010/01/26 16:37  
An example of a VB.NET plugin with some nice advanced stuff in it. 2010/01/26 16:37  
DisplayConduit Introduction 2010/01/26 16:37  
Displaying Toolbars in Rhino 4.0 2010/01/26 16:37  
How To: Modify an Object's Name 2010/01/26 16:37  
How To: Rename a Layer 2010/01/26 16:37  
Screen Capture a Viewport 2010/01/26 16:37  
How To: Loft Surfaces using RhinoSdkLoftSurface 2010/01/26 16:37  
.NET 2010/01/26 16:37  
How To: Get and Set the Active View 2010/01/26 16:37  
How To: Add Text to Rhino 2010/01/26 16:37  
Dynamically Drawing Text Strings 2010/01/26 16:37  
How To: Select All Objects on a Layer. 2010/01/26 16:37  
Divide a curve using equi-distance points. 2010/01/26 16:37  
Inflection point plugin 2010/01/26 16:37  
How To: Set a View's Construction Plane 2010/01/26 16:37  
Picking Text Dots with CRhinoGetObject 2010/01/26 16:37  
Lofting Surfaces that Maintain Tangency 2010/01/26 16:37  
How To: Move Objects to the Current Layer 2010/01/26 16:37  
Curve-Surface Intersection 2010/01/26 16:37  
How To: Show All Hidden Objects 2010/01/26 16:37  
Info: Defining New Plug-in Commands 2010/01/26 16:37  
Split a set of BReps with a plane 2010/01/26 16:37  
Retrieving Annotation Text 2010/01/26 16:37  
How To: Dump Debug Information to a Log File 2010/01/26 16:37  
Calculating Curve Intersections 2010/01/26 16:37  
Simple VB.NET Plug-In 2010/01/26 16:37  
How To: Create a Surface from Edge Curves 2010/01/26 16:37  
How To: Synchronize a Layer's Rendering Color 2010/01/26 16:37  
Determine the Deviation between two Curves 2010/01/26 16:37  
How To: Mesh Objects using RhinoMeshObjects 2010/01/26 16:37  
Creating Blocks 2010/01/26 16:37  
Enabling Orthogonal Mode 2010/01/26 16:37  
Offset a Curve 2010/01/26 16:37  
DotNET Plug-in: base surface from a trimmed one 2010/01/26 16:37  
Info: Plug-in Loading 2010/01/26 16:37  
Intersecting Line Curves 2010/01/26 16:37  
C++, .NET 2010/01/26 16:37  
How To: Simplify polylines 2010/01/26 16:37  
How To: Iterate through Rhino's Geometry Table. 2010/01/26 16:37  
Reversing the Direction of Curves 2010/01/26 16:37  
Shading Viewports 2010/01/26 16:37  
Calculating the Volume Centroid of Solid Objects 2010/01/26 16:37  
How To: Divide a Curve by Segments 2010/01/26 16:37  
How To: Add a Truncated Cone to Rhino 2010/01/26 16:37  
How To: Test if an Object is a Circle 2010/01/26 16:37  
Showing Dynamic Object Transformations 2010/01/26 16:37  
Block Definition Geometry 2010/01/26 16:37  
Calculate Surface Curvature 2010/01/26 16:37  
Info: What is a Rhino Plug-in? 2010/01/26 16:37  
Dealing with commas and periods 2010/01/26 16:37  
Moving Point Objects 2010/01/26 16:37  
Creating Radial Dimensions 2010/01/26 16:37  
Identifying Curve Shapes 2010/01/26 16:37  
How To: Pre-Pick and Post-Pick Objects 2010/01/26 16:37  
Projecting Points to Breps 2010/01/26 16:37  
Creating a Leader 2010/01/26 16:37  
Class Prefixes in the Rhino .NET SDK 2010/01/26 16:37  
How To: Create Contour Curves 2010/01/26 16:37  
Simplifying a Curve 2010/01/26 16:37  
Calculate the angle between two vectors 2010/01/26 16:37  
View and Screen Capture 2010/01/26 16:37  
Adjusting Surface Isocurve Density 2010/01/26 16:37  
Reading/Writing plug-in user data to a Rhino .3dm file 2010/01/26 16:37  
C++, .NET 2010/01/26 16:37  
Determine the Maximum Z Coordinate Value of a Surface 2010/01/26 16:37  
How To: Copy a CRhinoObject Object 2010/01/26 16:37  
Bounding Box of a Curve Object 2010/01/26 16:37  
How To: Sweeping Surfaces using RhinoSweep2 2010/01/26 16:37  
Orienting Objects on a Surface 2010/01/26 16:37  
How To: Add a Torus to Rhino 2010/01/26 16:37  
Transforming Brep Objects 2010/01/26 16:37  
Calculating the Volumes of Mesh Objects 2010/01/26 16:37  
How To: Run a Rhino Command from a Plug-in Command 2010/01/26 16:37  
How To: Create a Custom CRhinoGetObject Class 2010/01/26 16:37  
An example of a VB.NET plugin with some nice advanced stuff in it. 2010/01/26 16:38  
Using Express Editions of VB.NET and C# 2010/01/26 16:37  
Applying Non-Uniform Transformations to Objects 2010/01/26 16:37  
How To: Set a CPlane to a View 2010/01/26 16:37  
Sorting 3-D Points 2010/01/26 16:37  
3D 점 정렬 2010/01/26 16:38  
How To: Modify an Object's Color 2010/01/26 16:37  
How to: Document Data commands in a Rhino.NET plug-in. 2010/01/26 16:37  
How To: Get an Object's UUID 2010/01/26 16:37  
How To: Boolean Difference 2010/01/26 16:37  
Sorting 3-D Points 2010/01/26 16:37  
Extract Thumbnail Preview Image 2010/01/26 16:37  
实现extractPt 2010/01/26 16:38  
Rhino4.NET Project and Command Wizards 2010/01/26 16:38  
Info: Rhino 4.0 SDK: Textures and Mappings 2010/01/26 16:37  
How To: Create a Plane Surface 2010/01/26 16:37  
서페이스 아이소커브 밀도 조정 2010/01/26 16:38  
커브 교차의 계산 2010/01/26 16:38  
Adjusting Clipping Planes from a Conduit 2010/01/26 16:37  
Comparing Planar Surfaces and Planes 2010/01/26 16:37  
How To: Add a Mesh Object to Rhino 2010/01/26 16:37  
How To: Add a New Layer 2010/01/26 16:37  
How To: Add a Brep Box Rhino 2010/01/26 16:37  
Adding Background Bitmaps to Viewports 2010/01/26 16:37  
Circle Packing Plugin 2010/01/26 16:37  
.NET 2010/01/26 16:37  
Info: Registering Plug-ins 2010/01/26 16:37  
How To: Move a Construction Plane 2010/01/26 16:37  
How To: Mesh Objects using RhinoMeshObjects 2009/06/26 08:24  

Rhino 4.0 .NET SDK Samples

Batch Render with VB - creates a console application that will batch render a folder of 3dm files. Demonstrates how to access RhinoScript from an external .NET application.

BrepSamples - demonstrates how to create a planar face with hole, and how to create a trimmed planar face in C#.

Docking Dialog with VB - creates a custom user control in VB.NET that works as a dockable dialog in Rhino.

Docking Dialog with C# - creates a custom user control in C# that works as a dockable dialog in Rhino.

Event Watcher with VB - create a class that is notified when changes occur in Rhino.

Extend Object Properties with C# - demonstrates how to extend Rhino's Object Properties window.

Object Manager in C# - creates a docking dialog of object uuids that responds to selection events.

Read Points from a Text File in C# - Uses System.IO.StreamReader to read from a text file.

developer/dotnetplugins.txt · Last modified: 2010/02/03 11:58 by steve Driven by DokuWiki Recent changes RSS feed

 © 1997-2010 

McNeel North America Europe Latin AmericaAsia