# Rhinoceros - Modeling Tools for Designers
> Design, Model, Present, Analyze, Realize...
--------------------------------------------------------------------------------
# Video player
Source: https://www.rhino3d.com/en/video/
Video player
--------------------------------------------------------------------------------
# Bankcard Verification Code
Source: https://www.rhino3d.com/en/vcode/
This page tells you how to find the verification code on the back of your card.
Your verification code is located on the back of your card. It is a three-digit, non-embossed number printed on the signature panel. If there are more than three digits in the number, the card verification code is the **rightmost three digits**.

--------------------------------------------------------------------------------
# Grasshopper Player
Source: https://www.rhino3d.com/en/features/grasshopper/player/
Turn your Grasshopper definitions into Rhino commands.
This feature brings a new set of Grasshopper components that bring inputs/outputs from Grasshopper to the Rhino Command Line. Grab inputs, define types and outputs for your command to run or print to the command prompt:

With only this handful of additional components, you can wrap your definitions as Rhino commands that create building components, such as walls...
...or even complex parametric assemblies such as curving masonry...
## Try It
*
* Download the [ Lamp.3dm](Lamp.3dm) model and the [ Lamp.gh](Lamp.gh) definition.
* Open *Lamp.3dm*, run the `GrasshopperPlayer` command, enter the path to the downloaded, _Lamp.gh_, and follow the command prompts.
* Try out a couple more examples: [ Wall.gh](Wall.gh) and [ BrickWall.gh](BrickWall.gh).
* [Ask questions and give feedback](https://discourse.mcneel.com/c/grasshopper/2).
--------------------------------------------------------------------------------
# PBR Materials
Source: https://www.rhino3d.com/en/features/rendering/materials-and-textures/pbr/
For rendering professionals who wants realistic looking materials when rendering inside Rhino, Physically Based Rendering materials are beautiful and easy to use.
That’s not all that makes PBR materials superior; they are also easier to design. You can create a material yourself or download a PBR material from [Poly Haven](https://polyhaven.com/) or [ambientCG](https://ambientcg.com/) and load it into Rhino directly from the zip file.
## Before and After
PBR materials correspond much better with a physical material's characteristics than the old custom materials found in previous versions of Rhino…
## Try It
*
* Navigate to the _Material Editor_.
* Click the sign and, from the list, choose to add a _Physically Based Material_  or _Create Physically Based Material from texture files_... 
* Ask questions and give feedback on the [Discourse Forum](https://discourse.mcneel.com).
--------------------------------------------------------------------------------
# Trademarks
Source: https://www.rhino3d.com/en/mcneel/trademarks/
This page lists the trademarks of TLM, Inc., doing business as Robert McNeel & Associates®.
The following are registered trademarks of TLM, Inc., doing business as Robert McNeel & Associates®.
* Rhinoceros®
* Rhino®
* Rhino3D®
* Flamingo®
* Bongo®
* Grasshopper®
* openNURBS®
* RhinoInside®
* Rhino Inside®
* RhinoCompute®
* Robert McNeel & Associates®
The following are trademarks of TLM, Inc., doing business as Robert McNeel & Associates®.
* Rhino for Mac™
* Rhinomac™
* iRhino 3D™
* The Zoo™
* CloudZoo™
**NOT:**
* Rhinoceros 1.1 or Rhinoceros v. 1.1 or Rhinoceros ver. 1.1
* Rhinoceros 2 or Rhinoceros v. 2 or Rhinoceros ver. 2.0
* Rhinoceros 3 or Rhinoceros v. 3 or Rhinoceros ver. 3.0
* Rhinoceros 4 or Rhinoceros v. 4 or Rhinoceros ver. 4.0
* Rhinoceros 5.0 or Rhino 5.0
* Rhinoceros 6.0 or Rhino 6.0
* RhinoCAD
* Rhino 3D, Rhinoceros 3D, or Rhino3D
* MacRhino, Rhino for OS X, or Rhino OS X
## Usage
The current product name is **Rhinoceros**, **Rhino**, **Rhinoceros 8**, or **Rhino 8**.
Use "Rhinoceros®" or "Rhino®" the first time you use the name in text. After that, the name can be shortened to "Rhino."
The ® special character only needs to appear once in the document. The ® can be replaced by saying, "Rhinoceros is a registered trademark of Robert McNeel & Associates."
When the Rhino graphic is displayed on a webpage, use this [SVG file](/reseller/graphics/RhinoLogo.svg). It can also be used on print materials.
In a graphic, Rhinoceros, in Arial bold type, should be printed on black with the "Rhino" in white and "ceros" in red.
When the Rhino graphic is printed on a white background, "Rhino" is black and "ceros" is red (Pantone `185c` or RGB `255,0,0`).
When the Rhino graphic is monochrome on a black background, "Rhino" is white and "ceros" is 50% gray.
When the Rhino graphic is monochrome on a white background, "Rhino" is black and "ceros" is 50% gray.
## #hashtags
Please use these:
* `#rhino3d`
* `#grasshopper3d`
## Microsoft Trademarks
Details on using Microsoft trademarks can be found [here](http://www.microsoft.com/en-us/legal/intellectualproperty/Trademarks/Usage/General.aspx).
## Apple Trademarks
Details on using Apple trademarks can be found [here](https://developer.apple.com/softwarelicensing/agreements/maclogo.php).
--------------------------------------------------------------------------------
# Denoisers
Source: https://www.rhino3d.com/en/features/rendering/denoisers/
Produce beautiful renderings in a fraction of the time using Denoiser Post Effect filters. Denoisers use AI to remove the grainy "noise" from your draft renderings, dramatically reducing the time to reach a high-quality image.
This image took about 10 seconds to render on modern hardware:
## Try It
1.
1. Run the `PackageManager` command.
1. Search for the denoiser you want to install. Available denoisers are:
* *Intel denoiser* (Works on most systems, recommended for Rhino for Mac)
* *NVIDIA denoiser* (For Windows computers with modern NVIDIA GPUs)
* *AMD denoiser* (For systems with modern AMD GPUs)
1. Select a denoiser and click *Download and Install*.
1. When the installation finishes, restart Rhino.
1. Render your image and in the *Post Effects tab*, add and check the *Denoiser* checkbox once the rendering has finished.
1. Ask questions and give feedback on the [Discourse Forum](https://discourse.mcneel.com).
--------------------------------------------------------------------------------
# LayerBook
Source: https://www.rhino3d.com/en/features/layerbook/
Use LayerBook to create slideshow style presentations in your models using Rhino directly.
## Try It
-
- Download and open the [ LayerBook-Demo.3dm](LayerBook-Demo.3dm) model.
- Run the `LayerBook` command.
- In the command-options, click the *Next* or *Previous* options or type `1` and press *enter* to rewind to the first layer.
- To learn to use `LayerBook` in depth, download and open the [ LayerBook-Instructions.3dm](LayerBook-Instructions.3dm) model and follow along.
- Ask questions and give feedback on the [Discourse Forum](https://discourse.mcneel.com).
--------------------------------------------------------------------------------
# QuadRemesh
Source: https://www.rhino3d.com/en/features/quadremesh/
QuadRemesh lets you create a quad-dominant mesh from mesh and NURBS geometry.
## Try It
*
* Download and open the [ QuadRemeshScrolls.3dm](QuadRemeshScrolls.3dm) model.
* Run the **`QuadRemesh`** command, or click the QuadRemesh button on the SubD toolbar.
* [Read the Help Documentation for QuadRemesh](https://docs.mcneel.com/rhino/8/help/en-us/commands/quadremesh.htm).
* [Ask questions and give feedback](https://discourse.mcneel.com/).
* Grasshopper users can use the new QuadRemesh components.
* Developers: `Rhino.Geometry.Mesh.QuadRemesh()` is available in RhinoCommon for use in C# and Python.
## Examples
Horse mesh after retopology Find the principal curvature with the help of the guide curve feature (highlighted in red) Multiple resolutions for optimized SubD conversion, UV Mapping, 3D Printing, etc. Symmetry for organized topology. Hard edge detection to preserve sharp corners Remesh to SubD to soften hard to fillet areas for rendering.
## Before and After
## See Also
* [Is Your Mesh Really Good to Go?](/for/medical-and-dental/quadremesh/) - QuadRemesh for the medical and dental industry
--------------------------------------------------------------------------------
# Clash Detection
Source: https://www.rhino3d.com/en/features/grasshopper/clash-detection/
Quickly search a large number of objects to find points of intersection between pairs of clashing objects.
## BIM Clashes
Take advantage of the Clash component along with any other Grasshopper plugin, including [Rhino.Inside.Revit](/features/rhino-inside-revit), to see where elements overlap:

## Try It
*
* Download and open the [ Clash.gh](Clash.gh) definition in Grasshopper.
* Developers: `Rhino.Geometry.Intersect.MeshClash()` is available in RhinoCommon for use in C# and Python. [Details...](https://github.com/mcneel/rhino-developer-samples/blob/7/rhinocommon/cs/SampleCsCommands/SampleCsClashMeshes.cs)
* Ask questions and give feedback on the [Discourse Forum](https://discourse.mcneel.com).
* Are you just looking to find clashes within your Rhino model? There's no need to run it from Grasshopper; you can also run the `Clash` command within Rhino itself...
--------------------------------------------------------------------------------
# Grasshopper Component Placeholders
Source: https://www.rhino3d.com/en/features/grasshopper/placeholders/
Placeholder component for missing plugins.
This is often useful when updating older definitions. Once the definition is open, you can find and replace them with the correct components.
## Find The Missing Pieces
Placeholders are just temporary. Now, to get that definition working, visit:
* [Food4Rhino](https://www.food4rhino.com): Apps for Rhino and Grasshopper.
* [Package Manager](/features/package-manager):
--------------------------------------------------------------------------------
# Named Selections
Source: https://www.rhino3d.com/en/features/named-selections/
Named Selections to quickly save and restore previously selected objects or sub-objects.
Use the NamedSelections command to quickly save and restore previously selected objects or sub-objects.
* Enhance productivity by switching between object selections faster.
* Create complex sub-object selections for faster [SubD](/features/subd) workflows.
* Quickly filter selected objects by their object types.
## Try It
-
- Download and open the [ Key.3dm](Key.3dm) model.
- Run the **`NamedSelections`** command, or click the *Named Selections* icon in the *Select* toolbar and click a selection set.
- [Read the Help Documentation for NamedSelections](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#commands/namedselections.htm).
- [Ask questions and give feedback](https://discourse.mcneel.com/).
--------------------------------------------------------------------------------
# Serengeti
Source: https://www.rhino3d.com/en/stories/serengeti/
Serengeti, named after the largest African Savanna, is where Rhino grows.
[](https://discourse.mcneel.com/c/serengeti)
## Overview
[Serengeti](https://discourse.mcneel.com/c/serengeti), named after the largest African Savanna, is where Rhino grows.
[We like to involve users in every phase of the Rhino development process](http://developer.rhino3d.com/guides/general/developing-software-in-public/). As with prior releases, we invite current users to try, test, and provide feedback on the next release while still in development so you can participate in the development beyond the upcoming release.
Since many development efforts span more than one release, we have set up the Serengeti Project to give users more direct influence on all future Rhino developments.
That means you always have access to the weekly [Work-In-Progress (WIP)](https://www.rhino3d.com/download/rhino/wip) builds of everything we are working on, no matter when or if it will be released. Rhino WIP builds are where we develop future features, like [Grasshopper 2](https://discourse.mcneel.com/c/serengeti/grasshopper2/75), [Flair: Non-Photorealistic Display Styles](https://discourse.mcneel.com/t/rhino-8-wip-feature-flair/149843), [Constraints](https://discourse.mcneel.com/t/rhino-8-feature-constraints/138737), and more.
You will also have access to our [developer discussions](https://discourse.mcneel.com/c/serengeti/developer), developer notes, and [issues tracking system](https://mcneel.myjetbrains.com/).
We look forward to your input on future releases of Rhino and the Serengeti Project infrastructure.
## What's Beyond Rhino 8?
_Rhino 8 owners_ can [download and test](https://www.rhino3d.com/download/rhino/wip) Work-In-Progress versions of Rhino in-development (Rhino WIP access).

### Access
_Join_ the [Serengeti forum](https://discourse.mcneel.com/c/serengeti) to discuss and help prioritize features in development with expert users and developers.
[](https://discourse.mcneel.com/t/welcome-to-serengeti/9612)
### Experiment
Test out the early beta versions of the Rhino WIP (Work-In-Progress) builds, including:
* [Grasshopper 2](https://discourse.mcneel.com/c/serengeti/grasshopper2)
[](https://discourse.mcneel.com/c/serengeti/grasshopper2)
* [Flair: Non-Photorealistic Display Styles](https://discourse.mcneel.com/t/rhino-8-wip-feature-flair/149843)
[](https://discourse.mcneel.com/t/rhino-8-wip-feature-flair/149843)
* [Constraints](https://discourse.mcneel.com/t/rhino-8-feature-constraints/138737)
[](https://discourse.mcneel.com/t/rhino-8-feature-constraints/138737)
* More to come.
--------------------------------------------------------------------------------
# Knife Handle: Create Fading Features
Source: https://www.rhino3d.com/en/docs/guides/subd/subd-crease/
Learn how to create fading features using SubDCrease

**Real world products** are made of flowing surfaces that are visually enriched with details such as fading chines, indents, bosses, chamfers, and so on. Breaking surface flow with feature lines that are then washed out into the continuous flow of a surface set is a common design intention that can be achieved in many ways.
In this tutorial, we will discover how to use the SubDCrease command to help us create variable 'weighted edges', or softened creases along SubD edges. **With this command, we can create a feature somewhere between a smooth edge and a creased edge without adding complexity to the SubD control net**. Weighted edges have continuous surface tangent and curvature and are a good tool for making fillet-like features.
## 1. Preparing the Curves
>
Start by opening a *Small Objects - Millimeters.3dm* file by running the New command. The first modeling step consists of creating the profile curves Top viewport. We need three curves:
>> 1. The **upper profile** of the handle
>> 2. The **middle curve** that defines the washed-out crease
>> 3. The **bottom profile** of the handle

A curve is a freeform shape. To control its overall size, we can draw curves inside a rectangle that has the real size dimensions of our object. Run the Rectangle command to create this bounding box. Place the **First corner of rectangle** at 0 so it is centered in the grid of the Top viewport. Then set the **length** to 120 and the **height** to 25.
Remember to press Enter after each value to get to the next stage of the command prompt. The model measurements are in millimeters.
Use the Curve command and follow the prompts. This command allows you to place points in space. They are called **control points** and they define the curve's shape. **Place the least amount of control points to obtain the desired shape**.

Alternatively, download and open the [ knife-curves.3dm](knife-curves.3dm) model with the curves prepared.
>
## 2. Creating the Base Surface
>
We will use an intermediate step to get to the actual SubD handle, that consists of creating a dummy surface which we will later convert into a mesh (then a SubD) using the QuadRemesh command. The reason is that this tool has built-in options that allow you to control the flow of the quads. So we can include the **middle curve** in the description of our object at an early stage.
Run the Loft command and select the **upper** and **bottom** curves only.

Maintain the default settings: **Style** set to *Normal* and under **Cross-section curve options** keep *Do not simplify*. Then click **OK** to validate.
In this step, we will convert the loft surface into a SubD while using our **middle curve** to influence how the SubD faces will flow. **This flow will determine the shape of our crease.** To this effect, select the loft surface and run the QuadRemesh command. Make sure to map the following settings:

You might have to adjust the amount of **Target Quad Count** to obtain a better fit for your set of curves.
To bring the influencing curve into the process, click on 1 *Select Curves*. Pick the **middle curve** in the viewport. Then back in the dialog, by **Curve Influence**, select 2 *Create Edge Loop*.
We now have a SubD object with the appropriate topology.
>
To unclutter the scene, go to the Layer Panel and make sure to change or copy the geometry onto a new layer using the CopyToLayer command. This way you can always go back to a previous step of your geometry construction.
## 3. Building the Main Body
>
Switch to the Perspective view. Click on **Gumball** on the [Status Bar](/images/rhino-user-interface/status-bar.png)so it is active. Select the SubD. You'll notice the Gumball Widget appears. Click on the [Gumball Extrude Dot](https://www.rhino3d.com/docs/guides/general/gumball-basics/#3-widgetry), type in **4**, then press Enter. We have just used the Gumball to extrude the SubD 4 units in height.

Let's switch the viewport's display mode to [Shaded](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#options/view_displaymodes_shaded.htm). You'll notice the hard edges on the extruded SubD. To smooth these out, run the RemoveCrease command. Double-click anywhere along the hard edge, to select the whole chain. Do the same for the second hard edge. Then press Enter.

## 4. Tutorial Shortcut
For those of you who wish to learn about creasing only and prefer to skip building the main body, feel free to download [ knife-curves-body.3dm](knife-curves-body.3dm) and take it from there.
>
## 5. Creating the Fading Crease
>
Now let's get started with our fading creases!
We will select a range of edges that roughly correspond to our initial **middle curve**. We can achieve this by [sub-object selecting](https://www.rhino3d.com/docs/guides/general/gumball-basics/#7-sub-object-selection) the first edge and double-clicking the last edge of our range.

With our soon-to-be-creased edge selected, type the SubDCrease command. You'll notice points get highlighted all along, with a value of **0%** at the start and end point. At this moment, you can dynamically click on any of these points and type weight values going from **0%** to **100%**.

SubDCrease command is designed to create a constant soft crease or a graded soft crease. Consider the highest value, 100%, the sharpest this soft crease command can attain. If you want an absolute sharpness, you're better off using the Crease command.
To select our modified edge again, select the SubD and type the SelSubDEdges command. In the *Command Line*, make sure **Weighted = Yes** or click on it to toggle. Press Enter to validate. With the creased edge selected, enable the [Gumball](https://www.rhino3d.com/docs/guides/general/gumball-basics/#1-activating-the-gumball) and click on the blue arrow to move the edge **2** units (in the vertical direction).

SubDCrease only works on internal SubD edges. Use Crease or SubDExpandEdges to achieve different effects on external or naked edges.
At this point, feel free to select the soft crease edge or a portion of it and move it up or down to wash out or accentuate the effect.
## 6. Finishing the Main Body
We'll finish the main body by mirroring it with a special SubD command...
To "mirror" the SubD, we will use the Reflect command. This special mirroring command allows us to maintain symmetry of all forthcoming edits on both sides. To successfully place the **reflection plane**, the action must occur in the appropriate view or Cplane. Run the command while being in the Front view. Select the SubD and click two points along the SubD edge to place the plane in the right orientation. You can also click on the **XAxis** option in the *Command Line*.
Note: The grid and display have been modified for visualization purposes.
You'll notice the reflected underside is slightly darker than the original side, indicating which is the *child*. Modify the original side and see how the *child* updates.
## 7. Sculpting the Neck
Let's sculpt the "neck" area, where the blade insert would go...
We will start by [sub-object selecting](https://www.rhino3d.com/docs/guides/general/gumball-basics/#7-sub-object-selection) the top faces and extruding twice using the [Gumball extrude handle](https://www.rhino3d.com/docs/guides/general/gumball-basics/#3-widgetry).

We will now scale the selected faces in 3D using the [Gumball scale handle](https://www.rhino3d.com/docs/guides/general/gumball-basics/#3-widgetry). We'll [relocate the Gumball](https://www.rhino3d.com/docs/guides/general/gumball-basics/#5-relocation) at the bottom of the extruded faces to rotate them around the [Gumball's XY rotate handle](https://www.rhino3d.com/docs/guides/general/gumball-basics/#3-widgetry). This will give them a bit of an inclination.

We are at the point where we will add more creasing to the neck. Double-click on the edge corresponding to the first face we extruded. Run the SubDCrease command and set your varying crease intensities by clicking on the highlighted vertex points as we did in Chapter 4.
Note: A value of 0% creasing at the top and 100% at the bottom of the neck area.
You can use the Slide command, moving the selection up and down to increase or soften the effect.

To finish, we will add a constant crease to the top edge. It will make the area planar while adding a rounded transition at the intersection. [Sub-object select](https://www.rhino3d.com/docs/guides/general/gumball-basics/#7-sub-object-selection) the edge and run the SubDCrease command. Click on the **ConstantWeight** option in the *Command Line* and set it to any value of your liking.
SubDCrease with a Constant Weight of 70%.
You can continue sculpting the model using the same tools as above. Once done, remember to remove the reflection by selecting your SubD and running the Reflect command. Then click on the **RemoveExistingReflectSymmetry** option in the *Command Line*.
Feel free to download the model's final edition, which includes the blade and materials applied [ knife-final.3dm](knife-final.3dm).
You can also experiment using other commands that soften or harden SubD edges. We recommend exploring the use of: Crease
SubDExpandEdges and
Bevel tools.
>
**Any questions?** Email vanessa [at] mcneel [dot] com
>
--------------------------------------------------------------------------------
# Create a Parametric Brick Wall Texture
Source: https://www.rhino3d.com/en/docs/guides/grasshopper/rendering/
Learn how to use the Group and Filter Content components in Grasshopper
## Learn More
Watch our [Discover Grasshopper Data Types](https://vimeo.com/941424386) video or visit our [What's New in Rhino 8](https://www.rhino3d.com/8/new/#grasshopper-rhino-data-types) page for an overview of these features.
Learn how to use other Data Type components in the following guides:
--------------------------------------------------------------------------------
# Grouping and Filtering Data
Source: https://www.rhino3d.com/en/docs/guides/grasshopper/group-sort-filter/
Learn how to use the Group and Filter Content components in Grasshopper
---
## Grouping and Filtering
Have you ever wanted more granularity over the data or objects inside of Grasshopper? For example, have you ever wanted to select only the objects in your model that have a particular material applied to them (i.e. glass)? Or maybe you wanted to remove all surfaces in your model that were on a specific layer and whose area was smaller than a certain value. Could you do it (easily)?
**Grasshopper 1 for Rhino 8 has new components which will help you manage your data more effectively.**
To explain how these new components work, it is best to start with a simple example. In this [ massing model](GroupingAndFiltering.3dm) there are BREPs representing the outside envelope of the buildings and surfaces which serve as the floors. The objects have been placed on different layers and have been assigned different colors based on their use type (office, residential, etc.).
Most of the objects also have some meta data attached to them as user text entries. You can find this data by selecting an object in the model and the opening the Object Properties panel. At the top of this panel, you should see several icons. Click on the one labeled **Attribute User Text**.
>
Let’s begin this tutorial by figuring out the overall area of each building in our massing model. We have three building masses in our model. Each of the floor plates have a Building ID number assigned to them as a user text entry.
>
## Grouping Content
To get started, Let's open the Grasshopper editor and click on File -> New Document to start a new definition.
To find the overall floor area of each building, we need to first reference all of the floors in our Rhino model into our Grasshopper definition.
This tutorial is all about filtering data. Since we organized our model by layers, we can filter for the floors by using the Layer input of the **Query Model Objects** component (found under the Rhino tab and Object subcategory). By using the “*” wildcard after the word Floors, it will select all the objects on the Floors sublayers.
Hovering over the Objects output parameter shows us that we have 31 surfaces that represent each of the floor plates in our model.
Next, we need to group each of these floor plates using the Building ID as our grouping criteria. Let’s use the **Group Content** component (found under the Rhino tab and Content subcategory) and connect the output of the query component to the *Content* input.
This component uses the *Key* input to determine how to group content into different data tree branches. When you right-click on the *Key* input, you will be presented with a few options.
*Select Type* - In this drop-down you can select what type of data you want to split into different groups. In this case, we want to group all of the surfaces which represent Floors, so we can select **Model Object** from the drop down menu since these floors are objects in our Rhino model.
*Select Property/Key* - Depending on the drop-down menu selection above, the tree-view control will display a list of available properties or keys that you can use as the filtering criteria. Here, we want to find the **User Text** node in the tree view control and click on the "plus" icon next to it to expand all of its child nodes. We want to group the surfaces based on their **Building ID** value, so select that child node in the tree.
Looking at the Content output, all of the floors have now been separated into different branches according to the Building ID number. The Values output returns a list of all the unique key values that it found in the content. In this case we see a list of three values (1, 2, and 3) which correspond to the unique ID values that were found in the list of content as well as the data tree branches of the grouped content.
The last step in this process is to add up all the area on each branch of our data tree. Since all of our floor surfaces are now separated into different branches, it’s quite easy to pass the output of the *Group Content* component into an **Area** component and then add all of those values together using a **Mass Addition** component.
From the Grasshopper definition above, we can determine that:
* **Building 1 = 43,622 sf**
* **Building 2 = 36,626 sf**
* **Building 3 = 5,736 sf**
The beauty of this workflow is how easy it is to change the grouping criteria. For example, let's say that you wanted to determine the total square footage of the different usage types (Residential, Office, Commercial, etc.) rather than simply the total square footage of each building. In this scenario, we simply need to change the *Key* property to "Use Type". Everything else can stay the same.
By switching the grouping criteria to "Use Type", the sum total square footage is as follows:
* **Commercial = 21,740 sf**
* **Educational = 5,736 sf**
* **Mixed Use = 11,326 sf**
* **Office = 23,972 sf**
* **Residential = 23,210 sf**
## Filtering Content
In addition to grouping, we also can filter content based on whether a certain condition is met. Typically, a filtering condition will compare one object property to another and return a boolean value (True or False). Think, is x equal to y? Or is x greater than or equal to y? We can also combine those rules into more complex expressions using operators.
So, let’s take our existing model and create a series of filters which will separate the floor plates according to the following criteria:
1. Use Type must be of type "Office" AND
1. The floor area must be larger than 2,250 sqft AND
1. The floor area must also be smaller than 2,500 sqft
Let's start by creating a new Grasshopper definition. In the Grasshopper file menu, click on File -> New Document. Just like in the previous example, let's use the **Query Model Objects** component with the *Layer* filter set to "Floors" to reference all of the floor surfaces into our Grasshopper document. The output should contain 31 surfaces that represent each of the floor plates in our model.
Next, let's create a filter which defines our first condition above - filter all floor plates whose use type equals the "Office" type. Under the Rhino tab and Content subcategory, there are a number of different filters available to us, several of which can check for equality. However, for this tutorial, let's start by adding a **Match Text Filter** component onto our canvas.
The **Match Text Filter** is an incredibly powerful and flexible component for text comparisons. In this filter we want to go through each floor plate and extract the value assigned to the "Use Type" user text entry. We will then compare that value to see if it matches the word "Office" and filter the objects accordingly.
The Match Text Filter has three modes by which it can operate. If you right-click on the middle of the **Match Text Filter** component, you will see a list of three modes:
In this example, we are only interested in text values that *Equal* the word "Office". So, let's select the **Equals** mode in the right-click menu of the Match Text Filter.
Next, we need to specify the *Key* input to determine how to filter the content. Again, just like in the previous example, we can right-click on the Key input and select "Model Object" from the drop-down menu and the select "User Text" and then "Use Type" from the tree-view control.
The last step is to define the *Pattern* input of the Match Text Filter to define what text value we will be comparing against. For this example, we want to check if the Use Type value equals the word "Office". Let's add a text panel with that word and connect it to the *Pattern* input.
Now, that we have created a filter, we need to add a **Filter Content** component onto our canvas to perform the actual filtering action. The content that we want to filter are the 31 BREPs that are returned from the **Query Model Objects** component. And, the filter we want to use is the one we just created using the Match Text Filter.
Looking at the output, we now have only 10 surfaces which matched our filtering criteria (i.e. those floors plates which correspond to the "Office" use type). However, we aren't quite done. We also wanted to filter the floor plates based on which ones area were larger than 2,250 but less than 2,500 sqft.
Let's add a **Greater Than Filter** component and place it underneath our **Match Text Filter** component. Just as before, we need to set the *Key* input to define what value we want to compare in this filter. In this case, we want to set the Key to look at the **Area** user text value. So, right-click on the Key input and select "User Text" and then "Area" from the tree-view control.
Next, we need to define a numeric value to compare our area value to. Let's add a **Numeric Slider** (found under the Params tab and Input subcategory) and set the value to 2,250. You may set the minimum and maximum of this slider to whatever you want, but I have chosen values of 2,000 and 2,500 respectively.
We've now created a filter which checks for floor plates that are larger than 2,250 sqft. Let's create another one which looks for floor plates that are smaller than 2,500 sqft.
Add a **Smaller Than Filter** component beneath the Greater Than Filter we just created. Set the *Key* input to the Area user text value. Select the slider we just created and Copy/Paste another one onto our canvas. Set the value of this new slider to 2,500 and connect its output to the *Value* input of the Smaller Than Filter.
We now have three filters in our definition which match the criteria we defined above. However, we need to combine these together so that all three filters have to be true in order for the content to be filtered correctly. To do this, let's use the **Intersection Filter** component.
The Intersection Filter let's you combine multiple filters together and will return TRUE only if all input filters evaluate to TRUE. Holding the SHIFT key down, connect the output of our three filters into the *Filters* input of the Intersection Filter.
Lastly, replace the Match Text Filter that is connected to the *Filter* input of the **Filter Content** component with the output of the Intersection Filter. Your definition should look like the image below.
You'll notice that we now only have 5 BREPs that are returned from the **Filter Content** component. These are the 5 floor plates that match the "Office" use type and are also larger than 2,250 sqft but less than 2,500 sqft.
## Try It
* Download and open the [ GroupingAndFiltering.3dm](GroupingAndFiltering.3dm) Rhino file and the [ GroupingAndFiltering.gh](GroupingAndFiltering.gh) Grasshopper definition.
* For more information about these components, check out our [Discourse Post](https://discourse.mcneel.com/t/trying-to-set-usertext-to-a-grasshopper-model-object-gh-modelobject/161131/13).
## Learn More
Watch our [Discover Grasshopper Data Types](https://vimeo.com/941424386) video or visit our [What's New in Rhino 8](https://www.rhino3d.com/8/new/#grasshopper-rhino-data-types) page for an overview of these features.
Learn how to use other Data Type components in the following guides:
--------------------------------------------------------------------------------
# Gumball Guide
Source: https://www.rhino3d.com/en/docs/guides/user-guide/gumball-basics/
Learn how to use the Gumball to make basic transforms to your geometry
The Gumball is a visual widget that shows on the screen when you are selecting objects. It's an intuitive way of using Move, Copy, Rotate and Scale without the need to run the commands. The Gumball also allows for more advanced editing options such as copying, cutting, embossing, extruding, extending. You can learn to use these in our advanced tutorial for [Creating a Coffee Table](https://www.rhino3d.com/docs/guides/general/gumball-advanced/).
___
## 0. Getting Started
There's a lot the Gumball can do! It takes time and practice to manipulate it in the right way. Once you get the hang of it, it's a powerful tool that streamlines the modeling/editing process. Let's get acquainted with a few concepts around the Gumball that will make your life easier.
## 1. Activating the Gumball
The Gumball is off by default. You can activate it by clicking the **Gumball** pane in the **Status Bar** at the bottom of the interface.

Once activated, Gumball will become visible when selecting one or multiple objects.
Keep in mind there's only *one* Gumball. This means that if you select multiple objects, **you'll see only one Gumball widget for all the objects selected.**
## 2. Settings
You can configure different aspects of the Gumball through its **Settings**. There are three methods for accessing it:
1. Through the GumballSettings command.
2. By **right-clicking** on the **Gumball** pane in the **Status Bar**.

>
3. By **left-clicking** on the **Gumball**'s Menu ball (Bunny tail).

## 3. Handles
The Gumball is composed of multiple handles and icons. Clicking or dragging on each one will enable a specific transform action. Here's a cheatsheet to help you identify each of these.
[[items]]
caption = "Gumball Handles"
image = "https://www.rhino3d.com/new-source/images/gumball-gallery/gumball-widget.png"
[[items]]
caption = "Move Handles"
image = "https://www.rhino3d.com/new-source/images/gumball-gallery/gumball-move.png"
[[items]]
caption = "Extrude Handles"
image = "https://www.rhino3d.com/new-source/images/gumball-gallery/gumball-extrude.png"
[[items]]
caption = "Cut Handles"
image = "https://www.rhino3d.com/new-source/images/gumball-gallery/gumball-cut.png"
[[items]]
caption = "Rotate Handles"
image = "https://www.rhino3d.com/new-source/images/gumball-gallery/gumball-rotate.png"
[[items]]
caption = "Scale Handles"
image = "https://www.rhino3d.com/new-source/images/gumball-gallery/gumball-scale.png"
>
These widgets are object-dependent. Some widgets, such as the **Cut** tool, only work on curves; thus, it won't appear when selecting a face. The **Extrude** dot only appears on points, curves, and faces (not on 3D objects). You'll sometimes observe a *halo* surrounding the **Extrude** dot as well. This is the [Gumball Extend](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#commands/gumball.htm?) option that appears upon faces that can be extended (e.g., extend in space while preserving the taper). To learn more about each **Gumball Handle**, visit the [Gumball topic on our Help File](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#commands/gumball.htm).
## 4. Transforms
The Gumball widget is an easy way to [Move](/images/gumball-gallery/gumball-move.gif), [Rotate](/images/gumball-gallery/gumball-rotate.gif), [Scale](/images/gumball-gallery/gumball-scale.gif) and [Copy](/images/gumball-gallery/gumball-copy.gif) objects in Rhino. **It provides a quick way of transforming selected objects without having to go through the linear steps of the [Command Prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt).**
Once the Gumball is activated, select an object(s) and play with the handles
## 5. Solid Operations
**The Gumball also provides functionality for solid operations**. You can [Extrude](/images/gumball-gallery/gumball-extrude.gif), [Cut](/images/gumball-gallery/gumball-cut.gif), [Emboss](/images/gumball-gallery/gumball-emboss.gif) using curves or [Extend](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#commands/gumball.htm?) faces. This functionality is dependent of the object selected and its orientation.
Play with the different handles to extrude, cut, emboss and extend faces.
[Learn more about **Direct Modeling techniques**...](/docs/guides/push-pull/push-pull-for-architects/)
## 6. Tooltips
Some of **Gumball's** tools can be modified to do more than the original transform tool offers. As explained above, this depends on the nature of the selected object. To help you identify these modifiers, you can hover over the different widgets to bring up the **Tooltips**. It will show the exact actions that can be performed and the modifier key press.

## 7. Relocation
Transformations such as **move**, **scale**, or **rotate** happen around the Gumball's pivot point, called the **Origin**. It refers to the central point where all the handles meet. When selecting an object, the Gumball will appear on the object's center bounding box by default.
What if you need to move the object from a midpoint on its side edge? Or scale it from its bottom corner? Learn about the different ways to reposition the **Gumball** on the object:
1. Use the GumballRelocate command.
1. Access the *Relocate Gumball* option through the Gumball's **Settings** or **Menu ball**.
1. Use the GumballDynamicRelocate command.
1. **Double-click** on the Gumball's **Origin** or any of its **handles** to enter into the dynamic relocation mode. At this point, any movement on the handles will not affect the object but rather reposition the Gumball on it.
Double-click on a Gumball handle to relocate.
The above method of **double-clicking** a **handle** to enter the **dynamic relocation mode** is the easiest way of repositioning the **Gumball** on the object..
You can always reset the **Gumball** to its default location/orientation by selecting *Reset Gumball* in the **Settings** panel.
## 8. Alignment
The Gumball's axes are aligned to an object based on the active Cplane. This means that its axes (arrows) are parallel to the Cplane's axis, independently of how the object is placed in space. However, there are other alignment options. In the images below, note how the **Gumball's** axes switch to align to the various options.
Cplane Alignment
Object Alignment
World Alignment
Use the **F4** key to cycle through the different alignment options.
Similar to relocation, sometimes you need to customize the **handle's** orientation or size on the object. You can double-click the desired **handle** and rotate or stretch to your needs.
## 9. Sub-Object Selection
Rhino has diverse **object types**, which you can learn more about in our [Getting Started: Object Types | Rhino for Windows](https://www.rhino3d.com/static-media/video/rhino-getting-started-object-types/rhino-getting-started-object-types-1080p.mp4) or [Getting Started: Object Types | Rhino for MAC](https://vimeo.com/766345994). Some of these objects are singular in nature, such as a **point**, **line**, **surface**, **mesh**, or **SubD** face. Others are composed of joined end-to-end lines or surfaces, making them **polylines** or **polysurfaces**. To continue with the latter example, when you select a **polysurface** and you edit it using the Gumball, your modifications apply to the overall object. **Sub-Object selection** allows you to access one of these sub-parts (e.g., a surface within the polysurface) and modify it (move, scale, rotate) while maintaining the joined or glued nature of the adjacent faces.
Sub-select faces, edges, and points. This works on NURBS, SubD, and Meshes.
Hold the Ctrl \+ Shift (on Mac ⌘ command \+ ⇧) *+* **left-click** to select a sub-object. You can also activate the SelectionFilter if you prefer a 'simple-click' to sub-select.
## 10. Snappy vs Smooth Dragging
The Gumball can be set to drag an object in a **Smooth Dragging** mode (e.g., free movement) or to **Snappy Dragging**, which will allow the **Gumball** to align and reference other [Osnaps](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm) active on the object. See [Object Snaps](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm) for more information.
* **Smooth Dragging is great for...**
1. Freely moving and editing geometry
1. Form finding and sculpting faces, edges, points, vertices
* **Snappy Dragging is great for...**
1. Precise modeling
1. Aligning objects with others
1. Referencing other object's positions or geometrical spots
You can also set the **Drag Strength** through the Gumball's **Settings** pane.

[Learn how to use **Snappy Dragging**...](/docs/guides/user-guide/accuracy/#snappy-dragging)
## 11. Accessing the Options
The **Settings** pane we have discussed up to now allows you to configure how the Gumball *behaves*. The **Gumball** page in Rhino's Options adds the ability to configure how the **Gumball** *looks*.
Access it through the **Tools** menu > **Options...** > under **Modeling Aids**.

## 12. Want to learn more?
To learn more about these transformation techniques using the Gumball, follow Brian James' tutorial on [Creating a Coffee Table](https://www.rhino3d.com/docs/guides/general/gumball-advanced/).
Check out these related topics on our **Help Guide**.
1. [Gumball](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#commands/gumball.htm)
1. [Gumball Toolbar](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#toolbarmap/gumball_toolbar.htm)
1. [GumballAlignment](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#commands/gumballalignment.htm)
1. [GumballAutoReset](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#commands/gumballautoreset.htm)
1. [GumballRelocate](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#commands/gumballrelocate.htm)
1. [GumballDynamicRelocate](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#commands/gumballdynamicrelocate.htm)
1. [GumballReset](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#commands/gumballreset.htm)
1. [GumballScaleMode](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#commands/gumballscalemode.htm)
Visit the [Rhino 8](https://www.rhino3d.com/8/new/) page to learn about other new features.
Congratulations on following through! If you have any questions or feedback, feel free to post it on [Discourse Tutorials](https://discourse.mcneel.com/c/rhino/tutorials).
---
--------------------------------------------------------------------------------
# Gumball: Creating a Coffee Table
Source: https://www.rhino3d.com/en/docs/guides/general/gumball-advanced/
Learn how to edit your geometry with the Gumball
In this **tutorial**, we will learn how to use Gumball to create geometry intuitively and precisely. The Gumball allows us to ExtrudeCrv, Wirecut and Boss into solid or open geometry, as well as Move, Copy, Rotate and Scale without running commands.
>
___
## Before You Start
If you're new to **Rhino** or the Gumball, we recommend going through the [Gumball: Technical Guide](https://www.rhino3d.com/docs/guides/general/gumball-basics/#6-sub-object-selection).
## Preparing the Curves
You can create your own set of curves to follow along or download the [ Gumball_Coffee_Table.3dm](Gumball_Coffee_Table.3dm) used in this tutorial.
In this part, we will duplicate the simple set of starting curves. These copies will help us create the details of our table (chamfers, glass frame, legs, etc.). We will also learn how to move the geometry to the correct location in space. For this, we will use Gumball **scale** and **move** capabilities as well as learn how to GumballRelocate
on the object itself. Let's get started...
1. Select the square polycurve and enable the Gumball from the bottom of the Rhino interface.

2. Using the **2 axis XY plane handle**, click and drag while holding the Shift key to scale the square inward. Tap the Alt / Option key to make a copy.

3. Repeat Step 2, making another copy of the square inset slightly from the first.

4. Double-click and drag the origin of the Gumball for the inner square to relocate it to an [Osnap](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm) at its corner.

5. Use the Gumball at the new location to **Scale 2D** again making another copy that will represent the top profile of the table leg.

6. Select all the other curves but the last copy and click and release on the **Z axis Move** handle on the Gumball. Enter **12in** and press Enter to move those curves 12 inches in Z despite the model being set to use Centimeters.

## Creating the Tabletop
With the curves created and in place, we will use the **Gumball's extrude** capability to obtain the main volume of our tabletop. We will also create the chamfer and the glass frame by using a cool trick with the scale handle.
7. Select the outer square and click and release on the **Z axis Extrude handle** on the Gumball. Enter **2** and press Enter to make a solid extrusion from the square in centimeters. Set the viewport to Shaded mode to see the extrusion shaded.

8. Using the Ctrl/CMD + Shift keyboard combination, click the top face on the extrusion made. This is known as **sub-object selection**.

9. Using the **Extrude handle in the Z axis** on the Gumball, create another extrusion. This can be by eye and does not require a numeric value.

10. Sub-object select the top face of the polysurface created and click and drag on a **1D scale handle** while holding Shift to scale it in 3D.

11. Using the **Z axis Extrude handle**, extrude up the top face via a sub-object selection again. This can also be done by eye.

12. Repeat Step 10, scaling the new top face inward uniformly.

13. Using the Ctrl/CMD + Shift keyboard combination sub-object, select both the top face and one of the adjacent edges of the polysurface.

14. Double-click the **Z axis 1D scale handle** on the Gumball to relocate it out of the way. This will make the next step easier.

15. Double click the Gumball origin and relocate it to an [End Osnap](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm%3FTocPath%3DObject%2520snaps%7C_____1) at the end of the polysurface edge you sub-object selected.

16. Using the **Z axis 1D scale handle** on the Gumball, click and drag until the scale handle snaps to the origin of the Gumball’s current location.

17. The two sub-objects that were selected are now coplanar in that location.

18. Sub-object select the center face and, using the **1D scale handle**, click and drag with Shift to scale in 3D to adjust the size by eye. Note that scaling a flat object in 3D is the same as scaling it in 2D. If you prefer, you can use the 2 axis handle with Shift to perform this scale instead.

## Detailing: Frame and Emboss
We are ready to create the actual glass pocket! We will then focus on using the Rhino logo curves to create a boss and an opening in the tabletop with the shape of the logo. To this end, we will mainly be using the **Extrude and Cut handle** of the Gumball.
19. Switch the viewport to Ghosted mode to make the following steps easier and sub-object select the top center face of the polysurface. Click the settings circle handle on the Gumball and set it to *Snappy Dragging*. This will allow us to snap to [Osnaps](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm) when extruding, moving, or cutting.

20. Click and drag on the **Z axis Extrude handle** and snap to a [Midpoint Osnap](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm) along the outer corner edge of the polysurface.

21. This will make a pocket for the glass top of the table.

22. Select the Rhino logo curves and using the **Z axis Move handle** move them up and then mouse over the [Midpoint Osnap](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm) on one of the vertical edges in the pocket just created to snap to that location.

23. With the outer Rhino logo curves selected, use the **Z axis Cut handle** on the Gumball, drag down while holding Ctrl / CMD and release at any [Osnap](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm) along the bottom of the pocket.

24. This will create a **Boss** that is part of the polysurface.

25. With the inner Rhino logo curves selected, drag down on the **Z axis Cut handle** and release once through the polysurface.

26. This will **Cut** through the polysurface, leaving a Rhino logo-shaped hole inset slightly in the Boss.

## Adding the Legs
Let's concentrate on creating the tapered legs and copying them on all four sides. Essentially using the **Extrude, Scale and Relocate** options. We will also see how to use **Rotate** and **Copy** through the Gumball to duplicate the legs on all corners.
27. Viewing the model from underneath, select the two inner square curves and click and release on the **Z axis Extrude handle**. Type **-2** and press Enter.

28. This will create an extrusion in the opposite direction that the Z axis arrow points on the Gumball. This form will brace the legs that will be modeled next.

29. Select the small square made previously for the table legs and click and drag on the Z axis Extrude handle snapping to an [End Osnap](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm) at the top of the brace form just made.

30. Using Ctrl/CMD + Shift to sub-object, select the leg extrusion's bottom face.

31. Click and drag on the **Z axis Move handle** and snap to an [End Osnap](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm) at the bottom of the brace form.

32. Sub-object select the bottom face of the extrusion again in its new location.

33. Using the **Z axis Extrude handle**, extrude this face downward ending on any [Osnap](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm) on the original small square curve.

34. Sub-object select the bottom face of the polysurface and use the **Z axis 1D scale handle** with Shift held to scale uniformly inward. You can do this by eye to add a taper to the leg form.

35. Sub-object select the bottom face of the polysurface again then click and release on the **Z axis Move handle** on the Gumball entering a value of **1** before pressing Enter. This will provide a 1-centimeter space to model the foot of the leg.

36. Sub-object select the bottom face and, using the **Z axis Extrude handle**, click and drag it down while holding Shift to Extend. Tap Alt / Option to make a copy and release the drag at any [Osnap](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm) on the original small square curve.

37. This creates a separate polysurface extended with the same leg taper that we defined when scaling.

38. Select both the leg and the foot polysurfaces and note that the Gumball is located at the bounding box center of both objects by default.

39. Double-click the Gumball origin and relocate it to an [End Osnap](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm) at the top corner where the leg and brace meet.

40. Click and drag the **2 axis XY plane handle** while holding down Shift, to 2D scale the leg and foot by eye. Scaling through the plane handle will maintain the leg length in the same **Z axis** height.

41. With the leg and foot objects still selected, click the **Settings circle handle** on the Gumball and choose *Relocate Gumball*.

42. Type **0** and press Enter and then hold Shift to enable [Ortho](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#commands/ortho.htm) snap as you define the **X and Y axis directions for those Gumball handles**. This is an alternate way of relocation versus double clicking.

43. Click and drag on the **Z axis Rotation handle** and tap the Alt / Option key to make a copy of the leg and foot selection. Hold the Shift key down before releasing to enable [Ortho](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#commands/ortho.htm) mode and make a copy at the adjacent corner of the table.

44. Repeat this step two more times for the other legs, but do so while the objects are still selected. GumballRelocate will not persist for multiple selections.

45. Sub-object select an edge along the pocket of the table.

## Creating the Glass
This will be the easy part after all we've learned in the past steps! We'll use a straight edge of the table as the starting point for creating the glass top.
46. Use the **Y axis Extrude handle** to extrude the edge into a surface ending at an [End Osnap](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm) at the other end of the pocket in the tabletop.

47. This creates a new plane that we can use to model the inset glass top for the table.

48. Select the new planar surface and use the **Z axis Extrude handle** to extrude it down ending at a [Mid Osnap](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm) along an edge defining the depth of the pocket.

49. This new extrusion will rest on the Rhino logo Boss created earlier as both meet at the Midpoint Osnap of the pockets depth.

50. Select the Rhino logo eye and nostril curves and click and drag them up using the **Z axis Cut handle**. Release the drag once the cursor is through the extrusion.

51. This creates a couple of holes in the glass top of the table.

52. Switch the Perspectiveviewport to the Monochrome display mode to visualize the design.

Congratulations for completing this tutorial! If you have any questions write ask on [Discourse](https://discourse.mcneel.com/) or drop a mail to brianj@mcneel.com
>
---
---
--------------------------------------------------------------------------------
# Illustrating with Linetypes
Source: https://www.rhino3d.com/en/docs/guides/drafting/linetypes/
Learn how to use the taper and width settings for Linetypes to create beautiful visuals
Rhino 8 introduces tapers, cap styles and new width properties, along with the traditional line style settings. In this guide, you will learn how to combine these features to embellish and communicate your designs.
Pick one.

## Enhanced Linetypes
Linetypes are curve styles with pattern, width, and taper properties. In previous versions of Rhino, linetypes were very limited: only dashes and dots on curves. Linetypes are now more beautiful and powerful than ever. Now you can add customized Linetypes to surfaces, solids, etc, allowing you to communicate design intent or artistic flair.
Unlike using traditional Rhino linetype patterns and simple print widths, the **Enhanced Linetypes** can be:
- Applied to more than curves, and support surfaces, polysurfaces, subds, dimensions, and more.
- Stylized curves with both **width** and **taper**.
- Fine tuned with line end and join style.
In this tutorial, you will assign the custom linetypes to layers that contain curves. It recommended to return the display modes to default settings to allow the new custom linetypes to display. It is also necessary to choose the option to print custom linetypes when printing. In this tutorial will give you a overview of this process.
In this tutorial, you will:
- Create enhanced linetypes
- Assign the custom linetypes to layers that contain curves, polysurfaces and Sub-D surfaces.
- Preview the assigned linetype
- Print the linetypes to PDF
### Preparing Rhino for Enhanced Linetypes
It is sometimes necessary to return the display modes to default settings to allow the new custom linetypes to display. It is also necessary to choose the option to print custom linetypes when printing. In this tutorial will get an you a overview of this process.
#### Verify these Rhino settings
- **Print Preview** needs to be of turned off. (**PrintDisplay** command)
- **Enhanced Linetypes** also do not display if the **Display Mode** has **Curve Width** set to *Pixels*. Reset your **Display Mode** to **Default** settings.
#### Returning your Display Modes to *default*
1. Type the **Options** command.
1. Navigate to *View* and *Display modes*.
1. Pick *Wireframe* and select: *Restore Defaults*
1. Pick *Render* and select: *Restore Defaults*.
1. Pick OK to exit Options.
1. Close and reopen **Rhino**.
### Creating Enhanced Linetypes
You will create enhanced linetypes in the Linetypes panel.
1. Download the current Rhino Eval if you don't yet have Rhino installed.
1. Download the model for this tutorial. [ Using-custom-linetypes.3dm](using-custom-linetypes.3dm) model.
1. Open the file in Rhino.
1. At the command prompt, type the command **Linetypes**. The **Linetypes** panel will open.
1. In the **Linetypes** panel, highlight **Continuous**, and right-click to pop up the context menu.
1. From the menu, pick **Copy.** linetype **Continuous 01** is created.
1. Repeat the **Copy** and **Continuous 02** is created.
1. Repeat the **Copy** and **Continuous 03** is created.
1. Repeat the **Copy** and **Continuous 04** is created.
#### Editing the Linetypes for Taper
1. Scroll and highlight the new linetype **Continuous 01**.
1. In the lower part of the panel, make these changes to **Continuous 01**:
- Name: **Custom Taper Thick**
- Width: 1
- Width Unit: Pixels
- Tapered: *Enable* with check
- Taper Position: *0.20*
- Taper Width: *6*
- Taper End Width: *1*
3. Scroll and highlight the new linetype **Continuous 02**.
1. In the lower part of the panel, make these changes to **Continuous 02**:
- Name: **Custom Taper Thin**
- Width: *1*
- Width Unit: *Pixels*
- Tapered: *Enable* with check
- Taper Position: *0.50*
- Taper Width: *4*
- Taper End Width: *.5*
5. Scroll and highlight the new linetype **Continuous 03**.
- Name: **Custom Continuous**
- Segments Unit: *Millimeters*
- Width: *3*
- Width Unit: *Pixels*
1. Scroll and highlight the new linetype **Continuous 04**.
- Name: **Custom Dashed**
- Segment Unit: Inches
- Segments: 5.00, 2.00
- Width: *2*
- Width Unit: *Pixels*
Now the new linetypes **Custom Taper Thick**, **Custom Taper Thin**, **Custom Continuous** and **Custom Dashed** are ready to assign to layers or objects.
### Assigning the Linetypes to Curves, Surfaces and SubD Geometry
#### Assigning Linetypes to Curves
1. Double-click viewport title *Radio Curves*.
1. Type the **Layer** command, to open or set the Layers panel current.
1. Navigate to *1 RadioCurves\Taper Thick* layer
- In the *Linetype* column, set the linetype to *Custom Taper Thick*.
- Navigate to *1 Radio Curves\Taper Thin* layer, and set the linetype to *Custom Taper Thin*.
- Navigate to *1 RadioCurves\Custom Continuous*, and set the linetype to *Custom Continuous*.
#### Assigning Linetypes to Polysurfaces
1. Double-click viewport title *Radio Curves* to return to 4 viewport display.
1. Double-click viewport title *Salt and Pepper*.
1. In the **Layers** panel, navigate to *2 Salt and Pepper* layer.
- In the Linetype column, set the linetype to *Custom Continuous*.
- Pick OK.
1. Type the **DisplayProperties** command. Verify the *Display mode* is set to *Rendered*.
1. Under *General Settings*, check *Surface Edges*.
#### Assigning Linetypes to SubD Surfaces
1. Double-click viewport title *Salt and Pepper* to return to 4 viewport display
1. Double-click viewport title *SubD Chair*.
1. Type the **Layer** command, navigate to *3 Chair\Chair Subd layer*.
- In the Linetype column, set the *linetype* to *Custom Taper Thin*. Pick OK.
- Then in the *Linetype* column, set the linetype to *Custom Dashed.* Pick *OK.*
- Also navigate to layers *1 Radio\Radio Dims* and *2 Salt and Pepper\SP Dims* layer.
- Turn both layers *On*.
- Then in the *Linetype* column, set the linetype to *Custom Dashed.* Pick *OK.*
- Navigate to *3 Chair\Chair Dims layer*. Turn it *On*.
1. Type **DisplayProperties**. Verify the *Display mode* is set to *Rendered*.
1. Under *General Settings*, check *SubD Wires*.
### Printing with Enhanced Linetypes
1. Double-click viewport title *Subd Chair Perspective* to return to 4 viewport display.
1. Pick the tab below the viewport area to active the *Radio Curves Layout* tab.
Then click the other tabs below the viewport area to active the *Salt & Pepper Layoout* tab and *Chair SubD Layouts* tab, and then back to *Radio Curves Layout* tab.
1. Type the **Print** command.
Select *Rhino PDF* printer.
- Under *Size*, check box to *Use Layout Page Size*.
- Set *Output* type to *Raster*.
- Set *Output Color* to *Display Color*.
- Under *View and Output Scale*, select *Print Multiple Layouts*.
- Under *Scale* pick *1:1* or *Scale to Fit*.
1. Preview the sheets by picking on each of the layouts under the column heading *Select a layout to preview*. Also select and deselect all by picking on the column heading *Print*.
1. At the bottom of the Print dialog, check option *Open after saving*. When printing is complete, your PDF will open in your system's designated PDF reader.
1. Now pick the *Print* button. Specify the name and location for your PDF.
1. Download the PDF [ Using-custom-linetypes.pdf](using-custom-linetypes.pdf) or the completed model [ using-custom-linetypes-done.3dm](using-custom-linetypes-done.3dm)



--------------------------------------------------------------------------------
# Object Attributes in Grasshopper
Source: https://www.rhino3d.com/en/docs/guides/grasshopper/object-attributes/
Learn how to use Object Attributes in Grasshopper
- Have you ever been frustrated that you couldn’t bake geometry with custom attributes?
- What about display materials? Have you ever wanted to be able to use native Rhino materials in the Grasshopper display pipeline?
- How about importing files into Grasshopper? Have you ever become discouraged when you try to import a CAD file and lose all of the basic metadata that is included with the geometry?
**The latest Rhino 8 now has new data types and components which expand the way you work.**
Grasshopper 1 has always had common data types - some are frequently used (points, curves, breps, booleans, numbers, and text etc.) while others are used more sporadically (date/time, matrices, cultural specifiers, etc.).
However, there are many different types of data available in Rhino that have not been accessible in Grasshopper previously. **Rhino Layers, Linetypes, Hatches, Materials, Fonts, and Annotation Styles, etc**. are now included with Grasshopper 1 for Rhino 8 as native data types. And, more will be coming soon!

## What is an Attribute?
All of these new components let you get and/or set the attributes of a given data type. So, what exactly is an “attribute”? **An attribute is simply a property or item that helps make up that type or object.**
Let’s look at Rhino layers, for example. A layer can be defined by the following properties:
- Name
- Is Active (Current)
- Visible/Hidden
- Locked/Unlocked
- Display Color
- Material
- Linetype
- Print Color
- Print Width
- Clipping Plane
- Section Style
We can see and/or edit each of these attributes in the Rhino Layers dialog. Now, you can do the same in Grasshopper 1!

## Getting Started
Grasshopper 1 in Rhino 8 has a new toolbar labeled **Rhino** which is broken down into several subcategories (Layers, Linetypes, Materials, etc.). Each subcategory typically has two different types of components.
- 
**Query components** - Lets you query the active Rhino document for various data types. This particular component lets you bring all Rhino layers into the Grasshopper document, but you can also query a document for linetypes, hatches, annotation styles, etc. Query components are usually denoted with a magnifying glass.
- 
**Datatype components** - These components let you construct and/or deconstruct a data type with its’ various attribute values. This particular component lets you specify the attributes of a new Rhino layer (layer name, display color, visibility settings, etc.), or view these attribute values on an already defined layer in the Rhino model.
## Constructor/Deconstructor vs. Pass-through Components
Grasshopper 1 has many data types (points, vectors, planes, etc.) which use a constructor/deconstructor pattern. Meaning, each data type has two different components - one which handles creating the data type (the constructor), such as a point which contains three numeric input parameters, and another which returns the values which combine to make up that data type (the deconstructor).
We considered using this pattern for the new data types found in the Rhino toolbar, but opted instead for a pattern we are calling “pass-through” components. Pass-through components, instead, combine both functions of constructing and deconstructing attributes into a single component.

Let’s look at how this would work. Notice how there are now four inputs and outputs (instead of three in the construct/deconstruct pattern). The main data type (Point3d) is the very first parameter on both the input and output side.

If we want to create (construct) a new point using a pass-through component, we simply pass numeric values into the three coordinate inputs and a new Point will be created and returned from the Point output. Similarly, if we want to break out an existing Point into its component values (its coordinates) then we simply pass a Point into the first input parameter and the values will be returned in the corresponding output.
So, that’s the basic setup for how a pass-through component works. Let’s now look at a more concrete example. Let’s say we want to create a new Rhino layer and assign some attributes to it. We simply pass some values into the input parameters, and the Layer output (the primary datatype is always the first input/output parameter) returns the Rhino layer with all of its settings.
Notice that I’m using the **Query Linetypes** component to get a reference to one of the linetypes that exists in my Rhino model. Had I left the filter blank (or used a “*” wildcard) it would have returned all of the available linetypes. However, since I’m using the filter “Dashed” it only returns the linetype that matches this name.

Similarly, if we wanted to bring an existing Rhino layer and inspect its attributes, we could use the same pass-through component. This time, however, we want to pass an existing Rhino layer into the Layer input. Remember, the main datatype is always the first parameter on both sides of the component.
Here, we use the **Query Layers** component to get the existing layer (there is only one called “Default”) which we can then pass into the Layer input. The layer’s attributes are then passed out through the corresponding output parameter.

Now let’s say we want to use an existing Layer as a template, but make a copy and change some of its attributes. This is where a pass-through component becomes quite useful. Had we used the constructor/deconstructor pattern, we would have had to manually connect each of the outputs from the constructor component to the corresponding input parameter of the deconstructor component.

As you can imagine, this would get quite cumbersome on datatypes with a larger number of attributes. Instead we can use a pass-through component for this operation.
Like before, we can pass an existing Rhino layer into the Layer input and all of its attributes will be passed through to the corresponding output. However, if another value is connected to one of the other inputs, then this value will supersede the attribute coming in from the existing Rhino layer.
Here we can pass the text “MyLayer” into the Full Path input and it will override the layer name coming in from the existing Rhino layer. However, all other values will remain the same.
By using only one pass-through component, we save screen real estate in our definition and avoid having to connect all of the output parameters to their corresponding input.

## Constructing Attributes
In the example above, we showed how to construct a Rhino layer using the **Model Layer** pass-through component. However, the layer that is created isn’t technically a part of the Rhino document until you bake it. We are still working on a custom bake component, but for now you can right-click on the Model Layer component and select **Bake**. Click ok on the popup dialog and your layer will then be added to the Rhino document.

Now, let’s say we want to add some geometry to the Rhino document, but make sure that it is assigned to the layer we just created. We can simply use a **Model Object** component to assign various attributes to geometric objects.


Here we’ve created a sphere and given it the name “MySphere”. We’ve also assigned the layer that we just created to the object attributes. Now, if we right-click on the Model Object component and select **Bake** - the sphere will be added to the Rhino document with those attributes.
Select the sphere that was baked into the scene and go to the Object Properties inspector. Check to see if the sphere has the correct name and layer assigned.
You can assign as many attributes as you want to a geometric object. This is just a very simple example, but we encourage you to look through the other components to see what settings are available.
## Deconstructing Attributes
As you might expect, we can deconstruct data types into their constituent attributes as well. Query components are a good place to start as these components will bring various Rhino data types (geometry, layers, linetypes, etc.) into your Grasshopper definition. But each of those are relatively straightforward.
Instead I’d like to take a look at the new **Import Model** component found under the Params tab and Input subcategory. With this new component, we can import any 3D model (it doesn’t just have to be Rhino models) and break out the contents into its various attributes.
One useful feature of this new component is that it also provides a way to transform the imported model into the active documents units in a consistent way. Let’s take a look at an example to help explain how this works.
Let’s say you had downloaded some 3D CAD models of some fasteners that you want to use in your project. One of the files, the flanged hex bolt, is saved with the units set to Inches. The other file, which includes a wing nut and a washer, has its units set to millimeters. And to compound the situation, the active document that you are working on is set to centimeters.

If we had imported this model traditionally, we would have had to figure out our own conversion factors to get the models to align properly. However, using one of the attributes from the imported model, the transform, we can easily match the imported geometry to the scale of the active document.


Additionally, we can inspect other attributes from the imported model. In this case, there were several materials which were saved in the file. **We can now use any Rhino materials in Grasshopper’s Custom Preview display!**
I put that sentence in bold because this is a pretty big deal. You are no longer constrained to the simplified display graphics that Grasshopper has traditionally relied upon. You can now import (or use the **Query Materials** component) to bring in native Rhino materials and use them on Grasshopper geometry using the standard **Custom Preview** component.
The samples below are simply screenshots of various display modes using imported Rhino materials.


## More to come!
Its important to note that this is only the first release of these new tools. The toolset is not complete (not by a long shot) and it’s possible you may find bugs here and there. Please let us know if you find something that doesn’t work quite right or if you have questions. We’re always here to help.
We’re also looking for your feedback as to what data types we should include next. Which types would be most useful for your workflow? Do you need blocks, lights, dimensions, clipping planes, named sheet views? We have a long road map of components that we will be working on in the coming months, but we look to user feedback for which features should take priority.
## Try it!
Download and open the [ ConstructObjectAttributes.gh](ConstructObjectAttributes.gh) definition.
## Learn More
Watch our [Discover Grasshopper Data Types](https://vimeo.com/941424386) video or visit our [What's New in Rhino 8](https://www.rhino3d.com/8/new/#grasshopper-rhino-data-types) page for an overview of these features.
Learn how to use other Data Type components in the following guides:
--------------------------------------------------------------------------------
# ShrinkWrap
Source: https://www.rhino3d.com/en/docs/guides/modeling/shrinkwrap/
Learn how to close, clean and repair a mesh using ShrinkWrap
ShrinkWrap lets you create a wrapped mesh from mesh, NURBS geometry, SubD, and Point Clouds.
To prepare a file for 3D printing, you should have a single closed mesh. ShrinkWrap generates a closed mesh independent of the amount and type of geometry it is given. In this tutorial, we will see how ShrinkWrap works and how it can significantly reduce the time to prepare models for 3D printing.
## Example 1 - A ring made of spheres

Download and open the [01-spheres-ring.3dm](01-spheres-ring.3dm)

Note that the file consists of multiple spheres that are not connected. To prepare the design as a single mesh for printing, start ShrinkWrap and select the 54 spheres. This will show the following dialog:

The most important setting is the **Target Edge Length**. This determines how detailed the mesh that is wrapped around your objects will be. ShrinkWrap will make an estimate based on the model size so that your first preview will give a reasonable result, but most likely, this value needs to be smaller to get an accurate enough wrap around the objects.
In this case, our file is set up in mm. This means that at a target edge length of 1, the mesh edges will be approximately 1mm in size. Smaller values create a more accurate mesh at the cost of longer calculation time. The optimal setting depends on your model and the 3D printer used for the final output. For example, if your printer has a resolution of 0.1mm, it makes no sense to use a lower unit size since that detail will be lost in the printing process anyway.
Check the options **Preview** and **Hide input objects**. Note that the mesh is quite coarse:

To get a better mesh, lower the target edge length to 0.1. Notice how the preview updates to a higher-density mesh that more closely follows the base objects:

Hiding the mesh edges better shows what the object looks like. Do this by unchecking the option **Draw mesh wires**.

You can see that the resulting mesh still needs some refinement, and it might be desirable for post-processing to slightly smooth out the concave edges. Achieve this with the **Smoothing iterations** setting. Higher values will smooth the shape more. Convex sharp corners will be shaved off, and concave corners will be filled up. In the image below, smoothing is animated between 0 and 100 steps.

You are not limited to using NURBS objects for ShrinkWrap. We will now add a prong to the output and tune the units and smoothing for the final result.
Turn on the layer Prong. This is a SubD object. Select both the spheres and the prong and rerun ShrinkWrap, this time with **Target Edge Length** of 0.05 and 5 **Smoothing iterations** :

The result is a closed mesh that is ready to make a wax 3d print for lost wax casting.

## Example 2 - Reverse engineering SLC
Download, unzip and open [ring_slc.zip](ring_slc.zip)

If you inspect the file closely, you will see the file is made up of multiple slices made from a mesh. This means these curves are all polylines. To shrinkwrap these curves, we first extract the curves' points into a Point Cloud.
Without the curves selected, run the command ExtractPt and set the Command Line option **Output** to **PointCloud**. Now select the curves and pressEnter to end the command.

Select the Point Cloud created above and run ShrinkWrap with these settings:

Notice that the option **Inflate Vertices and Points** is automatically checked. This basically adds volume to each point. It also means that the size of the object we wrap will increase by the chosen Target Edge Length. To compensate for this growth, we can use a negative **Offset**.
**Fill holes in input objects** is also checked, but that will have no influence when wrapping Point Clouds. This feature will come in handy in the next example.
The result is a closed mesh ready for 3D printing:

## Example 3 - Wrap an incomplete scan
In this example, we explain how to create a usable closed shape, starting with a scan that has missing data.
Download and open [shoelast.3dm](shoelast.3dm)

[3DFace](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#commands/3dface.htm)
To make a closed mesh, ShrinkWrap can close holes, but there are limits to their size. The better we prepare the input, the finer we can set the **Target Edge Length**.
Close holes roughly by adding SubD patches. The tool to create these patches (3DFace) is in the left sidebar when the SubD tab is open. Turn on Vertex Osnap. Start making patches by snapping to the mesh and then sculpting and refining with point editing. Start with the largest holes, and check in between by shrinkwrapping the scans and SubD patches.

Once all holes are roughly closed, ShrinkWrap with these settings:


We can further refine the shape by using the shrinkwrapped result as a basis for Quadremesh.
Before running Quadremesh however, we want to make a guide curve that we can use in Quadremesh to create an edge loop. In Right view draw a curve that follows the last shape as indicated. Make sure the curve slightly intersects the mesh (e.g., is not above the mesh).

Use ExtrudeCrv to extrude this curve in both directions so that it **fully intersects the mesh**. Then, run MeshIntersect to intersect the result with the mesh.
The result is a jagged degree 1 curve. Run Rebuild, enable **Delete Input** and rebuild the curve to degree 3, 100 control points. Now run Fair with **Tolerance** set to 100 to smooth the curve:

Start Quadremesh and in the dialog, click the **Select Curves** button to select the faired curve. Change the **Curve Influence** to **Create Edge Loop**. Check **Convert to SubD**.

We will now refine the shape of the SubD in two ways. Hold CtrlShift (on Mac ⌘ command⇧) and double-click the edge loop that is nearest to the curve:

With these edges selected, run SubDCrease and set the weight to 100 for the whole loop.
The next step is to flatten the area closest to the surface we created to intersect with the shrinkwrapped result. Turn on the points of the SubD (PointsOn / F10) and in Right view, use Lasso to select the points indicated:

Turn on the guidesurface layer, and with the points still selected, Pull the points to the guide surface.
With a bit of point editing, we can further refine the shape to this result:

## Other Tutorials
>
>
Congratulations for completing this tutorial! If you have any questions write ask on [Discourse](https://discourse.mcneel.com/) or drop a mail to gijs@mcneel.com
>
--------------------------------------------------------------------------------
# Architectural Drawings
Source: https://www.rhino3d.com/en/docs/guides/user-guide/drafting-architecture/
Learn about creating architectural drawings in Rhino
**Rhino offers a suite of tools to help you create technical drawings.** There are several ways to create a drawing in Rhino. In this guide, we will focus on using the ClippingSections and ClippingDrawings tools.
**We will learn how to create architectural drawings by:**
1. Creating the **Floor Plan**.
1. Creating the **Layout** (paper space).
1. Adding **dimensions** and **annotations** to the Layout.
1. Creating an **Elevation**.
1. Creating a **Section**.
1. Printing to **PDF**.
## Create the Floor Plan
**We will start by creating the Floor Plan of our building. We will add the 2D representations of the doors** separately. These have been included as Block objects in the Rhino file.
### Create the Section
We will use a ClippingSections object to clip the scene and see into the Floor Plan of the building.
1. .
1. Run the ClippingSections command.
1. At the **Select objects to section. Press Enter for all** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), press Enter.
1. At the **Place sections...** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt):
1. Select the **Dir=X** and change it to **CPlane**.
1. Type **0,0,1.2**. Press Enter **twice**. It will place the section 1.2 mts in height.
1. [Select](/docs/guides/user-guide/selection/#main-selection-method) the **section** and run the Flip command.
Flip the section to see the Floor Plan
### Create the Drawing
We will use ClippingDrawings to **extract a vector drawing** from the ClippingSections.
1. Make sure the **Point** [Osnap](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm) is selected.
1. Run the ClippingDrawings command.
1. At the **Select clipping sections** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), select the **SEC_00** section. Press Enter.
1. Make sure the [Command Prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt) options are as follows:
```( Angle=0 PrintWidth=ByLayer DisplayColor=ByLayer ShowHatch=Yes ShowSolid=No AddBackground=Yes Projection=Parallel AddHidden=Yes AddSilhouette=Yes ShowLabel=No ApplyToAll=No )```
1. At the **Placement point** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), **snap to the point** behind the building.
1. **The vector drawing for the floor plan is created!**
1. [Select](/docs/guides/user-guide/selection/#main-selection-method) the curve representing the **roof silhouette**.
1. Run the Copy command.
1. At the **Point to copy from** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), type **0**.
1. At the **Point to copy to** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), **snap to the point** behind the building.
The roof silhouette helps create context for the Floor Plan
### Add 2D Door Symbols
1. Use the [Viewport Tabs](https://docs.mcneel.com/rhino/8/help/en-us/commands/new_viewport_arrangements.htm#ViewportTabs) to go back to the Top viewport.
1. Make the **2D Symbols** [layer current](/images/rhino-user-interface/layer-make-current.gif)
1. [Zoom in](https://www.rhino3d.com/docs/guides/user-guide/navigation-display/#mouse-navigation) to the 2D representation of the curtain wall.
1. Run the Insert command.
1. Under the **Name** dropdown list, select **DOORS-Curtain Wall-2D Symbol** and press OK.
Insert as a Block
1. At the **Insertion point** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), snap as shown:
Click to enlarge
1. **Continue adding** the two other **2D doors for the curtain wall**. You'll have to Rotate or Mirror the result after inserting.
1. Insert the **DOORS-Main Building-2D Symbol** block at the following location:
1. Next, Insert the **DOORS-Office-2D Symbol** block at the following location:
Insert the office doors and copy it four times
1. To end with 2D door symbols, Insert the **DOORS-Bathroom-2D Symbol** block at the following location:
Insert the bathroom doors and copy it twice
## Create the Layout
**The Layout command creates a "paper space" that mimics a physical page, as you would use for printing technical drawings.** You can set the size and orientation of your page and add viewports called Details, which look into the model.
**In this exercise, we will learn how to create a Layout with 1 Detail view and add a Titleblock**.
### Create a Layout
1. Make the **Floor Plan** [layer current](https://www.rhino3d.com/images/rhino-user-interface/layer-make-current.gif).
1. Run the Layout command. This opens the **New Layout** dialog box.
1. For the **Name**, type **Floor Plan**.
1. For the rest of the settings, make sure they match the following:
4. Press OK to close the **New Layout** dialog box.
1. **The Layout** has been created with one rectangle that defines the Detail view.
1. **Double-click** inside the **Top Detail** view to access **Model Space**.
1. [Pan](/docs/guides/user-guide/3-navigation-display/#panning) the **floor plan** so that it is centered in the Detail.
1. **Double-click** to go back to the **Layout**.
1. Select the **Top Detail** view rectangle.
1. In the Properties panel, on the Detail page, set the **Scale Value** as follows:
* For **centimeters on page** keep it at **1**.
* For **meters in model** set it to **1.5**.
* Press Enter to validate.
1. [Select](/docs/guides/user-guide/selection/#main-selection-method) the Detail view.
1. In the Properties panel, select the **Lock Viewport** box.
The view and scale are locked to avoid accidental movements
### Add the Titleblock
1. Make the **TitleBlock** [layer current](https://www.rhino3d.com/images/rhino-user-interface/layer-make-current.gif).
1. Make sure the **End** [Osnap](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm) is selected.
1. Run the Insert command.
1. Under the **Name** dropdown list, select **TitleBlock_Meters** and press OK.
Insert as a Block
1. At the **Insertion point** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), snap to the **bottom-right corner** of the **Detail** view.
4. [Zoom in](https://www.rhino3d.com/docs/guides/user-guide/navigation-display/#mouse-navigation) to the **TitleBlock**. It is a Block composed of text and lines.
1. **Double-click** on it to enter BlockEdit mode. In this mode, you can modify the geometry contained inside the block. You can also add or remove elements.
1. Press OK to close the **Block Edit** dialog.
**Blocks** are groups of objects that act as a single object. **Blocks** are useful for repeated objects such as symbols or components. An advantage of using blocks for repeated content is that **they require less memory**. In addition, you can redefine a block and **all instances placed in the model will update**.
1. Run the Text command. This opens the **Text** dialog box.
1. For the **Style**, set it to **STANDARD**.
1. For the **Height**, type: **0.2**
1. In the **Text** box, type **West Union Library**.
1. Press OK to close the **Text** dialog.
Text Settings
1. At the **Text location** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), click to place it inside the **Project Name** area.
1. Run the Text command again.
1. In the **Text** dialog box, delete the current text, then:
1. Select the **Text Fields** icon.
1. In the **Text Field** box, select **PageName**.
1. Press OK twice to close both boxes.
1. At the **Text location** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), select a point of your choice in the Titleblock.
1. **Notice how changing the Layout name in the [Viewport Tabs](https://docs.mcneel.com/rhino/8/help/en-us/commands/new_viewport_arrangements.htm#ViewportTabs) updates the Text Field in the TitleBlock.**
1. **Try it on your own!** Continue adding text to the different fields of the **TitleBlock**.
[Learn more about **working with Text Fields in Rhino...**](https://vimeo.com/1041295027)
### Add the Logo
1. Open and save the [ Bolten Logo](bolten-logo.png) to your disk.
1. Run the Picture command.
1. In the **Open Bitmap** dialog, browse to your **Downloads** folder. The **bolten-logo.png** file should be located there.
1. **Double-click** on it to select it.
1. In Rhino, at the **First corner of picture** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), snap to the **bottom-left corner** of the logo square in the TitleBlock.
1. At the **Other corner or length** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), snap to the diagonal corner.
## Add Dimensions
**In this exercise, we will learn how to use Linear Dimensions** to annotate the Floor Plan drawing. We will also learn **how to modify dimensions** through their global settings in the [Annotation Style](https://docs.mcneel.com/rhino/8/help/en-us/documentproperties/annotation.htm?).
### Add Dimensions
1. if you haven't followed the steps above.
1. [Add a Layer](https://docs.mcneel.com/rhino/8/help/en-us/commands/layer.htm) and name it **Dimensions 1**.
1. [Make it current](/images/rhino-user-interface/layer-make-current.gif).
1. Make sure **End** [Osnap](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm) is selected.
1. Go to the [Drafting Tab](/images/rhino-user-interface/drafting-tab.png).
1. Run the Dim.
1. At the **First dimension point** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), snap to the **end point of the concrete roof**.
1. At the **Second dimension point** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), snap to **the opposite end of the concrete roof**.
8. For the **offset distance**, drag the mouse to the left, type **6**, and press Enter.
1. **Click in the view** to end the command.
1. Run the Dim command again.
1. Follow the [prompts](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt) to place the dimension at the **left end of the roof**.
15. Press Enter to run the Dim again. This time, select the **Continue** option in the [Command Prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt):
```Continue=yes```
1. The command runs in a loop, so **you can continue placing dimensions** from the last point.
1. Press Enter when done.
### Modify Dimensions
**Dimension settings** are controlled by the [Annotation Style](https://docs.mcneel.com/rhino/8/help/en-us/documentproperties/annotation.htm?) in a 3DM file. Each file contains preconfigured styles. You can **modify the settings** in the [Annotation Style](https://docs.mcneel.com/rhino/8/help/en-us/documentproperties/annotation.htm?) page of the DocumentProperties. **This is a global control** and will affect existing and future dimensions added to the file.
**In this exercise, we will learn how to modify the STANDARD dimension style, used to create the dimensions in this file.**
1. Stay in the **Floor Plan** view.
1. Select any dimension.
1. Go to the Properties panel. You should see the **Dimensions** properties.
1. Select the **Edit Style** button at the bottom. This will open the [Annotation Style](https://docs.mcneel.com/rhino/8/help/en-us/documentproperties/annotation.htm?) page for **STANDARD**.
1. Under **Font**:
1. Change the **Font** to **Candara**.
1. Change the **Height** to **0.4**.
1. Under **Arrows**:
1. Change the **Arrowheads 1** to **Thin arrow**.
1. **Arrowheads 2** should inherit the change.
1. Change **Arrow size** to **0.6**.
1. Press OK to close the dialog. **Notice the changes to the annotations in the Layout**.
Modify a single dimension by selecting it and changing its settings in the **Object Properties** panel. This change will only apply to the selected annotation, leaving the global settings unchanged.
## Create an Elevation
**We will create a second section to generate the Elevation drawing**. We will learn how to **assign lineweights to create visual hierarchy**. Then **we will add a few annotations** to inform the drawing **about construction materials**.
### Create the Elevation Drawing
We will use a ClippingSections object to clip the scene and see into the Floor Plan of the building.
1. if you haven't followed the steps above.
1. Use the [Viewport Tabs](https://docs.mcneel.com/rhino/8/help/en-us/commands/new_viewport_arrangements.htm#ViewportTabs) to go back to the Perspective viewport. [Maximize](/images/rhino-user-interface/max-viewport.gif) it if necessary.
1. Make the **Elevation** [layer current](/images/rhino-user-interface/layer-make-current.gif).
1. [Select](/docs/guides/user-guide/selection/#main-selection-method) the SEC_00 clipping section.
1. In the Properties panel, under **Views Clipped**, deselect **Perspective**.
Disable Clipped View
1. Run the ClippingSections command.
1. At the **Select objects to section. Press Enter for all** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), press Enter.
1. At the **Place sections** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), make sure **Dir=X**.
1. Left-click to place the section in front of the façade. Press **Enter** to end the command.
The ClippingSection should turn red
1. [Select](/docs/guides/user-guide/selection/#main-selection-method) the **section** and run the Flip command.
Flip the section to see the Building.
1. Run the ClippingDrawings command.
1. At the **Select clipping sections** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), select the **SEC_01** section. Press Enter.
1. Make sure the [Command Prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt) options are as follows:
```( Angle=0 PrintWidth=ByLayer DisplayColor=ByLayer ShowHatch=Yes ShowSolid=No AddBackground=Yes Projection=Parallel AddHidden=No AddSilhouette=Yes ShowLabel=No ApplyToAll=No )```
1. At the **Placement point** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), select a point behind the Floor Plan drawing.
1. **The vector drawing for the elevation is created!**
### Duplicate a Layout
1. **Right-click** on the **Floor Plan** [Viewport Tab](https://docs.mcneel.com/rhino/8/help/en-us/commands/new_viewport_arrangements.htm#ViewportTabs).
1. Select **Move or Copy**.
1. In the **Move or Copy** dialog, select:
1. (move to end)
1. Create a copy
1. Click **OK** to close the dialog.
1. **Double-click** the **Floor Plan - Copy** [tab](https://docs.mcneel.com/rhino/8/help/en-us/commands/new_viewport_arrangements.htm#ViewportTabs) and rename it to **Elevation A**.
1. Run the SelDim command and Delete them.
### Configure the Detail
1. Run the SelDetail command.
1. In the Properties panel, unselect **Lock Viewport**.
1. **Double-click** inside the **Detail** view.
1. [Pan](/docs/guides/user-guide/3-navigation-display/#panning) until the **Elevation** drawing is visible.
1. **Double-click** to go back to the **Layout view**.
1. [Select](/docs/guides/user-guide/selection/#main-selection-method) the **Detail** again.
1. In the Properties panel, on the Detail page, set the **Scale Value** as follows:
* For **centimeters on page** keep it at **1**
* For **meters in model** set it to **1.2**
* Press Enter to validate.
* Select to **Lock Viewport**.
### Assigning Lineweights
To facilitate the process, we've created standard lineweights in the Rhino file. You will learn how to assign them to the selected objects.
1. Run the Linetypes command to open the **Linetypes panel**.
1. In the Layer panel, select all **SEC_01 layers** and **select the Lock icon**. They can now be modified.
1. **Double-click** inside the **Detail view**.
1. Right-click on the layer **SEC_01Silhouette**.
1. In the context menu, select **Select Objects**.
1. Hold down Shift to add the concrete structure linework to the selection.
The selection should match the image
1. Go to the **Linetypes panel**.
1. **Right-click** on **0.7 mm** and select **Assign to selected objects**.
1. **Try it on your own!** Continue assigning different lineweights to your drawing.
[Learn more about **Linetypes Styles**...](/docs/guides/drafting/linetypes/)
### Add Annotations
1. [Add a Layer](https://docs.mcneel.com/rhino/8/help/en-us/commands/layer.htm) and name it **Dimensions 2**.
1. [Make it current](/images/rhino-user-interface/layer-make-current.gif)
1. Run the Text command.
1. In the **Text** dialog:
1. Set the **Height** to: **0.5**
1. In the text field type: **Facade A**.
1. Press **OK** to close the dialog.
1. At the **Text location** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), select a point on the **bottom-left corner** of the Detail.
1. Feel free to **add a linework** or other symbols **to emphasize the text**.
1. [Zoom](https://www.rhino3d.com/docs/guides/user-guide/navigation-display/#mouse-navigation) to the top of the drawing.
1. Run the Leader command.
1. At the **First curve point** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), select a point on the **curtain wall**.
1. At the **Next curve point** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), select a point **vertically above it**, press Enter.
1. In the **Leader** dialog box, type: **Curtain Wall**. Press **OK**.
1. **Continue adding leaders** to the other **facade elements**..
1. Use the [Gumball](/docs/guides/user-guide/gumball-basics/#1-activating-the-gumball) to [Align](docs/guides/user-guide/accuracy/#exercise-align-objects) the Leaders or their [Control Points](https://docs.mcneel.com/rhino/8/help/en-us/popup_moreinformation/controlpoint.htm) to the same height if needed.
Run the **SelLeader** command to select all **Leaders**. Then modify their text size and arrow style in the [Object Properties](https://docs.mcneel.com/rhino/8/help/en-us/commands/properties.htm) panel.
## Create a Section
**Rhino has tools for cutting through the 3D model to create section views**. ClippingSections and its [adjacent commands](https://docs.mcneel.com/rhino/8/help/en-us/toolbarmap/sections_toolbar.htm) help us visualize internal details such as wall thicknesses, interior doors, and other elements that are not visible from an exterior view.
**In this exercise, we will learn how to create a section and add it to a Layout.** We will also learn how to configure the Section Style, which includes hatches and borders.
### Create the Section
1. if you haven't followed the steps above.
1. Go back to the **Perspective** viewport using the [Viewport Tabs](https://docs.mcneel.com/rhino/8/help/en-us/commands/new_viewport_arrangements.htm#ViewportTabs).
1. [Maximize](/images/rhino-user-interface/max-viewport.gif) the Perspective.
1. Make **Section A-A** [layer current](/images/rhino-user-interface/layer-make-current.gif)
1. Select **Mid** in the [Osnap Control](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm).
1. For working clarity:
1. [Turn off layers](/images/rhino-user-interface/layer-on-off.gif): **SEC_00**, **SEC_01** and **2D Symbols**.
1. [Select](/docs/guides/user-guide/selection/#main-selection-method) and Hide all other elements in the scene.
1. Run the ClippingSections command.
1. At the **Select objects to section** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), press Enter to **Select all**.
1. At the **Place section** [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), make sure the options match:
```( Dir=X CustomDepth=No Clip=Yes Name=SEC LabelMode=Text SaveToNamedView=Yes Flip=No )```
1. Then, **snap** to the **mid-point** of the **concrete roof** structure. Press Enter.
1. The building has been clipped, and you can see inside.
1. [Select](/docs/guides/user-guide/selection/#main-selection-method) the **ClippingSection** and Hide it.
If the clipped view is facing the opposite direction, select the **Clipping Section** and select **Flip Direction** in the **Object Properties** panel.
### Add the Section to a Layout
1. [Create a copy](/docs/guides/user-guide/11-drafting-vector/#duplicate-a-layout) of the **Elevation A** Layout.
1. Rename this Layout **Section A-A** in the [tab](https://docs.mcneel.com/rhino/8/help/en-us/commands/new_viewport_arrangements.htm#ViewportTabs).
1. **Double-click** the **Facade A** text.
1. In the **Edit Text** dialog, replace with **Section A-A**. Press **OK**.
1. Run the SelLeader command and **delete all leaders**.
1. Select **End** in the [Osnap Control](https://docs.mcneel.com/rhino/8/help/en-us/index.htm#user_interface/object_snaps.htm).
1. Run the Detail command.
1. Select the **Add** option in the [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt)
1. At the **First corner of rectangle** prompt, snap to the **top-left corner** of the Titleblock.
1. At the **Other corner or length** prompt, snap to the **bottom-right corner** of the Titleblock.
1. Run the NamedView command **to open the panel**.
1. **Double-click** inside the **Detail view**.
1. From the NamedView panel, **double-click** the **SEC_00** thumbnail.
Restore the section view in the Detail. You can now see inside the building.
### Configure the Section Detail
1. [Select](/docs/guides/user-guide/selection/#main-selection-method) the **Detail** view.
1. In the Properties panel:
1. Set the scale **1 centimeter** on page for **1 meter** in model.
1. Set the **Display Mode** to **Monochrome**
1. Select **Lock Viewport**
### Define Section Styles
**[Section Styles](https://docs.mcneel.com/rhino/8/help/en-us/popup_moreinformation/sectionstyle.htm)** allow you to configure **hatch and boundary styles** to the **sectioned 3D model**. A **Section Style** can be applied to the object, the layer or the clipping section. **In this exercise, we will apply the Section Style, per Object and per Layer**.
#### Hatches and Borders per Object:
1. **Double-click** inside the **Section A-A Detail**.
1. Set the [Display Mode](https://www.rhino3d.com/docs/guides/user-guide/navigation-display/#display-modes) to **Monochrome**.
1. [Select](/docs/guides/user-guide/selection/#main-selection-method) the **concrete structure** element.
1. In the Properties panel, select the **Section Style** dropdown list and pick **Custom.**
1. In the **Section Styles** dialog:
1. For the **Hatch Pattern**, select **Plus** from the dropdown list.
1. Set the **Pattern Scale** to **0.5**
1. For the **Boundary Color**, select **Other** and pick a **dark grey** hue.
1. PressOK to close the **Section Style** dialog.
Only the concrete structure inherits the hatch and border style
#### Hatches and Borders per Layer:
1. Click on the **Perspective** [tab](https://docs.mcneel.com/rhino/8/help/en-us/commands/new_viewport_arrangements.htm#ViewportTabs) to go back to **Model Space**.
1. In the Layer panel, expand the **CURTAIN WALL** layer to find the **curtain wall mullions** sublayer.
1. Find the **Section Style** column of the Layer panel.
1. Select **None** to open the **Section Style** dialog.
Section Style column in the Layer panel
You might need to drag the Layer panel border to find the **Section Style** column.
1. In the **Section Styles** dialog:
1. For the **Hatch Pattern**, select **Hatch2** from the dropdown list.
1. For the **Pattern Color**, select **Blue** from the dropdown list.
1. Set the **Pattern Rotation** to **45**.
1. Set the **Pattern Scale** to **0.1**.
1. For the **Boundary Color**, select **Blue** from the dropdown list.
1. Set the **Boundary Width Scale** to **2**.
1. PressOK to close the **Section Style** dialog.
1. [Zoom in](https://www.rhino3d.com/docs/guides/user-guide/navigation-display/#mouse-navigation) to the **Section A-A Detail** to see the result.
All objects in the layer inherit the Section Style
1. **Try it on your own!** Keep adding section styles to other objects and layers in the model.
**The Section Style** is now an **attribute of the object or layer**.
Move or rotate the ClippingSection around, or modify the object, **and the section views will update in real-time!**
### Add a Material Legend
1. Go back to the **Section A-A** [tab](https://docs.mcneel.com/rhino/8/help/en-us/commands/new_viewport_arrangements.htm#ViewportTabs).
1. Run the Circle command. Place it on the **top-left** corner of the **Detail**, with a **0.5 cm** radius.
1. Copy the circle using [Gumball Copy](/images/gumball-gallery/gumball-copy.gif).
1. **Select** the **first circle**.
1. Run theHatch command.
1. In the **Hatch** dialog, recreate the **Concrete** style, defined in the
[Hatches-per-Object](/en/docs/guides/user-guide/11-drafting/#hatches-and-borders-per-object) section.
1. **Select** the **second circle**.
1. Run theHatch command.
1. In the **Hatch** dialog, recreate the **Mullions** style, defined in the
[Hatches-per-Layer](/en/docs/guides/user-guide/11-drafting/#hatches-and-borders-per-layer) section.
1. Run the Text command.
1. In the **Text** dialog:
1. For the **Style**, set it to **STANDARD**.
1. For the **Height**, type: **0.4**
1. In the **Text** box, type **Concrete**.
1. Press OK to close the **Edit Text** dialog.
1. Repeat for the second circle. Name it **Steel Mullions**.
Creating a material legend. Notice how the circles' width is thicker.
1. Try it on your own! Continue [adding other annotations](/docs/guides/user-guide/11-drafting-vector/#add-annotations) to illustrate the drawing.
## Print the Drawings
Now that we have created all our Layouts, the next step is to print them. **We can print using a physical printer or as a PDF, keeping the drawings in a shareable digital format**. For this exercise, we will use the latter.
1. if you haven't followed the steps above.
1. Run the Layouts command to open the panel.
1. **Right-click** on the **Section A-A** layout.
1. Select **Print...**.
1. In the **Print** dialog:
1. Under **Destination**
1. Select the **RhinoPDF** printer.
1. For **Size**, select **Use Layout Page Size**.
1. For **Orientation**, select **Landscape**.
1. For **Output Type**, select **Vector Output**.
1. For **Output Color**, select **Print Color**.
Printer Settings
1. Under **View and Output Scale**
1. Select **Multiple Layouts** and tick all three boxes.
1. Under **Scale 100%**, select **1:1**.
Print Scale Settings
1. Under **Linetypes and Line Widths**, select **Linetypes width are in model lengths**.
Print Scale Settings
1. Press the Print button.
1. In the **Export PDF** dialog, select a destination folder. Press the Save button.
Congratulations on following through! If you have any questions or feedback, feel free to post them on [Discourse Tutorials](https://discourse.mcneel.com/c/rhino/tutorials).
--------------------------------------------------------------------------------
# Pangolin PolyGroup Mesher for Rhino
Source: https://www.rhino3d.com/en/docs/guides/pangolinmesh/
The PangolinMesh is an polygroup mesh tools for Rhino.
**PangolinMesh** is a render mesh Polygroup plug-in for Rhino. It’s Intent is to create high quality rendering meshes that eliminate tessellation gaps between surfaces. This means an object can be made up of several separate, unjoined objects but be meshed as if they were joined. This eliminates visible gaps along adjacent edges that are often seen in detailed renderings. It also allows for easier material assignment in a 3rd party rendering package like Keyshot. Pangolin mesh has the following basic features:
These mesh tools have the following basic features:
* Creates rendering meshes from Rhino polysurfaces.
* Creates joined rendering meshes from unjoined input geometry.
Pangolin’s meshing capabilities can be used from the command line and from the graphical user interface.
[PangolinMesh](https://www.food4rhino.com/en/app/pangolinmesh) is for Rhino 7. It will be updated to Rhino 8 in the future.
Pangolin mesh can be found on:
1. [Food4Rhino PangolinMesh](https://www.food4rhino.com/en/app/pangolinmesh)
1. Install with Rhino Package Manager by typing PangolinMesh
**General Workflow**
1. Drag and drop layers into the PangolinMesh Group Panel. Objects in the same group will mesh as if they are joined.
1. Run the Pangolin Mesh command to create render meshes associated with those objects in the groups.
1. Set Material assignments to the layers or the objects directly.
# Commands
**PangolinMesh**
Used without a hyphen prefix, this command opens the meshing settings dialog and allows the user to select various options and finally create the mesh.
Used with a hyphen prefix (ie - “-PangolinMesh”), the command presents the various options on the command line and allows the creation of the final mesh.
**PangolinGroups**
Opens the Pangolin group panel (see Pangolin Groups above). This panel can be docked along with other panels, or it can be free floating.
**PangolinZoomSelected**
See Result above. Zooms onto the polysurface that relates to the tagged problem.
# PangolinMesh Command
## Creating a rendering mesh from a polysurface using PangolinMesh
To begin the creation of a rendering mesh, select a polysurface and type the **PangolinMesh** command at the Rhino command prompt. The following dialog will appear:

### Command Buttons

You can check the rendering mesh result before committing it to the model by pressing the “Preview” button.
Pressing “OK” will add the mesh(es) to the model. Cancel will stop the process without making any changes to the model.
The “Advanced…” button switches to the advanced UI. See “Advanced…” below.
## Other Settings
### Presets

Pangolin can switch between a number of preset settings. The presets are stored in XML files in a special folder in your computer’s user account. You can open this folder by clicking the “Open” icon to the right of the combo box.
* You can switch to any of the installed presets by choosing the name from the combo box.
* To install new presets, or delete existing presets just add or remove xml files from the folder.
* The current settings can be saved to the presets folder by pressing the “Save” button.
* You can control the settings that appear the first time you run PangolinMesh in a session of Rhino by saving a file called “default.xml” in the preset folder.
### Simple Meshing Parameters

Each of the following values can be optionally ignored by setting them to 0.0.
### Tolerance
Sets the maximum distance that the center of a mesh face will deviate from the input surface.
### Minimum edge length
Removes small triangles during the initial subdivision phase by ensuring mesh edge lengths do not drop below the specified value.
### Maximum edge length
Causes additional subdivision of a mesh face if edge lengths exceed the specified value.
### Maximum aspect ratio
Causes additional subdivision of a mesh face if its aspect ratio exceeds the specified value. This can be used to remove long thin triangles, although please note that it only affects the initial subdivision, not the final tessellation.
### Polygon count
Displays the number of mesh faces created if the current settings are used. Click the “Preview” button to generate the render mesh.

These settings determine how the mesh and polysurfaces are presented after the Preview button has been pressed.
### Show mesh wires
If checked, the mesh wires of the preview render mesh will be displayed.
### Show naked edges
If checked, naked edges on the preview rendering mesh will be highlighted. (Not yet implemented)
### Show surface wires
If checked, the surface edges and iso-params of the input polysurfaces will be displayed.
### Highlight problem faces
If checked, polysurfaces that reported a problem or a warning will be highlighted in red and yellow respectively.
### Auto-join mode
The auto-join mode determines the way Pangolin creates rendering meshes from unjoined input polysurfaces. If two polysurfaces are adjacent but un-joined, Rhino will not treat them as being joined and will create two meshes whose edge vertices may not align. This means that the two meshes cannot be joined into a watertight mesh after the meshing operation, and may show gaps between the parts when rendered.
Pangolin’s “auto-join” feature attempts to treat adjacent polysurfaces as a single joined object and will create the meshes with co-aligned vertices. It is possible to control which polysurfaces should be considered joined by using the PangolinGroups feature.
The options for auto-joining are:
**None**

Each individual polysurface will result in an individual rendering mesh. No attempt will be made to align vertices between adjacent rendering meshes. (This works similarly to the Rhino mesh command)
**Selection**

All of the polysurfaces in the current selection will be checked for adjacency with each other. If the distance between their edges is less than the “Global join tolerance”, they will be treated as joined and the rendering meshes will be created with aligned vertices.
In Selection mode, all groups defined in the *PangolinGroups* panel will be ignored when checking for input surface adjacency.
If the “Join Meshes” check box is checked, rendering meshes from adjacent input polysurfaces on the same layer will be joined into a single render mesh.
**Groups**

Polysurfaces will be tested for adjacency with other polysurfaces in the same group. The group of a polysurface is determined by the group its layer is placed in on the PangolinGroups panel.
Grouped polysurfaces are considered adjacent if they are closer than the minimum join tolerance - or they are closer than the minimum join tolerance specified for that group in the PangolinGroups panel, whichever is the larger value.
Adjacent grouped polysurfaces will have their meshes generated with aligned vertices so that they can be joined into a watertight mesh.
If the “Join Meshes” check box is checked, meshes from adjacent input polysurfaces on the same layer will be joined into a single rendering mesh which will eliminate any gaps in the tessellation between surfaces.
### Result
The result field shows reported problems and warnings from the preview meshing process. The “Preview” button must be pressed to show these results.
Clicking the “Tag and Close” button on the right of the field closes the Pangolin Mesher Settings dialog and adds a text dot object at the location of each problem and warning.
More information about the reported problem or warning can be found in the Pangolin Object Properties page for each text dot.

Clicking the “Tag and Close” button on the right of the field closes the Pangolin Mesher Settings dialog and adds a text dot object at the location of each problem and warning.
More information about the reported problem or warning can be found in the Pangolin Object Properties page for each text dot.

You can zoom into the object causing the problem report by pressing the “Zoom” button at the bottom of the object properties page when the text dot is selected. You can alternatively run the **PangolinZoomSelected** command to achieve the same result.
## Advanced

Clicking the “Advanced…” button at the bottom of the dialog switches the “Simple meshing parameters” to the “Advanced meshing parameters” set of controls. You can return to the “Simple meshing parameters” by clicking on the “Simple…” button.
The advanced parameters are for expert usage only and are only exposed to allow users to test the internal POPLib meshing parameters directly. They are not documented here. Further information is available in the POPLib documentation.
# PangolinMesh groups

The Pangolin Groups panel is opened using the PangolinGroups command. In Rhino 5 it is used in combination with the Pangolin Layers panel (open using PangolinLayers command). In Rhino 6 the same functionality is available from the Rhino layers panel.
Pangolin groups determine how objects are associated with each other during the process of “auto-joining” when the meshing auto-join mode is set to Groups.
Objects are always grouped using their Rhino layer. Pangolin groups are a list of layers. A Pangolin group can contain any layer - including the sublayer of a layer that is in a different group. The Pangolin Groups panel shows the hierarchical relationship between layers in that group, but it is still possible to place sub-layers into other groups.
## Managing Groups

### Adding a group
Pangolin Groups are created by clicking the “+” button in the Pangolin Groups panel. Once created, layers are assigned to groups by dragging a layer from the Pangolin Layers panel (Rhino layers panel in Rhino 6) to a group in the Pangolin Groups panel. Dragging a parent layer will also add its sub-layers.
### Deleting a group
Groups may be deleted using the Delete Group button on the panel toolbar or right clicking on the group.
### Select objects not in a group
Clicking this button selects all of the objects in the current model that have not been assigned to a group. In other words, all objects that are on a layer that has not been added to one of the groups.
### Select layers not in a group
Selects all of the layers in the Pangolin Layers panel (or Rhino 6 layers panel) that have not been assigned to a group.
### Select layers from objects selection
Selects the layers in the Pangolin Layers panel (or Rhino 6 layers panel) that the selected objects is on.
### Open the layers panel
Opens the PangolinLayers panel (or Rhino 6 layers panel).
### Run the mesher command
Opens the mesher dialog - runs PangolinMesh
### Group color
Groups are assigned a color at random when they are created. This color is used to identify objects within the group when the “Show group color” checkbox is checked (at the bottom of the panel). Those objects not in a group are shown in the color selected by the color button at the bottom right of the panel.
### Per-group join tolerance
Join tolerance can be specified per-group. See Groups for more information.
--------------------------------------------------------------------------------
# Using Adobe Substance 3D Designer with Rhino
Source: https://www.rhino3d.com/en/docs/guides/rendering-new/adobe-substance-integration/
The Substance Importer plug-in for Rhino enables you to easily import Substance materials (SBSAR files) directly into Rhino as Physically Based materials.
Rhinoceros includes PBR and can import [Adobe Substance 3D Designer](https://www.adobe.com/products/substance3d-designer.html) materials for realistic-looking renderings! The Substance Importer plugin for Rhino enables you to easily import Substance 3D materials (SBSAR files) into Rhino as “Physically Based” materials. The material presets and parameters can be edited directly within Rhino.

Credit: Adobe Substance 3D Designer - [See full article](https://substance3d.adobe.com/magazine/exploring-product-design-workflows-creative-iterations-with-substance)
## Integration of Substance materials into Rhino
Substance 3D materials from Adobe Substance 3D Assets library, Adobe Substance 3D Community assets or directly created in Adobe Substance 3D Designer or Sampler, are supported in Rhino through a free plugin (SubstanceImporter). Substance Importer enables SBSAR as a file format, which can be imported into the Rhino material editor using the "Substance" type or by drag and drop. In addition to the import feature, Substance 3D parametric assets can be edited directly in Rhino by tweaking the parameters in Rhino material and seeing the variations in real-time in Rhino viewer.
To install the plugin:
1. Go to the Tools pulldown > Package Manager.
2. Search for SubStanceImporter.
3. Click Download and Install.
4. Restart Rhino.
The video below covers more of the details on using these materials:
## Substance Applications
[Adobe Substance 3D Designer](https://www.adobe.com/products/substance3d-designer.html) is the reference solution for 3D digital materials authoring and texturing.
* Download and share for free 3D assets created by the Substance 3D community on [Adobe Substance 3D Community Assets](https://substance3d.adobe.com/community-assets).
* Download high-end Substance 3D materials with [Substance 3D Assets library](https://substance3d.adobe.com/assets).
* Use [Substance 3D Sampler](https://www.adobe.com/products/substance3d-sampler.html) to convert physical samples and photos into digital asset, blend existing resources, apply filters and publish Substance 3D materials.
* Design Substance 3D materials from scratch in [Substance 3D Designer](https://www.adobe.com/products/substance3d-designer.html).
* Paint and apply materials on a 3D models with [Substance 3D Painter](https://www.adobe.com/products/substance3d-painter.html).
Here is an introductory look at using Substance 3D Sampler:
Get started with Adobe Substance 3D? Find more learning content on [Substance 3D Tutorials](https://substance3d.adobe.com/tutorials) or [Substance Youtube](https://www.youtube.com/c/substance3d) channel. Learn more on [https://www.adobe.com/products/substance3d/3d-augmented-reality.html](https://www.adobe.com/products/substance3d/3d-augmented-reality.html).
## Substance Material Examples
### Wood Collection
The wood category on Substance 3D Assets library currently offers more than 1,400 unique and fully parametric materials. [Discover all the different ways wood materials can work...](https://magazine.substance3d.com/lost-in-the-parametric-woods/)

### Marble Collection
Timeless Elegance: Marble Materials on Substance 3D Assets library feature 670 ready-to-use marbles with exposed parameters. [Find out more about the marbles...](https://magazine.substance3d.com/timeless-elegance-marble-materials-on-substance-source/)

### Leather Collection
More then 1000 leather materials that are fully procedural! A lightweight solution that is completely customizable yet remains photorealistic in every detail. [See how to use the leathers...](https://magazine.substance3d.com/welcome-to-our-digital-leather-workshop/)

### Fabric Collection
500 digital fabrics are already available in the Substance library. [Explore the ways Fabrics can be modified...](https://magazine.substance3d.com/ready-to-texture-2020-fashion-and-apparel-parametric-collection/)

## Substance Painter Workflow and Rhino
The workflow with Adobe Substance 3D Painter is quite different from the above mentioned apps. Here are the details on a workflow with Substance 3D Painter:
--------------------------------------------------------------------------------
# Using Adobe Substance 3D Designer with Rhino
Source: https://www.rhino3d.com/en/docs/guides/rendering/adobe-substance-integration/
The Substance Importer plug-in for Rhino enables you to easily import Substance materials (SBSAR files) directly into Rhino as Physically Based materials.
Rhinoceros includes PBR and can import [Adobe Substance 3D Designer](https://www.adobe.com/products/substance3d-designer.html) materials for realistic-looking renderings! The Substance Importer plugin for Rhino enables you to easily import Substance 3D materials (SBSAR files) into Rhino as “Physically Based” materials. The material presets and parameters can be edited directly within Rhino.

Credit: Adobe Substance 3D Designer - [See full article](https://substance3d.adobe.com/magazine/exploring-product-design-workflows-creative-iterations-with-substance)
## Integration of Substance materials into Rhino
Substance 3D materials from Adobe Substance 3D Assets library, Adobe Substance 3D Community assets or directly created in Adobe Substance 3D Designer or Sampler, are supported in Rhino through a free plugin (SubstanceImporter). Substance Importer enables SBSAR as a file format, which can be imported into the Rhino material editor using the "Substance" type or by drag and drop. In addition to the import feature, Substance 3D parametric assets can be edited directly in Rhino by tweaking the parameters in Rhino material and seeing the variations in real-time in Rhino viewer.
To install the plugin:
1. Go to the Tools pulldown > Package Manager.
2. Search for SubStanceImporter.
3. Click Download and Install.
4. Restart Rhino.
The video below covers more of the details on using these materials:
## Substance Applications
[Adobe Substance 3D Designer](https://www.adobe.com/products/substance3d-designer.html) is the reference solution for 3D digital materials authoring and texturing.
* Download and share for free 3D assets created by the Substance 3D community on [Adobe Substance 3D Community Assets](https://substance3d.adobe.com/community-assets).
* Download high-end Substance 3D materials with [Substance 3D Assets library](https://substance3d.adobe.com/assets).
* Use [Substance 3D Sampler](https://www.adobe.com/products/substance3d-sampler.html) to convert physical samples and photos into digital asset, blend existing resources, apply filters and publish Substance 3D materials.
* Design Substance 3D materials from scratch in [Substance 3D Designer](https://www.adobe.com/products/substance3d-designer.html).
* Paint and apply materials on a 3D models with [Substance 3D Painter](https://www.adobe.com/products/substance3d-painter.html).
Here is an introductory look at using Substance 3D Sampler:
Get started with Adobe Substance 3D? Find more learning content on [Substance 3D Tutorials](https://substance3d.adobe.com/tutorials) or [Substance Youtube](https://www.youtube.com/c/substance3d) channel. Learn more on [https://www.adobe.com/products/substance3d/3d-augmented-reality.html](https://www.adobe.com/products/substance3d/3d-augmented-reality.html).
## Substance Material Examples
### Wood Collection
The wood category on Substance 3D Assets library currently offers more than 1,400 unique and fully parametric materials. [Discover all the different ways wood materials can work...](https://magazine.substance3d.com/lost-in-the-parametric-woods/)

### Marble Collection
Timeless Elegance: Marble Materials on Substance 3D Assets library feature 670 ready-to-use marbles with exposed parameters. [Find out more about the marbles...](https://magazine.substance3d.com/timeless-elegance-marble-materials-on-substance-source/)

### Leather Collection
More then 1000 leather materials that are fully procedural! A lightweight solution that is completely customizable yet remains photorealistic in every detail. [See how to use the leathers...](https://magazine.substance3d.com/welcome-to-our-digital-leather-workshop/)

### Fabric Collection
500 digital fabrics are already available in the Substance library. [Explore the ways Fabrics can be modified...](https://magazine.substance3d.com/ready-to-texture-2020-fashion-and-apparel-parametric-collection/)

## Substance Painter Workflow and Rhino
The workflow with Adobe Substance 3D Painter is quite different from the above mentioned apps. Here are the details on a workflow with Substance 3D Painter:
--------------------------------------------------------------------------------
# Getting Started with Furniture Design 2
Source: https://www.rhino3d.com/en/docs/guides/modeling/rhino-7-getting-started2/
Sort tutorials that demonstrate how to build each object in this scene while learning the basics of Rhino.
Sort tutorials that demonstrate how to build each object in this scene while learning the basics of Rhino.
What will you learn about
Modeling Aids
Construction Planes
Creating Curves
Creating Surfaces
Form Finding
Building Solids
Editing Solids
Apply Materials
##
## Table Tutorial (6 minutes)
In this model, the Grid Snap setting is one-half of a grid line. Using this snap, you should be able to line objects up with each other.\
### Creating Curves
1. If **Gumball** is on bold in the **Status Bar**, gumball is on.
2. Click to turn gumball off.
3. Click the cone and drag it.
4. Drag the objects around. You can drag in any viewport.\
The selected cone changes to the selection color.\

### Control point editing
1. On the **File** menu, click **Open**.
2. **Do not save** the changes.
3. In the **Open** dialog box, select **Start.3dm**.
### Extruding
1. Click the box to select it.
2. On the **Transform** menu, click **Copy**.
3. Click somewhere in the **Top** viewport.\
It usually helps to click a spot that relates to the object like the middle or near a corner.\

4. Click where you want the first copy.\
Zoom in closer if you like.
5. Click other places to make more copies of the box.
6. When you have enough copies, press Enter.\
 
## Chair Tutorial (7 minutes)
To create more objects, copy the shapes.
Gumball displays a widget on a selected object, which is used to facilitate the direct editing. The gumball provides move, scale, and rotate transformations around the gumball origin.
- Click the **Gumball **pane on the Status Bar.\

### Lofting
- Drag gumball arrows to Move the object.
- Drag scale handles (squares) to Scale the object in one direction.
- Drag arcs to rotate the object.
- Tap the Alt key after starting to drag to toggle copy mode.
- Click a control handle to enter a numeric value.
- Hold the Shift key during Scale to force 3-D scale.
### Control Point editing
 Axis plane indicator
 Free move origin
 Menu location
### Revolving
 Move X
 Move Y
 Move Z
### Obtaining a Closed Solid
 Rotate X
 Rotate Y
 Rotate Z
## Lamp Tutorial (6 minutes)
To create more objects, copy the shapes.
Gumball displays a widget on a selected object, which is used to facilitate the direct editing. The gumball provides move, scale, and rotate transformations around the gumball origin.
### Helix Command
1. In the **Top** viewport, select the cone.
2. Drag the **red arrow** to move the object in the positive x or negative x-direction.\

3. Drag the **green arrow** to move the object in the positive y or negative y-direction.\

4. In the **Front** viewport, select the cone.
5. Drag the **blue arrow **to move the object in the positive z or negative z-direction.\

6. **Undo** enough times to get back to the original model.
### Pipe Command
In this exercise you will drag objects with the gumball and tap the Alt key after starting to drag to toggle copy mode.
1. In the **Top** viewport, select the cone.
2. Drag the **red arrow** to move the object in the positive x or negative x direction.\

3. While still dragging, tap the Alt key.\
A plus + appears to the right of the red arrow.\
When you release the mouse button, a copy of the object is created.\

### Revolving
Drag arcs to rotate the object.
1. In the **Top** viewport, select the cone.
2. Click and drag along blue arc to rotate cone.\

3. In the **Right** viewport, click and drag along green arc to rotate cone.
4. **Undo** enough times to get back to the original model.\

#### Comtrol Point edit surface
- Drag scale handles (squares) to Scale the object in one direction.
- Click a scale control handles (squares) to enter numeric value.
- Hold the Shift key during Scale to force 3-D scale.
Change the view of your model
-----------------------------
When you add detail to your models, you will need to see different parts of your model with different magnifications. You can use the view commands, the mouse, and the keyboard to change the view in a viewport.
Each view corresponds to the view through a camera lens. The invisible target of the camera is located in the middle of the viewport.
--------------------------------------------------------------------------------
# Fix Errors Installing, Uninstalling, Upgrading, or Repairing Rhino installations
Source: https://www.rhino3d.com/en/kb/fix-add-remove-programs/
Utility to fix Rhino when it cannot install, uninstall, or repair.
### Symptom
Rhino for Windows fails to install, uninstall, or repair with error code -2147023284
### Affected Versions of Rhino
* Rhino 7 for Windows
* Rhino 8 for Windows
* Rhino 9 for Windows
### Resolution
1. Download [RhinoInstallRepair.exe](https://files.mcneel.com/rhino/8/RhinoInstallRepair.exe)
1. Run RhinoInstallRepair.exe
The utility will:
* Prompt to elevate and run with Administrator permissions
* Detect the versions of Rhino that are currently installed
* Download the installers for the broken installations
* Repairs the installations
--------------------------------------------------------------------------------
# All Knowledgebase Articles
Source: https://www.rhino3d.com/en/kb/all/
A complete, crawlable index of every Rhino knowledgebase article.
A complete list of every article in the Rhino knowledgebase.
--------------------------------------------------------------------------------
# Clipboard
Source: https://www.rhino3d.com/en/9/how/drafting/clipboard/
Details
How to use new Clipboard features
Clipboard
--------------------------------------------------------------------------------
# Clipboard Enhancements
Source: https://www.rhino3d.com/en/features/drafting/clipboard/
More Clipboard
Copy from Rhino 9 and paste into any version of Rhino going back to Rhino 5.
PasteAsBlock streamlines the process of automatically creating blocks from the geometry in the clipboard.
Create an exact duplicate of selected objects while specifying a reference point, known as the base point, for the copy. This method offers several benefits:
1. Precision and Control:
By defining a base point, you can precisely control where the copied objects will be placed. This is particularly useful when you need to maintain a specific relationship between the original and the new objects in the drawing.
2. Accurate Placement:
When you copy an object using a base point, you can then move the duplicate to any location by specifying a second point. This ensures that the copied object aligns perfectly where you need it, relative to the base point you chose.
3. Consistent Referencing:
For complex drawings or when working with multiple copies of objects, having a consistent base point ensures that all instances of the object are aligned in the same way. This is helpful when making repetitive tasks like duplicating doors, windows, or structural elements.
4. Efficiency:
Streamline the process of moving objects around your drawing. Instead of having to manually place objects in the right spots, you can quickly move a duplicate to a specific location by defining a precise base point.
5. Avoiding Errors:
Without a base point, objects might end up being placed incorrectly when using the regular copy command. The base point ensures that the new objects maintain the same orientation and distance from one another.
## Gallery
Clipboard
## Before and After
## Try It
*
* Select objects:
* Run the **CopyToClipboardAt** command (Ctrl+Shift+C on Windows; Command+Shift+C on Mac)
* Click to set a base point
* Run the **Paste** command (Ctrl+V on Windows; Command+V on Mac)
* Click several times to place several copies of clipboard geometry in different locations
* Select objects:
* Run the **CopyToClipboard** command (Ctrl+C on Windows; Command+C on Mac)
* Start an earlier version of Rhino (5, 6, 7, or 8)
* Paste the geometry into the older version of Rhino
* Ask questions and give feedback on the [Discourse Forum](https://discourse.mcneel.com).
--------------------------------------------------------------------------------
# Details
Source: https://www.rhino3d.com/en/9/how/drafting/non-rectangular-details/
Details
How to use Non-Rectangular Details
Non-Rectangular Detail
--------------------------------------------------------------------------------
# Details
Source: https://www.rhino3d.com/en/features/drafting/details/
Details
## Gallery
Non-Rectangular Detail
## Before and After
## Try It
*
* Run the **Command** command:
* Select a _thing_
* Click _something_
* Press Enter when done
* Ask questions and give feedback on the [Discourse Forum](https://discourse.mcneel.com).
* Grasshopper users can _link to ghdocs_
* Developers: _link to devdocs_ is available in RhinoCommon for use in C# and Python.
--------------------------------------------------------------------------------
# Privacy Policy
Source: https://www.rhino3d.com/en/privacy/new/
Updated
NOTE: Unless you are a Customer or User, providing any information to us is **optional**. We will still do our best to help; it is just much easier if we know what is important to you and have a way to contact you.
## 1. Definitions
Throughout this document, we may use certain words or phrases, and it is important that you understand the meaning of them. The following is a non-exhaustive list of definitions of words and phrases found in this document:
* "Program" refers to our software application.
* "Programs" refers to our software applications, including "Rhinoceros," "iRhino 3D," "Flamingo," "Brazil," and "Bongo".
* "Installer" refers to the program that installs our Program.
* "McNeel" refers to our company, known as "Robert McNeel & Associates", our Site, our Products our Service, or a combination of all or some of the preceding definitions, depending on the context in which the word is used.
* "Service" refers to the services that we provide, including our Site, our Programs, our Installer.
* "Site" refers to our websites, including: http://www.mcneel.com, https://www.rhino3d.com, http://discourse.mcneel.com.
* "User" refers to anyone who uses our Program, Installer, Site, or Service in general.
* "You" refers to you, the person who is governed by this Privacy Policy.
## 2. Information we collect
### Identifying Information
We may collect the following categories of personal information:
* Identifiers (e.g., name, email address, phone number, account number)
* Internet or other electronic network activity information (e.g., browsing history on our website)
* Geolocation data (if provided by you or your device)
* Commercial information (e.g., records of products or services purchased)
### Demographic Data
We may collect demographic data, such as industry, profession, years of experience, and other similar attributes, but only if you choose to provide it by opting in. This data is handled with the same level of security and protection as other identifying information, in accordance with this Privacy Policy.
### Non-identifying information
Whenever you visit our Site, we may collect non-identifying information from you, such as your IP address, referring URL, browser, operating system, cookie information, and Internet Service Provider. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, this information alone cannot usually be used to identify you.
The iRhino 3D app uses ARKit's face tracking feature when enabled for augmented reality (AR) mode. This feature determines position and orientation of the face in order to display a virtual 3D model. Face tracking information is only made available to iRhino 3D when AR mode is initiated by the user and the front facing camera is enabled. Face tracking information is only used for aligning 3D models while updating the display. Face tracking information is not shared and is not stored.
### Usage statistics
Some Programs and their Installers send information to McNeel servers. This information may include a randomly generated globally unique identifier (GUID) that is stored on your computer, your user ID, and your email address. This allows us to differentiate between one person experiencing a problem one hundred times, and one hundred people experiencing a problem one time each. Each product and installer provides an option to opt-out of sending usage statistics. See documentation for your product for details.
## 3. What we do with your information
* Keep it confidential.
* Improve this website so that it better fits your needs.
* Improve our products so that they better fit your needs.
* Build an electronic newsletter subscription list so that we can notify subscribers of update information on our products (and related products), support, training, and events.
## 4. What we do NOT do with your information
* Sell or provide your information to anyone outside this organization.
* Provide your information to our resellers, distributors, or OEMs.
## 5. Updating your information
To change your email address, [email](bob.mcneel@mcneel.com) us both your **old** and **new** email addresses. You can update your Rhino Account details [here](https://accounts.rhino3d.com/?controller=home).
## 6. Cancel your subscription
To remove your email from our eNew subscription list, forward the last eNews you received from us to remove@mcneel.com
## 7. Third-party websites
McNeel may post links to third-party websites on its Site or within its Programs. These third-party websites are not screened for privacy or security issues by McNeel, and you release us from any liability for the conduct of these third-party websites.
Please be aware that this Privacy Policy and any other policies in place, along with any amendments, do not create rights enforceable by third parties or require disclosure of any personal information relating to members of the Service or Site. McNeel bears no responsibility for the information collected or used by any advertiser or third-party website. Please review the privacy policy and terms of service for each site you visit through third-party links.
## 8. Third-party access to your information
Although you are entering into an Agreement with McNeel to disclose your information to us, we do use third-party individuals or organizations to assist us, including contractors, web hosts, or others.
Throughout the course of our provision of our Service to you, we may delegate our authority to collect, access, use, and disseminate your information. For example, our web host stores the information that you provide to us, and we may hire outside contractors to perform maintenance or assist us in securing our Site.
It is therefore necessary that you grant the third parties we may use in the course of our business the same rights that you afford us under this Privacy Policy. For this reason, you hereby agree that for every authorization which you grant to us in this Privacy Policy, you also grant to any third party that we may hire, contract, or otherwise retain the services of to operate, maintain, repair, or otherwise improve or preserve our website or its underlying files or systems. You agree not to hold us liable for the actions of any of these third parties, even if we would normally be held vicariously liable for their actions and that you must take legal action against them directly should they commit any tort or other actionable wrong against you.
Without limiting the generality of the foregoing, you authorize us to collect, share, store, exchange, analyze, and otherwise use your information in conjunction with these and other service providers:
| Service | Description |
|---------|-------------|
| [Google Analytics](https://www.google.com/analytics/terms/) | Compiles visitor statistics on our web sites. You can opt out of Google analytics using a [browser extension](https://tools.google.com/dlpage/gaoptout). |
| [Google Cloud Platform](https://cloud.google.com/security/privacy/) | Provides cloud servers and services, in service regions across the world, to host, deliver, and speed up web our web sites and downloads. Some of your data may be stored on these servers. |
| [Amazon Web Services](https://aws.amazon.com/privacy/) | Provides cloud servers and services, in service regions across the world, to host, deliver, and speed up web our web sites and downloads. Also provides services for sending email. Some of your data may be stored on these servers. |
| [Microsoft Azure](https://www.microsoft.com/en-us/TrustCenter/Privacy/default.aspx) | Provides cloud servers and services, in service regions across the world, to host, deliver, and speed up web our web sites and downloads. Some of your data may be stored on these servers. |
| [RayGun](https://raygun.com/privacy) | Raygun provides error, crash and performance monitoring for software teams. |
| [Apple, Inc.](https://apple.com/privacy) | Our products that run on Apple devices may be distributed via Apple. |
| [SupportBee](https://supportbee.com/privacy-policy) | Emails you send to our sales and support teams are processed by SupportBee. |
## 9. Release of Your Information for legal purposes
At times it may become necessary to release your information in response to a request from a government agency or a private litigant. You agree that we may disclose your information to a third party where we believe, in good faith, that it is desirable to do so for a civil action, criminal investigation, or other legal matter. In the event that we receive a subpoena affecting your privacy, we may elect to notify you to give you an opportunity to file a motion to quash the subpoena, or we may attempt to quash it ourselves, but we are not obligated to do either. We may also proactively report you and release your information to third parties where we believe that it is prudent to do so for legal reasons, such as our belief that you have engaged in fraudulent activities. You release us from any damages that may arise from or relate to the release of your information to a request from law enforcement agencies or private litigants.
## 10. Commercial and non-commercial communications
By providing information to the Site that forms the basis of communication with you, such as contact information, you waive all rights to file complaints concerning unsolicited emails from McNeel since, by providing such information, you agree to receive communications from us or anyone else covered under this Privacy Policy. However, you may unsubscribe from certain communications by notifying McNeel that you no longer wish to receive solicitations or information and we will endeavor to remove you from the database.
## 11. Security measures
We take certain measures to enhance the security of our Site and Service, as it is in our interest to do so. However, we make no representations as to the security or privacy of your information. It is in our interest to keep our websites secure, but we recommend that you use anti-virus software, firewalls, and other precautions to protect yourself from security threats.
## 12. Your California online privacy rights
McNeel permits residents of California to use its services. Therefore, it is the intent of McNeel to comply with the California Consumer Privacy Act. Various provisions throughout this Privacy Policy address requirements of the California privacy statutes. In summary, you must presume that we collect electronic information from all visitors. You may contact us at sales@mcneel.com with any questions.
If you are a California resident, you have the following rights regarding your personal information:
* Right to Know: You can request details about the personal information we collect, use, disclose, and sell.
* Right to Delete: You can request that we delete your personal information, subject to certain exceptions.
* Right to Non-Discrimination: You have the right to receive equal service and price even if you exercise your privacy rights.
To exercise your rights under the CCPA, you may:
* Call us at (206) 545-7000
* Email us at sales@mcneel.com
We will verify your identity before fulfilling your request to protect your privacy and security.
## 13. International transfer
Your information may be transferred to and maintained on computers located outside of your state, province, country or other governmental jurisdiction where the privacy laws may not be as protective as those in your jurisdiction. If you are located outside the United States and choose to provide information to us, McNeel transfers Personal Information to the United States and processes it there. Your consent to this Privacy Policy followed by your submission of such information represents your agreement to that transfer.
## 14. Amendments
We may amend this Privacy Policy at any time. When we amend this Privacy Policy, we will update this page accordingly. You must read this page each time you use our Service, and your continued use of our Service shall constitute your acceptance of any such amendments.
--------------------------------------------------------------------------------
# Rhino Licensing Guide: Educational
Source: https://www.rhino3d.com/en/docs/guides/licensing/educational/
Rhino educational licensing guide

## Educational License Terms
*Single-User (Student or Faculty)*
1. The educational license is **upgradeable**. You can get an academic update to the latest version, if you are still a student or teacher. And, if you have already graduated, you can upgrade your license to Rhino (Commercial, latest version).
1. You can use your educational license on **Windows and MacOS** using a Rhino account with **Cloud Zoo**. However, you can only use one platform at a time; we will show you how to do it below.
1. If you are planning to **upgrade your Rhino 6 or 7 license** to Rhino 8, there are specific steps (Upgrading to Rhino 8 below) you should follow to use Rhino 8, 7, and 6 on any computer, whether it’s running Windows or MacOS. *Please note that you can only use one license at a time.*
Use the search box in the upper-right of this page to find content.
## Educational Setup Process
How to create your Rhino account and install your educational license
1. First, go to [**www.Rhino3D.com**](http://www.rhino3d.com) and create your Rhino Account. Follow these instructions.
1. Select -> Sign-in
▶️ https://www.rhino3d.education/courses/license-support/lectures/53738843
1. Select “Login or Create a Rhino Account”. This link will take you to the page [accounts.rhino3d.com](http://accounts.rhino3d.com), where you will need to enter your email address.
1. Select "Create a new account" to be directed to the account creation page. We will guide you through the process.
1. Carefully enter your information and double-check for accuracy, then select "Create a new account."
1. Please note that you have the option to continue using your Google account.
1. After confirming your information and creating your account, you will receive an email from [tech@mcneel.com](mailto:tech@mcneel.com). It is essential to verify your account by clicking on the link provided in the email. You will only have a few minutes to complete the verification process. In case you do not see the email in your inbox, please check your spam folder.
1. Kindly check your email inbox and search for an email from [tech@mcneel.com](mailto:tech@mcneel.com).
You will need to click on the link in the email to verify your Rhino account.
1. In your browser, a message will appear indicating that your account is ready to be edited. The first thing you need to do is create and confirm your password.
1. Congratulations on creating your Rhino Account! To access and edit your personal account details, please enter your email and password.
1. Now that you are logged into your Rhino Account, we can edit some of your personal information by selecting View and edit your account information.
▶️ https://www.rhino3d.education/courses/license-support/lectures/53837418
## Account Editing Page
This is the account editing page. For security and access after school, add another email.
1. Please provide a second email address for security purposes or if your primary email address becomes inactive. Also, select which email will be your primary email, where all notifications and information about free updates available for your version of Rhino will arrive.
▶️ https://www.rhino3d.education/courses/license-support/lectures/53696768
1. View and edit your personal information: name, phone number, country,
language, and photo.
▶️ https://www.rhino3d.education/courses/license-support/lectures/53837418
1. Change your password and make sure to save it securely. You may need it later.
▶️ https://www.rhino3d.education/courses/license-support/lectures/53696753
1. It is not possible to assign single-user educational licenses to a TEAM in the Cloud
Zoo.
1. View, add, and delete the license associated with your Rhino Account.
▶️ https://www.rhino3d.education/courses/license-support/lectures/53768533
## Upgrading to Rhino 8
Here are the step-by-step instructions for upgrading to Rhino 8 and connecting it to a previous version of Rhino.
1. If you purchased an upgrade to Rhino 8, you must have had a license lower than 8. If you do not have a previous license, you will not be able to install your upgrade, and you will need to contact your representative.
1. Please log in to your Rhino Account.
▶️ https://www.rhino3d.education/courses/license-support/lectures/53742196
1. Add your upgrade license to your Rhino Account.
▶️ https://www.rhino3d.education/courses/license-support/lectures/53768533
## Legacy Keys
If you need to use Rhino 7 or Rhino 6 but have purchased a Rhino 8 license, don't worry.
You can request a previous license for these versions and download them to your Rhino Account. To do this, go to the [**www.Rhino3d.com**](http://www.rhino3d.com) page, select download or support, and click "Get a Legacy Key." If you require a Rhino 6 code, you will first need to obtain the Rhino 7 code.
▶️ https://www.rhino3d.education/courses/license-support/lectures/53769243
Once you click on Rhino 7 Legacy Key, you’ll be prompted to write your email and your Rhino 8 License Key.
▶️ https://www.rhino3d.education/admin-app/courses/1970461/curriculum/lessons/53769243
After you click Next, you will receive an email containing the Rhino 7 License Key and installation instructions.
▶️ https://www.rhino3d.education/admin-app/courses/1970461/curriculum/lessons/53769243
You can learn more about managing your **account** by watching these short, step-by-step videos.
## Frequently Asked Questions (FAQ)
This section covers how to create your **Rhino account**, how to install & validate your license, manage your email address(es), and additional information that will be very helpful to you in managing your Rhino account.
- [▶️ How to create a Rhino Account](https://www.rhino3d.education/courses/license-support/lectures/53738843)
- [▶️ For security, add another email address to your Rhino account](https://www.rhino3d.education/courses/license-support/lectures/53696768)
- [▶️ How to view, add, or remove a license from your Rhino Account](https://www.rhino3d.education/courses/license-support/lectures/53768533)
- [▶️ Install and validate your Rhino license](https://www.rhino3d.education/courses/license-support/lectures/53782857)
- [▶️ Get a Rhino 7 or Rhino 6 if I have a Rhino 8 license](https://www.rhino3d.education/courses/license-support/lectures/53769243)
- [▶️ I have lost or forgotten my password. How can I retrieve it?](https://www.rhino3d.education/courses/license-support/lectures/53713201)
- [▶️ How to change your password](https://www.rhino3d.education/courses/license-support/lectures/53696753)
- [▶️ Choose the Rhino Account you would like to utilize](https://www.rhino3d.education/courses/license-support/lectures/53742196)
- [▶️ How do you change the language in Rhino?](https://www.rhino3d.education/courses/license-support/lectures/53696558)
- [▶️ How to remove your Rhino license from your PC or Mac?](https://www.rhino3d.education/courses/license-support/lectures/54303973)
- [▶️ How can you repair your Rhino license?](https://www.rhino3d.education/courses/license-support/lectures/53696777)
- [▶️ Obtain a Rhino 7 or Rhino 6 license if you purchased a Rhino 8 license](https://www.rhino3d.education/courses/license-support/lectures/53769243)
Congratulations! Hopefully, you are well on your way to using Rhino, now.
--------------------------------------------------------------------------------
# Rhino Licensing Guide: 90-Day Evaluation
Source: https://www.rhino3d.com/en/docs/guides/licensing/90-day-evaluation/
Rhino 90-day evaluation licensing guide

## 90-Day Eval Terms
*One evaluation per customer, per major version*
1. Remember that it is a **90-day evaluation** of the latest **Rhino (full version)**.
1. After 90 days, **saving and plug-ins stop working**, unless you buy a license key.
1. We absolutely **do not offer an extension** of the 90-day evaluation for any reason.
1. The 90-day Evaluation license is **not upgradable**, meaning if you want to continue using Rhino, you must purchase the full Educational (discounted) or Commercial license, not an upgrade.
Use the search box in the upper-right of this page to find content.
## 90-day Eval Setup Summary
Follow these steps to create your account and install your **Rhino 90-Day Evaluation** correctly.
▶️ https://www.rhino3d.education/courses/license-support/lectures/53044383
1. Create your Rhino account
1. Check your email
1. Accept McNeel's conditions
1. Copy your license key and select your language
1. Install the **90-Day Rhino Evaluation**
## 90-day Eval Setup Process
*How to create your Rhino account and install your evaluation license*
1. Visit [**www.Rhino3D.com**](https://www.rhino3d.com), where you can download the **90-Day Rhino Evaluation**.
2. Select -> **Download**

3. Select which **Rhino** license you want to download for **Windows** or **Mac**.

4. Select: “**Login or Create a Rhino Account to Download**” and this link will take you to this page: [**accounts.rhino3d.com**](https://www.rhino3d.com/my-account/)

5. Select “**Create a new account**,” which will take you to a page where you will enter your email and personal information.

6. Enter your name, email, and personal information. Note that you can continue with your **Google** account if you want!

7. After you confirm your details and select **Create a new account**, you will receive an email from **tech@mcneel.com.** You must confirm the creation of your account, and you will have a few minutes to do so. If you do not see it in your inbox, look for it in your junk emails.

8. This page will appear in your browser shortly. After a few seconds, you will be able to **download** your license along with the **key**. It is important to copy and save the key securely.

9. To receive your **Rhino license key**, you will need to agree to McNeel's privacy policy.

10. You can now download your 90-day **evaluation license** in your preferred language. The **key** from your **Rhino license** must be copied.

11. You can now download a 90-day evaluation of Rhino and install it on your computer. *Enjoy your evaluation period.*
You can learn more about managing your **account** by watching these short, step-by-step videos.
## Frequently Asked Questions (FAQ)
This section covers how to create your **Rhino account**, how to validate your 90-day evaluation license, and additional information that will be very helpful to you in managing your Rhino account.
- [▶️ How to **create** a Rhino account and **download** the 90-day evaluation](https://www.rhino3d.education/courses/license-support/lectures/53044383)
- [▶️ I can't find or **lost** my 90-day evaluation license key](https://www.rhino3d.education/courses/license-support/lectures/53046622)
- [▶️ Add **another email** to your Rhino account](https://www.rhino3d.education/courses/license-support/lectures/53048655)
- [▶️ Change your **password**](https://www.rhino3d.education/courses/license-support/lectures/53049172)
- [▶️ I lost my **password**](https://www.rhino3d.education/courses/license-support/lectures/53096362)
- [▶️ How to add **another language**](https://www.rhino3d.education/courses/license-support/lectures/53068112)
- [▶️ How to **remove** your Rhino license from my PC or Mac](https://www.rhino3d.education/courses/license-support/lectures/53073738)
- [▶️ How to **repair** your Rhino installation](https://www.rhino3d.education/courses/license-support/lectures/53072581)
Congratulations! Hopefully, you are well on your way now to use Rhino.
--------------------------------------------------------------------------------
# Grasshopper: Content Cache
Source: https://www.rhino3d.com/en/features/grasshopper/content-cache/
Update existing Rhino objects from Grasshopper.
Baking geometry has always added new objects to your Rhino model. In the past however, you had to maintain copies as new objects got added or delete your old geometry before baking again. Grasshopper now has a *Content Cache* component, which lets you update objects in different caches in the Rhino model without deleting them first.
## Try It
*
* Download and open the [ ContentCache.gh](ContentCache.gh) Grasshopper definition.
* Ask questions and give feedback on the [Discourse Forum](https://discourse.mcneel.com/c/grasshopper/2).
--------------------------------------------------------------------------------
# Dark Mode
Source: https://www.rhino3d.com/en/features/user-interface/dark-mode/
Rhino's User Interface supports Dark and Light Modes on Windows and Mac.
## Try It
-
- **Windows**: In Windows *Settings*, navigate to *Personalization* > *Colors* and select *Dark*. Restart Rhino if it is running.
- **Mac**: In macOS's *System Settings*, navigate to the *Appearance* section and select *Dark*. Rhino will automatically switch while running.
--------------------------------------------------------------------------------
# .NET Core vs .NET Framework
Source: https://www.rhino3d.com/en/docs/guides/netcore/
.NET Core vs .NET Framework
Rhino 8.20 uses .NET Core 8 by default, and Rhino 8.19 or older uses .NET Core 7 by default.
On Windows, some older plug-ins will not run when .NET Core is active, and requires the legacy .NET Framework, instead.
### To change Rhino to always use .NET Framework:
1. Start Rhino for Windows
2. Type the command **SetDotNetRuntime**
3. Select the **Runtime** option
4. Set the **NETFramework** option
5. Close Rhino
### To change Rhino to always use .NET Framework using the Registry:
1. Run **RegEdit**
2. Browse to **HKEY_CURRENT_USER\Software\McNeel\Rhinoceros\8.0\Global Options**
3. Create a **REG_SZ** value named **DotNetRuntime** and set its data to **netfx**
### To start Rhino in .NET Framework once:
*Caution: only recommended if you have a plug-in that doesn't run in .NET Core.*
1. Create a new shortcut for Rhino in Windows
1. Edit the shortcut
1. Add command line argument **/netfx**
### To start Rhino in .NET Core once:
1. Create a new shortcut for Rhino in Windows
1. Edit the shortcut
1. Add command line argument **/netcore**
## .NET Core Version
Starting with version 8.12, you can select the version of the .NET Runtime that it will use instead of its default.
Please note that Rhino 8 does not currently support running on .NET 9 (or later) Runtime, and only supports .NET 7 and 8.
### Installing the .NET Desktop Runtime:
In order to use a different version of .NET Core than the default, you must first install the .NET Desktop Runtime.
1. Open your browser to
2. Click on the version of .NET you wish to use
3. Download the **.NET Desktop Runtime** for **x64**
4. Run the downloaded installer to install the runtime
### To set the .NET Core version once:
1. Create a new shortcut for Rhino in Windows
2. Edit the shortcut
3. Add command line argument **/netcore-8**, or **/netcore-7**
### To set the .NET Core version using the Registry:
1. Run **RegEdit**
2. Browse to **HKEY_CURRENT_USER\Software\McNeel\Rhinoceros\8.0\Global Options**
3. Create a **REG_SZ** value named **DotNetCoreVersion** and set its data to **8** or **7**
## For more details:
For more details, visit our [developer documentation for .NET 7](https://developer.rhino3d.com/en/guides/rhinocommon/moving-to-dotnet-core/#choosing-the-net-runtime-on-windows).
--------------------------------------------------------------------------------
# Inset
Source: https://www.rhino3d.com/en/features/inset/
The Inset command inserts edges by offsetting the edges of selected mesh, SubD, or polysurface face a certain distance inwards.
## Works on Curved Objects %%New in 8%%
You can now inset curved surfaces, allowing you to create details for indents, bosses or other product features in a few clicks.
## Works Across Edge Seams %%New in 8%%
Save time by ignoring surface edges and obtaining a full offset loop of a face that goes across a surface seam.
## Inset in Action
--------------------------------------------------------------------------------
# Selective Clipping
Source: https://www.rhino3d.com/en/features/clipping/selective-clipping/
Clipping planes can be set to affect a subset of objects and layers.
Clipping allows you to slice through your design, turning off the display of parts of the model. Now, with *Selective Clipping*, you can choose a subset of objects and layers to clip. You can even set a *custom depth* to isolate a specific part. With complex models, this focuses communication where it matters most.
## Custom Clipping
Use *Custom Clipping* of clipping planes to select a subset of objects and layers to either clip or exclude from clipping.

## Custom Depth
Use *Custom Depth* of clipping planes to view a slice of your model. When the *Custom Depth* is set to zero, you see the section only.

## Try It
1.
1. Download and open the [ Rebar-Demo.3dm](Rebar-Demo.3dm) model.
1. Select the **clipping plane** tagged with the name **B_00**, and open **Property** panel to edit the clipping plane properties.

4. In the clipping plane properties panel, under **Objects Clipped**, change from **All** to **Include Selected** in the drop-down list. Click on **Layers**. A new dialog opens with a list of all layers. Select the **Concrete** layer from the list, then click **OK/Apply**. The concrete part of the beam is clipped, while the steel bars are not.

5. You can drag the clipping plane to reveal more or less of the steel bars.
6. For more details, see our Discourse post about [Selective Clipping in Rhino 8](https://discourse.mcneel.com/t/rhino-8-feature-selective-clipping/161091).
--------------------------------------------------------------------------------
# Clipped Views
Source: https://www.rhino3d.com/en/stories/documentation/clipped-views/
Use Clipping Planes Views in 2D Layouts.
Use section views that clip parts of your model to help illustrate and communicate the interior details. Rhino supports workflows to generate fast-clipped section views that you can reference in 3D viewports and Layouts.
## Try It
1.
2. Download and open the [ ClippedViews-Demo.3dm](ClippedViews-Demo.3dm) model.
3. Run the **SaveClippingSectionViews** command, select the **clipping plane** tagged with the name **Sec_00**, and make sure the following options are set: **Projection=Parallel**, **Clip=Yes**. This will save a named view with the same name as the section.
4. Set your detail to view section S_00. Double-click inside your detail, expand the **Page 1 - Detail (Top)** drop down menu. Under **Set View**, select **S_00**. You might need to pan the view to center your section in the detail.

5. In your **Perspective** viewport, select the clipping plane (Sec_00) and move in the **Y-Axis** direction by **2.5 units**. Switch to your **Layout** view and notice how the section also updates there.

6. Select the clipping plane and, in the **Properties** panel, check **Custom Depth** and make sure **Depth** is set to **0.0**. Notice how the background geometry is clipped in both modeling and layout:

7. For more details, check out the Discourse forum post about [SectionTools Integration](https://discourse.mcneel.com/t/rhino-8-feature-sectiontools-integrated/162094).
--------------------------------------------------------------------------------
# Dynamic Vector Drawings
Source: https://www.rhino3d.com/en/stories/documentation/dynamic-vector-drawings/
Create dynamic vector drawings of clipping sections.
## Output Vector Geometry that Updates with Model Changes
Generate dynamic 2D drawings of sections and elevations to use for drafting.
## Reference in 2D Layout
The output of section curves, hatches, and background is organized in layers. With the layers panels, you can control the visibility of parts of your drawings. This allows you to view drawings in layout alone while hiding in modeling space. You can view sections without the background geometry in one detail while showing the background in the other.


## Try It
1.
2. Download and open the [ DynamicDrawings-Demo.3dm](DynamicDrawings-Demo.3dm) model.
3. Run the **ClippingDrawings** command, select the **clipping plane** tagged with the name **S_00**. In the command options, set **AddBackground=Yes**, then **Projection=Parallel** and **ShowLabel=No**. Before completing the command, snap to a point in the view to locate your drawing. If you don't want to see hidden lines, hide the **S_00_DrawingHidden** layer. Run the **Layouts** command to see the drawing.

4. In a **Perspective** view, select the clipping plane and move it **0.45** units in the **Y-Axis**. The drawing updates automatically. Note that when you edit your model or add new objects, you need to run **UpdateClippingDrawings** command to update your drawings.

5. To dimension your drawing, create a new layer called **S_00_Dim** and make it the current layer. Double-click inside your detail, run the **Dim** command, and snap to the drawing to add dimensions. You can dimension in perspective view as well.

6. You can hide the drawing layers in model space yet keep them visible in layout:
- Click inside your perspective view and go to the layer manager. Find the **Model On** column (you may need to scroll horizontally to find it). Click on the light icon to hide the **S_00** layer and its sub-layers.

- Go to your page layout and double-click inside your detail. Go to the layer manager and under the **Detail On** column, click the light icon to hide the following layers: **Sections**, **Model** and **Steps**.

7. For more details, see the Discourse post about [SectionTools Integration](https://discourse.mcneel.com/t/rhino-8-feature-sectiontools-integrated/162094).
--------------------------------------------------------------------------------
# Sectioning for Fabrication
Source: https://www.rhino3d.com/en/stories/fabrication/sectioning-for-fabrication/
Extract 3D and 2D geometry for fabrication.
Clipping planes can be used to extract sections through your model to use in prototyping and fabrication processes such as laser cutting. You can also extract slices of a big model to fabricate using CNC routers or 3D printers.
## Extract Curves for Laser Cutting
Flat cut processes such as laser cutting require you to extract parallel cuts through your model, label them, and lay them on a flat sheet. Rhino supports workflows to extract labeled cuts through 3D models to help with these processes.

## Try It
1.
2. Download and open the [ ExtractForFabrication-Demo.3dm](ExtractForFabrication-Demo.3dm) model.
3. In the **Front** view, select the **clipping plane** tagged with the name **C_00**. It's important to note that this clipping plane was created with the new **ClippingSections** command with option **Name=C**.
4. Run **Array** command in the Front view. Set the **YNumber** to **24** and **YSpacing=0.565**. Rhino creates 23 new clipping planes and serializes their names so that each clipping plane has a unique new number (C_00 to C_23).
5. Switch to the **Top** viewport, and run the **NestedClippingDrawing** command. Select all your clipping planes and set **Spacing=0.1**, **Width=10**, **Label=On**, **LabelTag=Text** and **LabelLocation=Inside**. Place your output anywhere on the XY-plane. Note that you can post process to remove additional curves and change label size.

6. Ask questions and give feedback on the [Discourse Forum](https://discourse.mcneel.com).
--------------------------------------------------------------------------------
# Auto CPlanes
Source: https://www.rhino3d.com/en/features/cplanes/auto-cplanes/
Smarter CPlanes automatically align to eligible selections.
Creating or changing CPlanes often disrupts the modeling workflow. Rhino now has Auto CPlanes, which auto-align to a selected curve, surface, mesh face, or subobject. Automatic CPlanes make it easier to work in a single 3D viewport, making it simple to draw on the face of an object.
### Universal CPlane
Rhino allows you to work with a universal CPlane. This means that the orthogonal viewports will become relative to the CPlane set in a 3D perspective view. When combined with Auto CPlane and World alignment, this means the top view will always be aligned with the face that gets selected. This allows you to quickly look at, and work on, the selected face in plan view.
--------------------------------------------------------------------------------
# Gumball
Source: https://www.rhino3d.com/en/features/gumball-new/
Quickly Move, Rotate, Scale, Copy, Cut, and Extrude geometry without typing commands or clicking a toolbar button. This makes the Gumball a versatile direct modeling tool for concept modeling interior and exterior architectural forms, certain furniture styles, SciFi models, and working with SubD objects.
## Gumball: A Widget for Manipulating Geometry
Modify geometry without typing commands or clicking a toolbar button. The Gumball is a versatile direct modeling tool for concept modeling of interior and exterior architectural forms, furniture, SciFi models, and working with [SubD objects](https://docs.mcneel.com/rhino/9/help/en-us/seealso/sak_subd.htm).
## Gumball Actions
- **Move:** Move selected geometry freely or using a specific distance.
- **Rotate:** Rotate selected geometry freely or using an angle.
- **Scale:** Scale selected geometry freely or using a scale factor.
- **Copy:** Copy selected geometry by pressing **`Alt`** as you move the selection.
- **Cut:** Split by dragging a curve through an object.
- **Boss:** Emboss any shape curve by dragging it onto an object.
- **Extrude:** Extrude any curve or face freely or to a specific distance.
- **Extend:** Extend adjacent faces while moving or rotating them.
## Keep Your Walls Straight %%New in V9%%
Enable **Rotate-Extend** by holding down **`ctrl`** + **`shift`** as you drag the [Rotate handle](/images/gumball-gallery/gumball-rotate.gif). Rotate a face, and have adjacent faces extend in their natural directions.
Previously, faces would follow the rotation angle and appear (correctly) skewed.
## Relocation Remembered %%New in V9%%
The Gumball now remembers its orientation and location for SubD [Sub-Object Selections](/en/docs/guides/user-guide/gumball-basics/#9-sub-object-selection) and **Groups**. This is a time-saver when working back and forth with selection sets and multiple objects.
[Combine it with **UndoSelection**...](https://www.rhino3d.com/en/features/selection/stack/)
## Intuitive Use
An improved user experience that guides you through its use:
### Snappy / Smooth Mode %%New in V9%%
The Gumball menu ball changes from a circle to a diamond shape as a visual cue to which drag mode it's in.
### Dynamic Relocate
Relocating and reorienting the Gumball is now done by double-clicking any of the handles.
### Tooltips
The Gumball has been made more accessible to both new and existing users. Tooltips explain the function of each handle and show the key presses that change its function.
### Simplified Keypresses
The double function of the Ctrl key (Cmd key on Mac) has been eliminated, making the Gumball functions easier to memorize.
## Try It
In this exercise, try the Gumball **Rotate-Extend** mode.
1.
1. Download .
1. [Activate the Gumball](/docs/guides/user-guide/gumball-basics/#1-activating-the-gumball).
1. [Sub-Object Select](/en/docs/guides/user-guide/gumball-basics/#9-sub-object-selection) one of the vertical faces.
1. Hold down CTRL + Shift while dragging the [Gumball Rotate](/images/gumball-gallery/gumball-rotate.gif) handle. Then, let go.
5. The face has been rotated while adjacent faces extend without deforming!
1. **Try it on your own!** Experiment with your own models.
1. Share comments and feedback on the [Rhino Forum](https://discourse.mcneel.com/).
## Gumball in Action
[ Gumball_Coffee_Table.3dm](Gumball_Coffee_Table.3dm)
--------------------------------------------------------------------------------
# Gumball
Source: https://www.rhino3d.com/en/features/gumball/
Quickly Move, Rotate, Scale, Copy, Cut, and Extrude geometry without typing commands or clicking a toolbar button. This makes the Gumball a versatile direct modeling tool for concept modeling interior and exterior architectural forms, certain furniture styles, SciFi models, and working with SubD objects.
# Gumball: A Widget for Manipulating Geometry
Quickly Move, Rotate, Scale, Copy, Cut, and Extrude geometry without typing commands or clicking a toolbar button. This makes the Gumball a versatile direct modeling tool for concept modeling interior and exterior architectural forms, certain furniture styles, SciFi models, and working with SubD objects.
## Cut, Split, Boss, and Extend %%New in 8%%
When applicable, the Gumball will show an additional handle to make cuts, splits, or bosses with curves, and integrates the extension of adjacent faces in the extrude handle.
### Dynamic Relocate
Relocating and reorienting the Gumball is now done by double-clicking any of the handles.
### Tooltips
The Gumball has been made more accessible to both new and existing users. Tooltips explain the function of each handle and show the various key presses to change the function.
### Simplified Keypresses
The double function of the Ctrl key (Cmd key on Mac) has been eliminated, making the Gumball functions easier to memorize.
## Gumball in Action
[ Gumball_Coffee_Table.3dm](Gumball_Coffee_Table.3dm)
--------------------------------------------------------------------------------
# Grasshopper: UserText
Source: https://www.rhino3d.com/en/features/grasshopper/usertext/
Add, modify, or remove user text from any Rhino object.
Grasshopper now has a component that allows you to add, change, or remove user text data from any Rhino object. This guarantees that your custom user text data is up-to-date and formatted your way.
## Try It
*
* Download and open the [ UserText.3dm](UserText.3dm) Rhino file and the [ UserText.gh](UserText.gh) Grasshopper definition.
* Ask questions and give feedback on the [Discourse Forum](https://discourse.mcneel.com/c/grasshopper/2).
--------------------------------------------------------------------------------
# Surface Fillets
Source: https://www.rhino3d.com/en/features/surface-fillets/
Rhino's Surface Fillet commands allow you to create rational and non-rational fillets between two surfaces or a surface and a curve:
Rhino's Surface Fillet commands allow you to create rational and non-rational fillets between two surfaces or a surface and a curve. While `FilletEdge` needs an edge to make a fillet, Surface Fillets do not depend on joined geometry. This allows for a more flexible setup of base surfaces that get later connected by fillets.
## Surface Fillets Enhancements %%New in 8%%
`FilletSrf` has a new dialog that allows you to set the radius dynamically. While changing the radius, the result will update in real time.
You now have three fillet Blend Types:
1. *Arc*
2. *Deformable*
3. *G2 Blend*
Deformable fillets are non-rational with G1 continuity. You can adjust the shape of deformable fillets anywhere between flat and sharp.
In addition, Rhino now has two new surface fillet commands: `FilletSrfCrv` and `FilletSrfToRail`. All three commands share the same dialog style to fine-tune the result.
## Try It
*
* Download and open the [ SurfaceFilletsDemo.3dm](SurfaceFilletsDemo.3dm) model.
* Run the command ___FilletSrf__.
* Enter a radius of 10, and click on the two surfaces in front. The dialog will appear.
* For the FilletSrf shown at 1, use Arc as a Blend Type. Notice that in this position, Tangency and Bulge sliders are grayed out.
* For the FilletSrf shown at 2 set Blend Type to Deformable, and change the degree to 5. 2a is created by setting the sliders all the way to the left (-1.0), 2b is created by setting the sliders to the middle (0.0), and 2c is created by setting the sliders all the way to the right (1.0).
* For the FilletSrf shown at 3, set Blend Type to G2. Notice that in this position, Tangency and Bulge sliders are grayed out.
* At all times, you can enter a different radius by typing it directly in the command line. Alternatively, move the slider to change the radius dynamically, or double-click the slider to set the radius. When setting the radius through the command line or by double-clicking the slider, the slider position will be set to the middle again. The range buttons under the slider allow you to define the slider's range quickly. The range and precision of the slider can be set by right-clicking the radius slider.
* Ask questions and give feedback on the [Discourse forum](https://discourse.mcneel.com).
--------------------------------------------------------------------------------
# PushPull
Source: https://www.rhino3d.com/en/features/push-pull/
Grab a face and push or pull it, extruding or extending. PushPull speeds up modeling by using curves to add or remove volumes from existing surfaces.
## Try It
1.
1. Download and open the [ PushPull-Demo.3dm](PushPull-Demo.3dm) model.
1. Run the `PushPull` command: You are prompted to select a surface. Select any of the surfaces on the icosahedron.
1. Move the mouse to *extrude* the surface, but do not click or complete the command. In the command options, notice that you are in *Extrude* mode.
1. In the Command Options, change the *Mode* to *Extend*.
1. Move the mouse to *extend* the surface face away from (or into) the center of the face. Click to complete the command. Notice how you can quickly modify the entire solid polysurface.
1. Try this on your own surfaces. Please ask questions and give feedback on the [Discourse Forum](https://discourse.mcneel.com).
## Works In Concert With Well-Known Tools
PushPull works in concert with improved, yet well-known, tools to [simplify the modeling process](/stories/modeling):
## PushPull in Action
--------------------------------------------------------------------------------
# Grasshopper: Annotations
Source: https://www.rhino3d.com/en/features/grasshopper/annotations/
Document your design with Grasshopper's annotation, hatch, and linetype components.
Document your design with Grasshopper's annotation, hatch, and linetype components. In the old days, you had to add dimensions, leaders, and hatches *after* baking your geometry. Now you can manage your design *and your annotations* directly in Grasshopper.
## Detailed Control
## Try It
*
* Download and open the [ Annotations.gh](Annotations.gh) Grasshopper definition and the [ Annotations_Millimeters.3dm](Annotations_Millimeters.3dm) Rhino file.
* For more information about these annotation components, check out our [Discourse Post](https://discourse.mcneel.com/t/rhino-8-feature-annotations-and-hatches-in-gh1/152494).
--------------------------------------------------------------------------------
# Grasshopper: Blocks
Source: https://www.rhino3d.com/en/features/grasshopper/blocks/
Create block definitions and instances in Grasshopper.
Grasshopper now has components for creating block definitions and instances. Now you can create block definitions with object attributes and bake them directly into your model. You can even import blocks from other files. Grasshopper maintains all object attributes and applies them to each new block instance, streamlining your design process.
## Try It
*
* Download and open the [ Blocks.gh](Blocks.gh) Grasshopper definition and the [ Blocks.3dm](Blocks.3dm) Rhino file.
* For more information about these block components, check out our [Discourse Post](https://discourse.mcneel.com/t/rhino-8-feature-build-blocks-better-using-grasshopper/149081).
--------------------------------------------------------------------------------
# Grasshopper: Object Attributes
Source: https://www.rhino3d.com/en/features/grasshopper/object-attributes/
For Grasshopper users who want to be able to use all data types that are available in Rhino, you can now manage object attributes in Grasshopper.
Have you ever wanted to bake geometry with custom attributes? Do you find the need to add metadata to your final design as it goes to production? Now you can with Grasshopper's new drafting, display, rendering, layers, and visibility components.
## Try It
*
* Download and open the [ ConstructObjectAttributes.gh](ConstructObjectAttributes.gh) Grasshopper definition.
* For more information about assigning attributes to objects, check out our [Discourse Post](https://discourse.mcneel.com/t/rhino-8-feature-gh1-is-now-more-than-just-geometry/147294?u=andypayne).
Interested in learning more? Check out the [Object Attributes in Grasshopper guide](https://www.rhino3d.com/docs/guides/grasshopper/object-attributes/) to access the full tutorial.
--------------------------------------------------------------------------------
# Rhinoceros 3D
Source: https://www.rhino3d.com/en/asia/
Design, Model, Present, Analyze, Realize...
[[items]]
image = "https://www.rhino3d.com/8/v8-lift-foils.png"
caption = "Lift Foils"
captionLink = "https://liftfoils.com"
[[items]]
image = "https://www.rhino3d.com/8/v8-surf-foil.png"
caption = "Kyle Houchens"
captionLink = "https://discourse.mcneel.com/u/theoutside/activity/portfolio"
[[items]]
image = "https://www.rhino3d.com/8/v8-amp.png"
caption = "Kyle Houchens"
captionLink = "https://discourse.mcneel.com/u/theoutside/activity/portfolio"
[[items]]
image = "https://www.rhino3d.com/8/v8-bike.png"
caption = "Kyle Houchens"
captionLink = "https://discourse.mcneel.com/u/theoutside/activity/portfolio"
[[items]]
image = "https://www.rhino3d.com/8/v8-ring.png"
caption = "Ring by T Shinya"
captionLink = "https://discourse.mcneel.com/u/t.shinya/activity/portfolio"
[[items]]
image = "https://www.rhino3d.com/8/v8-shoe.png"
caption = "Kyle Houchens"
captionLink = "https://discourse.mcneel.com/u/theoutside/activity/portfolio"
[[items]]
image = "https://www.rhino3d.com/8/v8-carapacks.png"
caption = "University of Applied Science Biberach, Simon Vorhammer"
captionLink = "https://discourse.mcneel.com/t/carapacks-pavillon/165506"
[[items]]
image = "https://www.rhino3d.com/8/v8-bus.png"
caption = "Kyle Houchens"
captionLink = "https://discourse.mcneel.com/u/theoutside/activity/portfolio"
[[items]]
image = "https://www.rhino3d.com/8/v8-louisiana-sports-trahan.png"
caption = "Louisiana State Museum, Trahan Architects. Photo: Timothy Hursley"
captionLink = "https://trahanarchitects.com/"
[[items]]
image = "https://www.rhino3d.com/8/v8-motorcycle.png"
caption = "Concept Bike by SabinoDesign"
captionLink = "https://discourse.mcneel.com/t/bike-concept/139147"
[**All the details...**](/8/new)
Perpetual license
Support included
Service releases included
Use for commercial work
90 day trial license
Support included
All features included
Use for commercial work
Perpetual license
Support included
Service releases included
Floating license
Perpetual license
Support included
Service releases included
Use for commercial work
[Prior version license key needed](https://www.rhino3d.com/licenses/report/#upgradable/)
90 day trial license
Support included
All features included
Use for commercial work
Perpetual license
Support included
Service releases included
Floating license
[Prior version license key needed](https://www.rhino3d.com/licenses/report/#upgradable/)
[**All the details...**](/8/new)
Perpetual license
Support included
Service releases included
Use for commercial work
90 day trial license
Support included
All features included
Use for commercial work
Perpetual license
Support included
Service releases included
Floating license
Perpetual license
Support included
Service releases included
Use for commercial work
[Prior version license key needed](https://www.rhino3d.com/licenses/report/#upgradable/)
90 day trial license
Support included
All features included
Use for commercial work
Perpetual license
Support included
Service releases included
Floating license
[Prior version license key needed](https://www.rhino3d.com/licenses/report/#upgradable/)
[**All the details...**](/8/new)
Perpetual license
Support included
Service releases included
Use for commercial work
90 day trial license
Support included
All features included
Use for commercial work
Perpetual license
Support included
Service releases included
Floating license
Perpetual license
Support included
Service releases included
Use for commercial work
[Prior version license key needed](https://www.rhino3d.com/licenses/report/#upgradable/)
90 day trial license
Support included
All features included
Use for commercial work
Perpetual license
Support included
Service releases included
Floating license
[Prior version license key needed](https://www.rhino3d.com/licenses/report/#upgradable/)
[**All the details...**](/8/new)
Perpetual license
Support included
Service releases included
Use for commercial work
90 day trial license
Support included
All features included
Use for commercial work
Perpetual license
Support included
Service releases included
Floating license
Perpetual license
Support included
Service releases included
Use for commercial work
[Prior version license key needed](https://www.rhino3d.com/licenses/report/#upgradable/)
90 day trial license
Support included
All features included
Use for commercial work
Perpetual license
Support included
Service releases included
Floating license
[Prior version license key needed](https://www.rhino3d.com/licenses/report/#upgradable/)
[**All the details...**](/8/new)
Perpetual license
Support included
Service releases included
Use for commercial work
90 day trial license
Support included
All features included
Use for commercial work
Perpetual license
Support included
Service releases included
Floating license
Perpetual license
Support included
Service releases included
Use for commercial work
[Prior version license key needed](https://www.rhino3d.com/licenses/report/#upgradable/)
90 day trial license
Support included
All features included
Use for commercial work
Perpetual license
Support included
Service releases included
Floating license
[Prior version license key needed](https://www.rhino3d.com/licenses/report/#upgradable/)
Who Uses Rhino?
Rhino is the most versatile of all 3D modelers, a jack-of-all-trades used in many industries...
...just to name a few. No matter the scale, whenever a model needs to get from your screen to a *real*, *built object*, you will find Rhino.
"I’ve been using Rhino for 20 years. It’s the backbone of my work. Many art departments use Rhino on the bigger films requiring complex designs."
Scott Schneider, Film Designer
"Grasshopper for Rhino is one of the best platforms for computational design. It's easy to use for beginners, and the depth of possibilities make it an incredibly customizable framework for advanced users."
Jose Luis García del Castillo y López, ParametricCamp
"For last 10 years, Rhino has been my development tool for designing kitesurfing equipment: boards, bindings, control systems. More recently, for kite design, I've developed a 100% parametric engine in Grasshopper to automate my workflow."
Dave Kay, Kiteboard Shaper
# Grasshopper
Grasshopper is a visual programming environment tightly integrated with Rhino's 3D modeling tools. Grasshopper requires no knowledge of programming or scripting, but still allows designers to build generative forms from the simple to the awe-inspiring. Grasshopper also has a very rich add-on library.
Grasshopper Community

# Rhino's Ecosystem
[](https://www.food4rhino.com)
### [food4Rhino](https://www.food4rhino.com)
\+1500 apps/resources for Rhino and Grasshopper.
[](https://discourse.mcneel.com)
### [Discourse](https://discourse.mcneel.com)
Our forum: simple or complex questions, from new or veteran users, about all our products.
### [Training & Events](https://events.4rhino.com/)
Classroom training, online training, workshops, conferences.
### [Latest News](http://blog.rhino3d.com/)
[YouTube](https://www.youtube.com/user/RhinoGuide/videos), [LinkedIn](https://www.linkedin.com/groups/75313/), [Instagram](https://www.instagram.com/mcneel.europe/?hl=en), [Facebook](https://www.facebook.com/McNeelRhinoceros/), [Twitter](https://twitter.com/bobmcneel), and [our blog](http://blog.rhino3d.com/).
[](https://developer.rhino3d.com)
### [Development Platform](https://developer.rhino3d.com)
Official developer resources for Rhino and Grasshopper.
# [iRhino 3D](/ios)
The official Rhino 3dm viewer for iOS. View and present your work on your iPhone or iPad.
[](/ios)
Rewritten from the ground up, the new iRhino 3D performs and feels exactly like Rhino.
Pan, zoom, and orbit with a tap or drag of your finger.
Conveniently load models from your device or any cloud storage using a built-in file browser.
Integrated markup tool lets you draw on top of a view.
[**All the details...**](/ios)
# Software You Own
*Not the other way around.*
## **[Fair Pricing](/buy)**
Prices include **support** and **service releases** for the current version. **Perpetual licenses.** No maintenance fees. Upgrades are *optional*.
## **[Flexible Licensing](/features/administration/licensing)**
**Float your license**. Licenses can be [configured *by you* for *your needs*](/features/administration/licensing). All licenses are **permanent** and do not expire.
## **[Great Deals for Education](/for/education)**
We provide commercial versions of our products to students, faculty, and schools at **[a substantial discount](/for/education)**.
## **[Future Friendly](/stories/serengeti/)**
Rhino owners can [download](/download/rhino/wip) and test [**Work-In-Progress** versions of Rhino in-development (Rhino WIP access)](/download/rhino/wip).
# [Learn Rhino](/learn)
Hundreds of videos, guides, tutorials, manuals, and classes. Get started learning Rhino today...
[**All the Learning Resources...**](/learn)
--------------------------------------------------------------------------------
# How to Use Scripts and Plugins
Source: https://www.rhino3d.com/en/docs/guides/scripts-plugins/how-to-use/
How to install, run, and un-install (scripted) plugins
## Target Audience
This guide is for end users who want to download, install, use, and uninstall scripts and plugins. For information about writing scripts, see the [Rhino Developer Documentation](https://developer.rhino3d.com/).
## Background
Throughout the years, Rhino has grown as a standalone product and has become a popular developer platform that allows users to add functionality in the form of scripts and plugins. Many of the scripts written are scattered around the internet and on [discourse.mcneel.com](https://discourse.mcneel.com) in particular. The scripts you find are written in either RhinoScript (Visual Basic) or in PythonScript. When you find them in their raw format (.rvb for RhinoScript scripts or .py for PythonScript scripts), you can use them in different ways. This guide will look at the options to install, use, and uninstall scripts and plugins in Rhino for Windows.
## Using RhinoScript Scripts
### Option 1: Loading and executing scripts with LoadScript and RunScript
In this guide, I'm taking [the script on this page](https://developer.rhino3d.com/api/rhinoscript/sample_scripts/ringtorus.htm) as an example.
If you only want to use a script written in RhinoScript and downloaded one you want to run, you can do this in two steps: First, load the script with ___LoadScript__ and click the Add… button. Then, you need to click the name of the script and click the Load button.

After the script is loaded, it is ready to use. To execute it, close the LoadScript dialog and run ___RunScript__, which gives you a dialog with all loaded scripts from which to choose. In this example, the script has two SubRoutines that can run:

### Option 2: Loading and executing scripts through the built-in RhinoScript editor

RhinoScript scripts can be directly run through the built-in RhinoScript editor. First, start the command ___EditScript__, which starts the RhinoScript editor. Here, you can load scripts through __File > Open__, and once the script is loaded, you can execute it by pressing __F5__ on the keyboard or clicking on the green triangle.
This environment is most suitable if you are writing your own scripts or want to modify a script you downloaded.
When we load this script and run it, nothing appears to happen. This is because there are two SubRoutines, RingTorus1 and RingTorus2, but none are actually being called. Say you want to execute the subroutine RingTorus1, you will need to add this line above Sub RingTorus1():
```vb
Call RingTorus1()
```
### Option 3: Drag and Drop
A third option is to drag and drop the downloaded script into Rhino. This, however, will only work if the script was made to work like that. To determine if it is, open the script in the RhinoScript editor. There will be two lines of code where the first starts with `Rhino.AddStartupScript` and the second starts with `Rhino.AddAlias`.
Sometimes, there can be more than one alias if the script contains more than one subroutine, e.g.:
```vb
Option Explicit
'Script written by Pascal
'RMA
Rhino.AddStartUpScript Rhino.LastLoadedScriptFile
Rhino.AddAlias "HatchDirection", "_NoEcho _-Runscript (HatchDirection)"
Rhino.AddAlias "HatchOrient", "_NoEcho _-Runscript (HatchOrient)"
'Call HatchDirection()
Sub HatchDirection()
'…(script continues)
```
If the RingTorus script from the example was a drag and drop script it would look like this:

No subroutines are called in this script because they are handled by the statements `Rhino.AddStartUpScript Rhino.LastLoadedScriptFile` and `Rhino.AddAlias ...`
If you download a .rvb script, it’s best first to open and inspect it in the RhinoScript editor to see if it was meant to be drag and dropped and if it is, to note the aliases that will be added.
While it is easy to add scripts to Rhino this way, removing them takes a couple of manual steps. See [uninstalling rhino scripts](#un-installing-rhinoscript-scripts).
When you have scripts that are made to be drag-and-dropped, place them in a separate folder. Rhino will not copy these scripts but adds the path to this script to the list in __Tools > Options > RhinoScript__ and loads it each time you open Rhino. So, as an example, if I drag and drop the torus script from my folder `d:\scripts` into Rhino, it would add the Aliases RingTorus1 and RingTorus2. This means these commands are now added to the list of commands.
### Option 4: Adding the script to a button
You can customize Rhino’s buttons. All toolbars that ship with Rhino contain buttons that execute a command. For example, if you open the button editor (Shift+Right click on a button) of the single point button, you’ll find under Command:
`! _Point`
The exclamation mark is a shortcut for Cancel (canceling any running command), and the underscore (_) will force Rhino to execute the following command as an English command.
To make a button that executes a script, the command has this structure:
```markdown
! -_RunScript (
[here goes the full content of the script without the square brackets]
)
```
Save your Toolbar once you have edited or added a new button. See [Chapter 3 of the Rhino Level 2 Training Manual](https://docs.mcneel.com/rhino/6/training-level2/en-us/Default.htm#topics/02_customizing%20rhino.htm%3FTocPath%3D_____5), for more information about customizing Rhino.
In the case of the example, we could add the script to a button and make the left and right mouse load the two different subroutines. Left calls RingTorus1 and Right calls RingTorus2:

### Option 5: Adding a script file path to a button (recommended)
While Option 4 might work, maintaining or editing scripts fully pasted in a button is inconvenient. A better way is to keep your scripts in a separate folder and add the following to the button command area:
```markdown
! -_LoadScript "full\path\to\script.rvb"
-_Runscript "SubRoutineName"
```
In our Torus example, the content of the button is like this:

### Option 6: Adding a script file path to an Alias
The last option is to run scripts by adding the path to an alias, just like you have seen in the previous option. For this go to __Tools > Options > Aliases__, click on New, and choose a name for your alias, e.g.:
| Alias || Command macro |
| :- |-| :- |
| ```RingTorus1``` || ```! -_Loadscript "d:\scripts\RingTorus.rvb" -_RunScript "RingTorus1"``` |
## Uninstalling RhinoScript Scripts
Technically there is nothing to uninstall when you want to remove a script. But if you want to remove a script you’ve drag-and-dropped onto Rhino, you need to take these two steps:
Remove the associated Aliases through __Tools > Options > Aliases__.

Remove the link to the script file in __Tools > Options > RhinoScript__.

## Using PythonScript Scripts
### Option 1: Loading and executing scripts through the built-in PythonScript editor
You can run PythonScript scripts directly through the built-in PythonScript editor. Start the command ___EditPythonScript__, which starts the PythonScript editor. Here you can load scripts through __File > Open__, and once the script is loaded, you can execute it by pressing __F5__ on the keyboard or clicking on the green triangle.
This environment is most suitable if you are writing your own scripts or want to modify a script you downloaded.
### Option 2: Executing Python scripts directly through _RunPythonScript
The command ___RunPythonScript__ opens a dialog box that allows you to open and directly run a chosen .py file. This option is convenient if you just want to run a script occasionally.
### Option 3: Adding the script to a button
You can customize Rhino’s buttons. All toolbars that ship with Rhino contain buttons that execute a command. For example, if you open the button editor (Shift+Right click on a button) of the single point button, you’ll find under Command:
```markup
! _Point
```
The exclamation mark is a shortcut for ___Cancel__ (canceling any running command), the underscore will force Rhino to execute the command that follows as an English command.
To make a button that executes a script, the command has this structure:
```markup
! -_RunPythonScript (
[here goes the full content of the script without the square brackets]
)
```
Sometimes, scripts contain a check if the script is run as the main function. (You can find more info about this in the [Python documentation](https://docs.python.org/3/library/__main__.html).) When the entire script is pasted inside the button, this function has to be removed.
E.g., if your script looks like this …
```python
# this simple script adds a line to the document
import rhinoscriptsyntax as rs
def make_line():
rs.AddLine([0,0,0], [10,10,10])
if __name__ == "__main__":
make_line()
```
… your button should not use the __`if __name__ == "__main__"`__ statement and your button script should look like this:
```markdown
! _Noecho -_RunPythonScript (
import rhinoscriptsyntax as rs
def make_line():
rs.AddLine([0,0,0], [10,10,10])
make_line()
)
```
The dash (-) in front of the command will execute the command without a dialog.
Make sure to save your Toolbar once you have edited or added a new button. For more information about this, see Chapter 3 of the Rhino Level 2 Training Manual.
### Option 4: Adding a script file path to a button (recommended)
While Option 3 might work, maintaining or editing scripts that are fully pasted in a button is not very convenient. A better way is to keep your scripts in a separate folder and add the following to the button command area:
```markdown
! -_RunPythonScript (
"full\path\to\pythonscript.py"
)
```
For example, if my scripts are located in d:\scripts, and I want to execute make_line.py, it will look like this:
```markdown
! -_RunPythonScript (
"d:\scripts\make_line.py"
)
```
### Option 5: Adding a script file path to an Alias
The last option is to run scripts by adding the path to an alias, just like you have seen in the previous option. To do this, go to Tools>Options>Aliases, click on New and choose a name for your alias. For example, if I want to run my make_line.py script by the commandname MakeLine, then my alias would be as follows:
| Alias || Command macro|
| :---- |-| :---- |
| ```MakeLine``` || ```! -_RunPythonScript ("d:\scripts\make_line.py")```|
## Uninstalling PythonScript scripts
Python scripts are only loaded on demand, so technically, there is nothing to uninstall. The only thing you need to do is remove the aliases.
## Installing Plugins
### Option 1: Drag and drop onto Rhino
RhinoScript script and PythonScript scripts can be turned into installable files and will then get the same extension as the native Rhino plugins: .rhp files. These files can be drag-and-dropped onto an open Rhino session to install. After the drag-and-drop, commands added to Rhino can be found by opening ___PluginManager__ and filtering on "Plugins that do not ship with Rhino". After selecting the installed plugin, you will see the command that has been registered with this plugin. Clicking on the details will reveal the path.
Installing a plugin this way will not move the plugin file, so it is recommended to first put the plugin file into a known directory on your hard drive before dragging it into Rhino.
### Option 2: Install through PluginManager
Another install method is to open ___PlugInManager__ and click the install button. For the rest, it behaves the same as drag-and-dropping onto Rhino: the .rhp file will stay in the location you installed it from, and you can retrieve the added commands in the Commands section of the plugin.
### Option 3: Install through PackageManager (recommended)
The third and recommended option to install plugins is through ___PackageManager__. The benefit of ___PackageManager__ is that it allows you to install, update, and uninstall plugins easily. Not all plugins are available on this platform, but it is the first place to look for plugins for the aforementioned reasons. Some plugins are released in beta phase and will only be listed when you check "include pre-releases".
### Option 4: Install through food4Rhino
The last option to install plugins is to register an account at www.food4rhino.com. Here, you can search for plugins and read what plugins are capable of. Food4Rhino contains plugins for both Rhino and Grasshopper. If the plugin has an Install button, it will launch Rhino, open ___PackageManager__, and list the chosen plugin, which you can install in the same way as in Option 3.
## Uninstalling Plugins
The easiest way to remove installed plugins is through ___PackageManager__. For this open ___PackageManager__, search in the installed plugins (click the Installed tab), click on the plugin you want to uninstall, and click the Uninstall button.
If you have installed the plugin through ___PluginManager__ or drag-and-drop, you cannot automatically uninstall the plugin.
Open ___PluginManager__, and double-click on the plugin name to open its details. Here, you will find the registry key location. Click on this link to copy the path.
Open Registry Editor (Windows start button: Type RegEdit), search (__Ctrl + F__) for the just copied key, and delete this key. After that, restart Rhino.
## Installing RHI files (deprecated)
RHI files are basically zipped folders that are associated with Rhino. These zipped folders can contain multiple files: .rhp, .dll and .rui files as well as other file types like .3dm files, txt files and .ini files. What's important to know is that installing these files will copy the content of the zipped file to a special folder. Find this location by opening Windows Explorer and typing %appdata%\McNeel\Rhinoceros\7.0\plugins.
The folder is also listed when opening ___PlugInManager__, looking up the plugin, and double-clicking to reveal its details.
### Option 1: Double-click the downloaded file
This will install the plugin for one or more Rhino versions installed on your computer. There is no option to select which version will be installed.
### Option 2: Drag-and-drop onto Rhino
Same behavior as Option 1.
## Uninstalling RHI files
There is no automatic uninstallation of RHI files. Open ___PluginManager__ and double-click on the plugin name to open its details. Here, you will find the registry key location. Click on this link to copy the path.
Open RegEditor (Windows start button: Type RegEdit), search for the just copied key and delete this key. After that, restart Rhino. Optionally, you can delete the files in the location explained in the install paragraph.
--------------------------------------------------------------------------------
# SectionTools Integrated
Source: https://www.rhino3d.com/en/stories/sectiontools-integrated/
Dynamic 3D Sectioning and 2D Drawings.
SectionTools creates dynamic sections and drawings, enabling new modeling, drafting, and fabrication workflows. Now a part of Rhino, it takes advantage of the new clipping and sectioning features such as [Section Styles](/features/clipping/section-styles/) and [Selective Clipping](/features/clipping/selective-clipping/).
The following is a description of different SectionTools workflows and how they integrate into Rhino 8.
## Clipping Sections: Create, View and Edit
Rhino 8 introduces a new command to create clipping planes called **ClippingSections** that is geared towards drafting and sectioning workflows. It helps select sectioned objects, set sections orientation, name, label, and also save to **Named Views** for easy access in modeling and Layout spaces.
1) SectionTools commands are located in the drafting toolbar and the menu under *Drafting* > *Sections*.

2) The **ClippingSections** is the main section creation command. It creates clipping planes that cut through selected objects (or all objects). It has options to set the direction, depth, name prefix, label and saving to named views.
3) Clipping planes properties such as name, depth, label, clipped objects, and views can be edited directly from the clipping plane property panel.
4) The clipping plane widget has been updated in Rhino 8 to indicate the **Up** and **Normal** viewing directions. The widget is labeled with the clipping plane name. The center grip points of the widget are used to change the location and depth of the clipping plane. The grip points at the two ends of the clipping plane help scale the widget size.

5) Sections are visible in clipped views only, and update dynamically with model changes. The sections are in display only, however, you can still snap to them. If you need to vector the geometry of your sections, you should extract in-place using **ExtractClippingSections** and **ExtractClippingSlices** commands. You can enable **History** to update with model changes.
6) You can select the section clipping plane and copy, delete, and transform using regular Rhino commands. Copying a section that is saved to named views creates a new named view for all copies. Deleting a section also deletes the associated named view and the drawings layers of that section.
## Extract Sections
Rhino supports extracting curves, hatches, surfaces, and slices of clipping planes for modeling and fabrication. Use **ExtractClippingSections** command to extract curves and hatches in place and **ExtractClippingSlices** to extract surfaces and slices in place. Both these commands support history. You can also use **NestedClippingDrawing** command to generate sections curves that are projected and nested on World XY-plane with tags which can be used in laser cutting workflows.
## Dynamic 2D Drawings: Create, Edit and Export
SectionTools has been updated to support extracting not only the sections geometry but also the background geometry. The drawings are projections of clipping planes' views on the XY-Plane. Use **ClippingDrawings** to create the drawings of a clipping plane. The geometry is organized in layers to control visibility in modeling and layout. Drawings dynamically update when editing the associated clipping plane. You can also use **UpdateClippingDrawings** command to update when adding and removing objects from the model or changing objects' properties.

Use **EditClippingDrawings** command to edit the 2D drawing's properties, such as grip point, label visibility, placement point, background, and projection. You can also export the 2D drawings to 3dm and dwg files using **ExportClippingDrawings** command.

## Sectioning Workflows: From 3D Model to 2D Layout
Rhino has several new features that enhance the flow between 3D modeling space to 2D layout paper space when it comes to sectioning data extracted from clipping planes. The following present two workflows.
**1) Set Details to Clipped Views**
Create clipping planes for section, plans and elevations, then save to named views using **SaveClippingSectionViews** command with **Clip=Yes** option. Reference the saved named view from a detail in layout. You can set the depth of the clipping plane to zero to view the section without the background geometry.
**2) Extract Vector Drawings and Reference in Layout**
You can generate dynamic drawings of clipping planes sections, plans and elevation and their background geometry, and place on the World XY-Plane using **ClippingDrawings** command. You can then reference the drawing in layout from the Top view. The section geometry is organized in layers that you can turn on and off in layout. Turning off layers in model space and keeping on in layout is now possible. This helps to view the drawings in layout only.
## Notes
1. Files created with SectionTools in Rhino 7 should load correctly. However, section hint and layers will be updated to use the new layer organization and features in Rhino 8, so please make backups of your files before loading into Rhino 8.
1. SectionTools commands in Rhino 8 will work with clipping planes created using the ClippingPlane command. For example, it is possible to use any clipping plane to extract 2D drawings and save to named views.
1. Ask questions and give feedback on the [Discourse Forum](https://discourse.mcneel.com).
--------------------------------------------------------------------------------
# Clipping Drawings
Source: https://www.rhino3d.com/en/features/drafting/clipping-drawings/
Create custom hatch patterns in Rhino
## 3D Model to 2D Drawing
**Generate faithful 2D technical drawings from your 3D models!** Place ClippingSections on the model where you need floor plans, elevations, and sections, then extract ClippingDrawings directly in Rhino.
## Live Connection
**Modify the 3D model and update the 2D drawing at will!** A simple double-click on a ClippingDrawings to change its settings. Redefine [hatches](/en/features/drafting/hatch/) and section styles, modify the 3D model, remove or add elements and update the drawing on demand.
## Project in 3D Space %%New in 9%%
ClippingDrawings can now be projected in their true 3D location. This helps organize drawings, reference their location and view the 3D model behind them using different display modes. **Create visually compelling architectural presentations!**
## Stack Your Drawings %%New in 9%%
Do you need to generate a drawing per floor level on a multi-story building? AlignClippingDrawings allows you to stack your drawings or place them in a relative location to each other, keep your model organized and tidy.
## Curves Included %%New in 9%%
For models that include curves as background objects, these will now be added as part of the ClippingDrawings.

## Manage Properties
Manage the properties of your ClippingDrawings through the different layer options:
### Create from Template Layers %%New in 9%%
Create ClippingDrawings that inherit properties from a set of user-defined layers. Set properties such as color, linetype, print width once. It will apply to all your drawings there after. **An easy way to ensure project standards throughout a team!**

### Inherit from 3D Model %%New in 9%%
Keep a unique layer structure for both 2D linework and its 3D object. This makes it trivial to maintain the same properties between the 3D model and the ClippingDrawings. **Maintain the model clean and tidy without the need for duplicate layers!**

Try the `Use source layers` option
## Try It
1.
1. Open .
1. Run the
--------------------------------------------------------------------------------
# Decals
Source: https://www.rhino3d.com/en/features/rendering/decals/
Add bump, metal and other material properties to your Decals
## Decals: Full Control %%New in V9%%
**Bring your products to life by applying [Decals](https://docs.mcneel.com/rhino/9/help/en-us/properties/decal.htm) in Rhino!** In Rhino 9, you can add reflectiveness, textures, and bump maps to your decals.
## Decals: Can you spot the difference?
In previous versions of Rhino, [Decals](https://docs.mcneel.com/rhino/9/help/en-us/properties/decal.htm) were limited to simple textures, without the ability to add real-world properties such as bump maps or metallic reflections. These are commonly used for packaging, beverages, and many other consumer products.
## Decals: Transparent Objects
**[Decals](https://docs.mcneel.com/rhino/9/help/en-us/properties/decal.htm) on transparent objects, such as glass or plastic, are now supported.** In previous versions of Rhino, decals would disappear when assigned to transparent objects, making it impossible to assign labels, logos, or stickers to glasses or bottles.

## Decals: Matte on Reflective Objects
**Keep your [Decals](https://docs.mcneel.com/rhino/9/help/en-us/properties/decal.htm) matte even when assigned to metallic or reflective objects!** In previous versions of Rhino, Decals would inherit the material properties of the base object, making it impossible to decouple the two and depict your design intention.

## Try It
1.
1. Download and open the [ VelmoreBox.3dm](VelmoreBox.3dm) model. You’ll find a box with a [Decal](https://docs.mcneel.com/rhino/9/help/en-us/properties/decal.htm) applied to it.
1. [Select](/docs/guides/user-guide/selection/#main-selection-method) the top box:
1. In the Properties Panel, select the **Decal** icon.
1. Select the Decal texture in the list.
1. We'll define the material properties for the [Decal](https://docs.mcneel.com/rhino/9/help/en-us/properties/decal.htm). Scroll down in the panel:
1. Select the **Metallic** button to give a metallic finish.
1. Select the **Bump Map** light bulb icon to turn the bump map On.
1. Change the [Display Mode](/docs/guides/user-guide/navigation-display/#display-modes) to [Raytraced](https://docs.mcneel.com/rhino/8/help/en-us/options/view_displaymodes_raytraced.htm) to get a physically correct image.
1. **Try it on your own!** Experiment with other settings in the panel.
1. Share comments and feedback on the [Rhino Forum](https://discourse.mcneel.com/).
--------------------------------------------------------------------------------
# Drafting Symbols
Source: https://www.rhino3d.com/en/features/drafting/symbols/
Create custom hatch patterns in Rhino
## A Library of Drafting Symbols
Drafting Symbols help architects and drafters create 2D drawings in Rhino with ready-made symbols for context, annotation, and drafting details. Using drafting symbols gives users a faster start, reduces repetitive drafting work, and helps keep drawings consistent across files and teams.
## Browse, Place, and Customize
Browse symbols by category in the Library panel, drag them into a Rhino viewport, and fill in any required attributes when prompted.
## Libraries You Can Build
Create your own library folders to organize, reuse, and share drafting symbols across files and teams.
## Try It
1.
1. Download and open the [ DraftingSymbols.3dm](DraftingSymbols.3dm) model.
1. Run the Libraries command to open the **Libraries** panel.
1. From the , select **Blocks**.
1. Browse the drafting symbol folders and choose a symbol.
1. Drag and drop the symbol into a Rhino viewport.
1. At the **Insert File Options** dialog, press **OK** to validate.
1. At the **Insert** dialog, press **OK** to validate.
1. If the symbol includes `Block Attributes`, enter the required information when prompted. Press **OK**.
1. Edit this data from the `Attribute User Text` page in the Properties panel.
1. To add your own symbols:
1. Run the Options command.
1. Go to the **Libraries** page.
1. Add a folder containing your symbols (in any Rhino-supported file format) in the panel for reuse in other files.
1. **Try it on your own!** Experiment with your own examples.
1. Please provide feedback or ask questions on the [Rhino Forum](https://discourse.mcneel.com/).
--------------------------------------------------------------------------------
# Hatch Patterns
Source: https://www.rhino3d.com/en/features/drafting/hatch/
Create custom hatch patterns in Rhino
## Hatch: Create your own patterns
**Create your own Hatch patterns using Rhino 2D geometry!** Use lines, arcs, circles, curves and **create custom hatches for project-specific needs**. You no longer have to depend on external libraries or be limited to existing *.pat files.

## Hatch: Better access, more patterns!
Rhino's Hatch definitions include new and complex patterns such as Concrete, Rattan, Rubble, and Stone. No need to struggle finding commonly used *.pat files to import!
## Hatch: Edit your patterns
With an easy access to the Hatch Properties, modify all settings and see the preview on the fly!

## Hatch: Deform and transform
Edit and deform your Hatch in Rhino with commands such as: **Split**, **Taper**, **Untrim** and **Bend**. Adapt your hatches to your geometry!

## Hatch: In-viewport widgets
The new in-viewport widgets allow you to interact with the object's Hatch visually. Place the base point and play with the rotation of your object directly in the viewport!
## Try It
1.
1. Open .
1. Run the **```HatchPattern```** command.
1. Select the **Add** option in the **```Command Line```**.
1. Define the Pattern tile rectangle by snapping to P1 and P2 with the **End** object snap.
1. Window-select the lines inside the Pattern tile rectangle. Press **Enter**.
1. Enter a name for the new pattern. Press **Enter**.
1. Run the **```Hatch```** command.
1. Select the closed curve on the right side.
1. Select the new pattern from the list.
--------------------------------------------------------------------------------
# Layer Manager
Source: https://www.rhino3d.com/en/features/user-interface/layer-manager/
Layers are essential to an organized model. Group related objects together and control the parts of your model that you view, edit, print or even render in the same way. All of this is done in the Rhino Layer Manager, a key part of Rhino’s User Interface.
Layers are essential to an organized model. Group related objects together and control the parts of your model that you view, edit, print, or even render in the same way. You can do this in the Rhino Layer Manager, a key part of Rhino's User Interface.
## Layer Manager Enhancements %%New in 8%%
Rhino for Windows *and Mac* share the same Layer Manager with the following new features:
* **Search Bar**: Provides a more manageable approach when working with models containing a large number of layers.
* **Section Style**: Allows for the assignment of section styles per layer when a clipping plane is used for creating sections and elevations for documentation.
* **Independent Model Visibility**: Model space layers have independent visibility. Model space layer visibility will *not* affect any Layout or Details views in the model if the **Model On** column is used. The powerful **On** column for global visibility or "off everywhere" is still available as in all Rhino releases.
* **Improved Layer Management**: Enhanced Drag and Drop to reparent and reorder layers. If you prefer the arrows, you can still use them to arrange layers in hierarchies and change the location in the layer list. Also, delete layers more efficiently and more securely on both Windows and Mac platforms with Yes to all and No to all options.
* **Streamline Detail Configuration**: In the **New Detail On** setting, turn the light bulb off. Now when new details are added to any layout, this layer will already be *off*, saving time configuring new details.

### Search Bar
A **Search bar** is available at the top of the Layers panel. The Search Bar provides a more manageable approach when working with models containing a large number of layers. Type text in the field to search for layers by name.
### Section Style
**Section Style** column allows for the assignment of section styles per layer when you use a clipping plane to create sections and elevations for documentation.
### Independent Model Visibility
Model space layers have independent visibility. Model space layer visibility will *not* affect any Layout or Details views in the model if the **Model On** column is used. The powerful **On** column for global visibility or "off everywhere" is still available as in all Rhino releases.
### Improved Layer Management
Enhanced *Drag and Drop* to reparent and reorder layers. If you prefer the arrows, they can still be used to arrange layer hierarchies and to change their location in the layer list.
### Streamline Detail Configuration
In the **New Detail On** setting, turn the light bulb off. Now when you add new details to any layout, this layer will already be *off*, saving time configuring new details.
## Try It
1.
1. Download and open the [ layers-tryit.3dm](layers-tryit.3dm) model.
1. Type the `Layer` command to open up the **Layers** panel.
4. In the **Model On** column, turn *off* the **Gems-> center stone** and **Gems -> rose cut** layers. The center stone and gems are no longer visible on the model.
*Hint: Use the resizing arrows to increase the width of the **Layers** panel and to view the **Model On** column. If the **Model On** column is not available, right-click on any **Layers** column to show the **Model On** column.*
5. Pick on the layout **Page 1**. Confirm that the **Gems-> center stone** and **Gems -> rose cut** layers are set to *on* or visible.
6. Pick on the **Perspective** viewport, and confirm that the **Gems-> center stone** and **Gems -> rose cut** layers are still *off* in the **Model On** column. Here you see that the model layer visibility is independent of the detail layer visibility when using the **Model On** column.
7. Now, in the **Perspective** viewport, turn the **Gems-> center stone** and **Gems -> rose cut** layers back *on* in the **Model On** column.
8. Let's see how the Section Styles are configured. In the **Ring-> shank** layer row, pick on the **Section Style**. The *Section Style* dialog will appear.
9. For the *Pattern*, pick **Grid60** and for *Boundary Scale* type `6`. Pick OK.
10. On the **Gems-> center stone** layer row, pick on the **Section Style**.
11. For the *Pattern*, pick **Squares**, for *Rotation* type `45` and for *Boundary Scale* type `6`. Pick OK.
12. Type the `Gumball` command and set the Gumball to **On**. In the **Layers** panel, turn *On* the *clipping plane* layer and select the clipping plane.
13. Pick the blue arrow on the Gumball and slide it back until the plane cuts through the center of the ring. When you stop dragging, the section styles will appear at that location on the ring. (*Use the point on the screen to help find the new location of the clipping plane.*)
14. *Esc* to deselect the clipping plane.
Ask questions and give feedback on the [Discourse Forum](https://discourse.mcneel.com).
*Model credit: ART Laurie Robinson, LR Jewelry*
--------------------------------------------------------------------------------
# Linetypes
Source: https://www.rhino3d.com/en/features/drafting/linetypes-new/
Linetypes draw stylized curves with pattern, width and taper to communicate design or artistic flair.
Linetypes are curve styles with pattern, width, and taper properties. Enhanced linetypes are assigned to curves, surfaces, solids, and more. Linetypes communicate your design with an artistic flair.


## Enhanced Linetypes
### More Than Just Curves
Enhanced linetypes work with curves, surfaces, polysurfaces, extrusions, SubDs, dimensions, and more. Customized control of linetypes for objects and sub-objects is available in the display mode configuration.


### End Caps and Join Styles
End caps define the shape drawn at the ends of open curves. Join styles define the shape to use when curves make a sharp corner or change in direction.
Cap and Join Style: Round
Cap and Join Style: Flat and Miter
Cap and Join Style: Square and Bevel
## Linetypes with Taper
These settings work together to configure the artistic taper. Options include pattern, width at the taper, and the location of the taper at a percentage along the overall curve length.



### Linetypes Panel
Use the *Linetypes* panel to streamline your creativity with standard patterns or define your custom linetype pattern.

### Perspective Rotate
Linetypes will always remain oriented to the view camera. As you rotate your model, the linetypes display planar.


*Linetype Panel at Work*
## Shapes in Linetypes %%New in 9%%
**Custom linetypes** are more than simple geometry, they embed meaning and convey a visual message. Include text or geometrical symbols that get distributed and spaced out along your linework.
### Smarter Linetypes
**Shapes and Text in Linetypes** help architects and drafters turn complex drawing conventions into reusable line styles. Represent utilities, fences, wall types, and other repeated linework while keeping it connected to the curve.
### Create or Modify Linetypes
Create new linetypes from selected text or curve shapes, or edit existing linetypes to include them. Text, symbols, and shapes become part of the line style, not objects placed along the curve.
### Edit Without Rebuilding
Move, stretch, rotate, or edit the curve and the linetype updates with it. Change the linetype definition once to update every curve or layer using it.
## Try It
1.
1. Download and open the [ Shapes-Text-in-Linetypes.3dm](Shapes-Text-in-Linetypes.3dm) model in Rhino.
1. Run the command to open the **Linetypes** panel.
1. In the **Linetypes** panel, click the button to create a new linetype.
1. Name the new linetype `Storm Drain`.
1. Scroll down to the **Shapes** section:
1. Set **Gap** to `BoundingBox`.
1. Set **Spacing** to `10`.
1. For **Base Point**, click the `0.00, 0.00, 0.00` button and set the base point to the center of the red rectangle.
1. For **Select**, click **Select Shapes…**, select the **SD** text, and press **Enter**.
1. Assign the new **Storm Drain** linetype to the **Storm Drain** layer.
1. One curve is already assigned to the Storm Drain layer, so you'll see it update automatically.
1. Repeat the same process for **Gas Line**, **Fence1**, and **Fence2**.
1. Assign each newly created linetype to its corresponding layer.
1. **Try it on your own!** Create a custom linetype using your own shapes or text, then assign it to a layer to see how it updates across your drawing.
1. Share comments and feedback on the [Rhino Forum](https://discourse.mcneel.com/).
1. **TBC!!!!!!!**
## Grasshopper: Create Model Linetypes
You can also use Grasshopper to create custom linetypes with the _Model Linetype_ component:
--------------------------------------------------------------------------------
# Linetypes
Source: https://www.rhino3d.com/en/features/drafting/linetypes/
Linetypes draw stylized curves with pattern, width and taper to communicate design or artistic flair.
Linetypes are curve styles with pattern, width, and taper properties. Enhanced linetypes are assigned to curves, surfaces, solids, and more. Linetypes communicate your design with an artistic flair.


## Enhanced Linetypes %%New in 8%%
### More Than Just Curves
Enhanced linetypes work with curves, surfaces, polysurfaces, extrusions, SubDs, dimensions, and more. Customized control of linetypes for objects and sub-objects is available in the display mode configuration.


### End Caps and Join Styles
End caps define the shape drawn at the ends of open curves. Join styles define the shape to use when curves make a sharp corner or change in direction.
Cap and Join Style: Round
Cap and Join Style: Flat and Miter
Cap and Join Style: Square and Bevel
### Linetypes with Taper
These settings work together to configure the artistic taper. Options include pattern, width at the taper, and the location of the taper at a percentage along the overall curve length.



### Linetypes Panel
Use the *Linetypes* panel to streamline your creativity with standard patterns or define your custom linetype pattern.

### Perspective Rotate
Linetypes will always remain oriented to the view camera. As you rotate your model, the linetypes display planar.


*Linetype Panel at Work*
### Grasshopper: Create Model Linetypes
You can also use Grasshopper to create custom linetypes with the _Model Linetype_ component:
## Try It
In this quick tutorial, you will assign the custom linetypes to layers that contain curves.
1.
1. Download and open the [ linetypes-demo.3dm](linetypes-demo.3dm) model.
1. Type the **Layer** command.
- Navigate to layer **Continuous**. Set the linetype to **Custom Continuous**.
- Navigate to layer **Taper Thin** layer. Set the linetype to **Custom Taper Thin**.
- Navigate to layer **Taper Thick**. Set the linetype to **Custom Taper Thick**.
1. Type the **Print** command. In Rhino for Windows, select *Rhino PDF* printer. (In *Rhino for Mac*, pick *PDF Preview* in the final step.)
- Set *Output* type to **Raster** and *Output color* to **Display Color**.
- Under *View and Output Scale*, select Layout **1-Radio Curves**.
- Under *Linetypes and Line Widths*, set *Line Width* to **Use linetype widths**.
1. In Rhino for Windows, pick **Print** and select **Rhino PDF** as your printer. (In *Rhino for Mac*, pick *PDF Preview*.) When prompted, give the PDF a name and location.
1. **Done!** Experiment with different linetypes in your designs and be sure to ask questions and give feedback on the [Discourse Forum](https://discourse.mcneel.com).
To test **Enhanced Linetypes**, you will need to verify these Rhino settings:
- **Print Display** needs to be turned off. (Use the **PrintDisplay** command to disable it.)
- **Linetypes** do not display if the **Display Mode** has **Curve Width** set to *Pixels*. Reset your **Display Mode** to **Default** settings:
1. Type the **Options** command.
1. Navigate to *View* and *Display modes*.
1. Click *Wireframe* and select: *Restore Defaults*
1. Click OK to exit **Options**.
1. Quit and Restart Rhino before trying again.
--------------------------------------------------------------------------------
# Procedural Textures
Source: https://www.rhino3d.com/en/features/rendering/procedural-textures/
Native, per-pixel procedural textures in raytraced and rendered modes.
Visual artists and rendering experts can now use true procedural textures in Rhino. Procedural textures use algorithms instead of bitmap images.

Create dots, waves, bumps, checkers, tiles, marble, wood, and more.
### Main Advantages
* They are independent of image resolution and size.
* Support for Rendered and Raytraced display modes.
* Infinite zooming: no more pixelated textures.
* Faster to generate as they are now calculated on the GPU.
* Changes to the settings update in realtime.
* Smaller file sizes.
## Native Procedurals %%New in 8%%
Rhino's procedural textures now run *natively,* calculated by the GPU, for fast and accurate results independent of texture size and resolution.
### Make Changes in Realtime
Changing procedural texture settings updates in realtime without any loss of quality.
### Raytraced Support
Procedural textures are supported by [Cycles, Rhino's realtime render engine](/features/rendering). Get an immediate glimpse of your scene, including reflections and refractions:
## Try It
1.
1. Download and open the [ Procedurals-Demo.3dm](Procedurals-Demo.3dm) model. You’ll find a blue object, representing the "skin" of the bottle.
1. Double-click the *Perspective* viewport title to maximize the view.
1. Click on the dropdown arrow of *Perspective* and select *Rendered*. The blue object will appear with a camouflage texture on it.
1. Run the `_Textures` command in the Command Line. This will open the *Texture Editor*. You might need to dock or resize the panel to see the settings.
1. You will find two files listed in the *Preview* section: *camouflage* and *environment*.
1. Select the *camouflage* thumbnail. This will bring up the settings for that texture under the *Preview* section.
1. In the *Settings* section, play around with the options under:
1. *Colors*
1. *Granite Texture Settings*
1. *Mapping*
1. Notice how the texture updates seamlessly in realtime!
1. On the right side of the interface, make the *Layer* panel active.
1. Click on the *lightbulb* by the *Bottle* and *Cap* layer to visualize the full bottle.
1. Ask questions and give feedback on the [Discourse Forum](https://discourse.mcneel.com).
--------------------------------------------------------------------------------
# RefitTrim
Source: https://www.rhino3d.com/en/features/refit-trim/
RefitTrim allows for well-made surface models with the best possible control over surface structure and continuity.
# RefitTrim
`RefitTrim` converts an edge of a trimmed surface into an untrimmed edge while preserving the shape as closely as possible. This is useful when you need high-quality surfaces, as in automotive and naval design.
Untrimmed edges have the same control point and span *count* as the surface in the direction of the edge. Untrimmed edges create geometry that is easier to edit downstream.
## Improved Fit %%New in 8%%
* Create Bezier patches
* Show the edge deviation in realtime
* Change the degree of the surface on the fly
* Edit knots along the surface edge to minimize deviation
When duplicating an edge of a surface, turning on its control points will reveal the structure of the edge. In general, a trimmed edge has a much denser point structure than the edge from a refit (untrimmed) surface. As a result, this dense structure will be carried over to surfaces created from this edge (by commands like `Sweep1`, `Sweep2`, `Loft`, `BlendSrf`, `EdgeSrf`, `ExtrudeCrv`).
Trimmed vs. Refit (untrimmed) result, showing differences in both the control point structure of the edge curve as well as the resulting surfaces from `ExtrudeCrv`:
## Try It
*
* Download and open the [ RefitTrim-Demo.3dm](RefitTrim-Demo.3dm) model.
* Run the command ___RefitTrim__.
* Click the curved edge of the surface that has been trimmed. A preview of the newly created surface will be shown with edge deviation information.
* Click the option **Degree=3** to change the degree of the surface to degree 5 and observe how the surface and edge deviation changes.
* Click the **EditKnots** option. Now you can add knots by clicking a point on the surface.
* To add knots at equally spaced intervals, click the **Automatic** option. This is equal to enabling **Midpoints** and adding knots manually at these Midpoints. The deviation information will update as soon as you add a knot. In this stage you can still **Undo** any added knots.
* If **CreateBeziers=yes**, the resulting surface will be split along the added spans to create multiple single-span patches.
* Ask questions and give feedback on the [Discourse Forum](https://discourse.mcneel.com).
--------------------------------------------------------------------------------
# Reflected Ceiling Plans
Source: https://www.rhino3d.com/en/features/drafting/reflected-ceiling-plans/
A viewport set to reflected parallel projection is perfect for Reflected Ceiling Plans.
Reflected Ceiling Plans are ideal for showing the piping, lighting, fans, sprinklers, ducts, coffering, coving, and other ceiling features as if they were mirrored to the floor. Unlike using the *Bottom* view in a *Parallel* projection, when the viewport is set to *Parallel Reflected Projection*, the view is still looking at the *Top* or *Plan* of the design.
## Parallel Reflected Projection
When a viewport is set to a standard **Parallel** projection, the geometry that is on the ceiling plane is occluded by the geometry above.
When a viewport is set to ***Parallel Reflected*** projection, the geometry on the ceiling is shown as if it is mirrored to the floor below.


### Parallel Reflected Projection at Work
This building model contains ceiling coffering, tin tiles, and lighting. By assigning the viewport the ***Parallel Reflected*** mode, these ceiling features are shown mirrored to the floor.
## Try It
1.
2. Download and open the [ Reflected-Ceiling-Plan-Demo.3dm](Reflected-Ceiling-Plan-Demo.3dm) model.

3. Double-click on the ***Top*** viewport title to maximize the viewport.
4. Press the ***Esc*** key to make sure no objects are selected.
5. Type the **Properties** command to open the ***Properties*** panel.
6. In the ***Properties*** panel, set the ***Projection*** of the ***Top*** viewport to ***Parallel Reflective***.

7. Type the **Layer** command.
8. In the *Layers* panel, turn on the ***Ceiling Dimensions*** and the ***2D Electrical*** layer by picking on the gray light bulb. When on, the light bulb will be shown in the yellow color.

9. In the **Properties** panel, set the *Display mode* of the **Top** viewport to *Rendered*.

10. You can now see the can lights, fan, and ceiling coffering reflected to the floor combined with the wiring design over the floor plan.

--------------------------------------------------------------------------------
# Section Styles
Source: https://www.rhino3d.com/en/features/clipping/section-styles/
Use Section Styles to create section details of your model.
The Section Styles is a property of objects and layers. It includes hatch, fill, and boundary settings. Clipping Planes use this property to create section views and drawings of your model.
## Try It
1.
1. Download and open the [ SectionStyles-Demo.3dm](SectionStyles-Demo.3dm) model.
1. Locate the **Wall** layer and under **Section Style** property, click on **None**. The Section Style dialog opens and you can set a **Custom** style for the layer. In the dialog, set the **Hatch** Pattern to *Hatch1*, **Rotation** to *45* degrees, **Scale** to *5*, and **Background** to *None*, then click **OK/Apply**.

4. Select the object located in the **Earth** layer, go to the **Properties** panel and under **Section Style** expand the list and click on **Custom**. This will open the **Section Style** dialog. Set **Hatch** Pattern to *Earth*, set **Rotation** to *45* degrees, set **Scale** to *2*, then click **OK/Apply**.

5. To explore the section styles of other objects, select one of the objects located in the **Foundation** layer, open the object **Properties** panel and click on **Custom** under **Section Style** property. To update the location of the section, select the clipping plane located in the **Sections** layer and drag and rotate.

6. For more details, check out the Discourse post about [Section Styles in Rhino 8](https://discourse.mcneel.com/t/rhino-8-feature-section-styles/161090).
--------------------------------------------------------------------------------
# Window Layouts
Source: https://www.rhino3d.com/en/features/user-interface/window-layouts/
Customize, save, share, and restore your favorite interface layouts.
# Save and Restore Window Layouts %% New in 8 %%
Window Layouts allow you to quickly configure Rhino's interface to focus on the task at hand. Design your own to show only the tools you need.
[[items]]
image = "https://www.rhino3d.com/features/user-interface/window-layouts/tasks/Drafter.png"
[[items]]
image = "https://www.rhino3d.com/features/user-interface/window-layouts/tasks/Kitchen%20Sink.png"
[[items]]
image = "https://www.rhino3d.com/features/user-interface/window-layouts/tasks/Rendering%20Guru.png"
[[items]]
image = "https://www.rhino3d.com/features/user-interface/window-layouts/tasks/The%20Minimalist.png"
[[items]]
image = "https://www.rhino3d.com/features/user-interface/window-layouts/tasks/Vanilla%20Default.png"
## Focus On the Task At Hand
* **Customize Rhino** to show only the tools you need.
* **Save and restore** Window Layouts to easily switch between your library of presets.
* **Move Rhino** from screen to screen. Rhino's **proportional window positioning** ensures toolbars and panels stay where you put them.
## Familiar on Windows and Mac
Have you ever tried to *teach* Rhino from your Windows PC while your students are on *Mac? Ouch*. The differences pile up, making teaching painful. Rhino 8's user interface is substantially similar between platforms (except for the Command Prompt). Tools are in the same place; icons look the same. You can **share Window Layouts** with others - even between Windows and Mac.
## Try It
-
- Download the Window-Layout-Example.rhw file.
- In Rhino's *Window* top menu, go to *Window Layouts* and select *Manage Window Layouts...*.
- Click the *Folder icon* to *Import window layout*.
- In the list, double-click the *Rendering* layout to *Restore selected window layout*.
- To save a custom layout, go to *Window* > *Window Layouts* > *Save Window Layout...*.
- Ask questions and give feedback on the [Discourse Forum](https://discourse.mcneel.com).
--------------------------------------------------------------------------------
# Mesh Booleans
Source: https://www.rhino3d.com/en/features/meshes/mesh-booleans/
The ability to Trim, Union, Subtract, and Split mesh geometry is critical when working with models that may come from many sources. Work with mesh models, scans, and STL files.
Model directly with scanned models
Prepare mesh models for prototyping
Split large models for 3D Printing
The ability to Trim, Union, Subtract, and Split mesh geometry is critical when working with models that may come from many sources:
* Transferring captured 3D data from digitizing and scanning into Rhino as mesh models.
* Working with topography models.
* Editing Medical and Organic models that are originally from scanned data.
* Working with models from mesh modelers such as STL and OBJ files.
* Preparing meshes for prototyping and fabrication with 3D printers.
## Better Booleans %%New in 8%%
Robust Boolean commands will work on models that would previously fail, where:
* Results of booleans have been greatly improved.
* Mesh faces keep the same mesh organization as inputs.
* More mesh models are successful, even if not always well-structured.
## Try It
*
* Download and open the [ HandleSplit.3dm](Handlesplit.3dm) model.
* Run the **`MeshSplit`** command, or click the `MeshSplit` button on the Mesh toolbar.
* [Read the Help Documentation for QuadRemesh](https://docs.mcneel.com/rhino/8/help/en-us/commands/quadremesh.htm).
* [Ask questions and give feedback](https://discourse.mcneel.com/).
* Grasshopper users can use the updated Mesh Boolean components.
* Developers: `Rhino.Geometry.Mesh.Split()`, `Rhino.Geometry.Mesh.CreateBooleanUnion()`, `Rhino.Geometry.Mesh.CreateBooleanDifference()`, `Rhino.Geometry.Mesh.CreateBooleanSplit()` are available in RhinoCommon for use in C# and Python.
## See Also
* [Wrap a poor mesh with a new solid mesh](/features/shrinkwrap) - Shrinkwrap to create watertight mesh models.
* [Use a mesh to build a solid model](/for/medical-and-dental/quadremesh/) - QuadRemesh for the medical and dental industry.
* [Some technical situations that are improvements over the previous versions](https://discourse.mcneel.com/t/the-new-code-for-meshsplit/85328).
--------------------------------------------------------------------------------
# Scripting
Source: https://www.rhino3d.com/en/features/developer/scripting/
Customize and extend Rhino to suit your workflows using Python 3 and .NET with a common editor in Grasshopper and Rhino on Windows and Mac.
# Scripting
Customize and extend Rhino to suit your workflows using Python 3 and .NET with a common editor in Grasshopper and Rhino on Windows and Mac.
## Refreshed Editor %% New in 8 %%
- **Unified Script Editor** with **Debugging** in Rhino and Grasshopper on Windows and macOS
- **Python 3** (CPython) supporting scientific libraries (e.g. *NumPy*, *openseas*) and **PyPI** packages
- **Modern C#** scripting supporting **NuGet** packages
- **Publishing Scripts** as Rhino or Grasshopper plugins
- Walrus operator? Yes!
- Use popular PyPI packages in Rhino and Grasshopper
- Step into your script and debug
- Use PyPI or NuGet packages in your Rhino or Grasshopper scripts
- Scripts can specify their required packages inline, and are self-contained
- Unified Script Component for all languages
- Step into your Grasshopper script and debug
- Use PyPI or NuGet packages in Grasshopper scripts
- Package your script commands into Rhino plugins (*.rhp* | *.macrhi*) with toolbars (*.rui*)
- Package you script components into Grasshopper plugins (*.gha*)
- Use third-party packages - or your own libraries - in scripted commands and components
- Create Package Manager "yak" packages for your plugin
## Try It
1.
#### In Rhino
2. Type `ScriptEditor` in the command prompt to open Script Editor. The Editor begins initializing Python 3 runtime (this only happens after a fresh install and can take a few moments to complete).
1. When ready, click the *New* button and create a new Python 3 or C# script from *Examples*.
1. Click the *Run* (play) button to execute the script.
1. Explore other examples to see how you can use third-party packages in your scripts.
#### In Grasshopper
7. Type `Grasshopper` in the command prompt to open Grasshopper. The Editor begins initializing Python 3 runtime (this only happens after a fresh install and can take a few moments to complete).
1. When ready, from the *Maths* panel, add a new **Script** component to the canvas.
1. On the script component, click on a language to start a new editor with a default script.
1. Add a few inputs and outputs to the component. Pass data to the inputs.
1. Now click the *Solve* button in Grasshopper.
1. Open the Examples panel in Editor to explore other Grasshopper script examples.
1. Use the Templates panel to initialize your new scripts.
**For more extensive tutorials and documentation see the [Scripting Guides](https://developer.rhino3d.com/en/guides/scripting/).**
**Ask questions and give feedback on the [Discourse Forum](https://discourse.mcneel.com/c/scripting/11).**
--------------------------------------------------------------------------------
# UV Mapping
Source: https://www.rhino3d.com/en/features/rendering/uv-mapping/
UV Mapping is an important step in creating high-quality renderings: controlling how textures wrap around the geometry they are applied to. Rhino’s UV Editor allows you to edit the meshes that affect the appearance to get just the right look.
UV Mapping is an important step in creating high-quality renderings. Rhino's UV Editor controls how material textures wrap around their geometry. Fine-tune the mapping to get just the right look.
## Enhanced UV Worklow %%New in 8%%
- The floating **UV Editor is detached from the main window**, giving you more flexibility and control over your workspace. This is especially useful for users who have multiple monitors or need to work on **large UV maps**.
- The new UV Editor supports **pinning of vertices**, **straightening of edge chains**, and **aligning edges to curves** drawn in the UV Editor. This makes it easier to manipulate UV maps to align them with a specific image texture. This can be a huge time-saver for anyone working on complex UV layouts.

- Unwrapping can be done with three algorithms. In addition to the Default "Conformal" algorithm, there is now also an **As Rigid As Possible** and **Angle Based** unwrapping method.
- After unwrapping and while UV editing, Rhino will show the objects with **full texture resolution** because **texture baking is no longer necessary**. This means that the 3D model will appear in greater detail and with more clarity. This helps **catch issues early** in the UV layout process.
## Try It: UV Mapping in Action
-
- Download and open the [ UV-Mapping-Demo.3dm](UV-Mapping-Demo.3dm) model.
- Watch below to learn how the new UV Editor in Rhino 8 can be used to unwrap and adjust the appearance of material textures. Unwrap the model by selecting edge seams, then pin and straighten the UV islands to adjust.
- Ask questions and give feedback on the [Discourse Forum](https://discourse.mcneel.com).
--------------------------------------------------------------------------------
# ShrinkWrap
Source: https://www.rhino3d.com/en/features/shrinkwrap/
ShrinkWrap creates a watertight mesh around open or closed meshes, NURBS geometry, SubD, and point clouds: ideal for creating meshes for 3D printing.
ShrinkWrap creates a watertight mesh around open or closed meshes, NURBS geometry, SubD, and point clouds.
ShrinkWrap is ideal for creating:
* Meshes for 3D printing.
* A solid union mesh from multiple objects.
* A solid mesh from 3D scan data fragments.
* Meshes without internal self-intersections.
* Offset meshes for shelling.
* Meshes from point clouds when reverse engineering.
* Valid closed meshes from broken or often hard-to-repair geometry.
## ShrinkWrap in Action
## Try It
1.
1. Download and open the [ ShrinkWrap-Demo.3dm](ShrinkWrap-Demo.3dm) model. This is a 3D scan of a shoe last used in shoemaking. Notice the major gaps and broken, uneven mesh geometry. You can fix that with ShrinkWrap.
1. Select all the objects in *ShrinkWrap-Demo.3dm* model (run `-_SelAll`).
1. Run the `ShrinkWrap` command (the button can also be found in the *Mesh Tools* toolbar). The *ShrinkWrap* dialog appears:
1. Set the *Target Edge Length* to `0.10'. This option effects the density of the resulting mesh.
1. Set the *Offset* value to `-0.05`. Offset pulls the results of inflated points back to the original.
1. Set the *Smoothing iterations* to `10`. A larger value will smooth out lumps and pits where the large hole in the toe was.
1. Check the *Inflate Vertices and Points* option. This converts all non-mesh objects to meshes and then samples each new vertex location as a point cloud to construct the new mesh.
1. Click the *OK* button. In a few moments, you should have a closed, watertight mesh.
1. Ask questions and give feedback on the [Discourse Forum](https://discourse.mcneel.com).
--------------------------------------------------------------------------------
# Built for Mac: Metal
Source: https://www.rhino3d.com/en/features/display/metal/
Blazingly fast 3D drawing, a massive speed boost for Mac users.
Rhino for Mac is **now faster than ever** on Intel and Apple Silicon Macs. Powered by **Metal**, our **new display pipeline** delivers **hardware-accelerated graphics for high frame rates** and large resolutions.
Even in complex, detailed models—especially those with lots of lines, curves, hatches, and annotations—you can now pan, zoom, and orbit fluidly without dropping frames. Depending on your model, [speed increases can be 24 times or more](#benchmarks-we-used).
The updated **[Cycles Render Engine](/features/rendering)** is also built on Metal, speeding up the *Raytraced* display mode and the *Rhino Render* engine.
Metal is supported in **all display modes**.
To use Metal, Rhino [requires an Intel or Apple Silicon Mac that can run macOS Monterey 12.4 or later](/8/system-requirements/).
## Test Your Models
We put a tremendous amount of work into the Metal display pipeline. We hope it produces faster, higher-quality frames across a broader range of Macs, but we cannot guarantee performance improvements in all circumstances. The best way to gauge how it performs on your hardware is to [test Rhino yourself](https://www.rhino3d.com/download/rhino/8/evaluation/) with your models. For those seeking advice, please ask the [Rhino community](https://discourse.mcneel.com/c/rhino/147).
## Benchmarks We Used
The following graph and table compare display performance between Rhino 7 (OpenGL) and Rhino 8 (Metal). The `TestMaxSpeed` command was run in each version, with each 3dm file on identical hardware (see notes below). *Values are in frames per second (FPS): higher numbers are faster.*
Tutorials are available on our Render Learn page...
If you own a Brazil license and need to download it for Rhino 5 or 6, it is available on our Downloads page.
Like all McNeel products, support for this transition is available. Get help from our experts on the Render Support Forum or contact our Technical Support for any help that is needed.
--------------------------------------------------------------------------------
# Choosing the best License Management Method
Source: https://www.rhino3d.com/en/features/administration/select-licensing-method/
Choose from three ways to license Rhino: Cloud Zoo, Single-Computer, or Zoo.
Rhino license keys can be managed in many ways. The links below help select the best option for you.
## Select Your License Type
*
*
*
*
*
### Evaluation
One 90-day evaluation period is allowed per person. Evaluation licenses may not be shared between people.
*Choose one of the following options:*
1. Float the license between multiple computers for **one user** by .
1. .
### Educational Single-User License
Educational licenses may be used by **only one person**.
*Choose one of the following options:*
1. Float the license between multiple computers for **one user** by .
1. .
### Commercial Single-User License
Commercial single-user licenses can be used individually or shared with a team.
*Choose one of the following options:*
1. Float the license between multiple users anywhere in the world by .
1. Float the license between multiple computers for one user by .
1. Float the license between multiple users or computers on a private network by .
1. .
### Commercial Multi-User License
Commercial multi-user licenses are available as 10- and 50-user license packs. They must be shared among a team of people.
*Choose one of the following options:*
1. Float the license between multiple computers anywhere in the world by .
1. Float the license between multiple users or computers on a private network by .
### Educational Lab License (30-User)
Educational Lab Licenses must be shared among a team of people.
*Choose one of the following options:*
1. **Recommended for on-premise labs:** Float the license between multiple users or computers on a private network by .
* Computers in the lab should be connected via [LAN](https://en.wikipedia.org/wiki/Local_area_network) to the LAN Zoo server.
* All computers should be owned by the school.
* Computers can be added and removed easily from the lab. No direct licensing is required on each lab computer.
* Computers off-campus must be connected via VPN to access the LAN Zoo.
1. **Recommended for student and faculty access from school and home:** Float the license between multiple computers anywhere in the world by .
* Allows students and staff to access Rhino from any computer on or off campus.
* Computers can be owned by the school, students, or staff.
* Each user must have a Rhino account.
* **Requires user management** as students enroll and leave a program.
### Assign to Rhino Account
* Recommended to float a license among **one user's personal computers**.
* Use this option for licenses **you own personally**.
* The license will be on McNeel servers.
* Your models remain on your computer and are never sent to McNeel.
* Supports unexpired evaluation license keys.
* Requires occasional Internet access ([over HTTPS TCP port 443](https://wiki.mcneel.com/rhino/install/wizard/start/windows/6/commercial/czpersonal/firewall))
#### To assign a license to your Rhino Account:
1. Login to the [Rhino Licenses portal](https://www.rhino3d.com/licenses).
1. Click your name.
1. Click **Add License**.
1. Enter the license key.
1. Click **Add License**
1. Start Rhino
1. Login to Rhino using the same email address as step 1.
### Assign to Team
* Recommended to float **company owned licenses** among a **team of people**.
* [Deploy Rhino to client computers](https://wiki.mcneel.com/rhino/installingrhino).
* Requires occasional Internet access ([over HTTPS TCP port 443](https://wiki.mcneel.com/rhino/install/wizard/start/windows/6/commercial/czpersonal/firewall))
* The license will be on McNeel servers.
* Your models remain on your computer and are never sent to McNeel.
* Optional: [configure a domain-linked team](https://www.rhino3d.com/docs/guides/accounts/#link_domain).
* Invite people to your team.
#### To assign a license to a Team:
1. Login to the [Rhino Licenses portal](https://www.rhino3d.com/licenses).
1. Click the team name, or click **Create a New Team...**
1. Click **Add License**.
1. Enter the license key.
1. Click **Add License**
1. Start Rhino
1. Login to Rhino using the same email address as step 1.
#### To invite people to a Team:
1. Login to the [Rhino Licenses portal](https://www.rhino3d.com/licenses).
1. Click the team name you created above.
1. Click **Manage Team > Invite Members...**
1. Invite each user using their email address. (Each user will create an account as needed to join the team). After accepting the invitation, they will be directed to download Rhino and login to their team.
### Assign to LAN Zoo
* Recommended when sharing one or more licenses among multiple users within a LAN.
* Internet access is not required.
* Evaluation and Educational single-user licenses are not supported.
* Requires [LAN Zoo floating license manager](https://wiki.mcneel.com/zoo/home) (free).
* Enables [Deployment of Rhino to client computers](https://wiki.mcneel.com/rhino/installingrhino).
#### To assign a license to a LAN Zoo:
1. Download and install the [LAN Zoo](/zoo)
1. Start **Zoo Admin**
1. From the **Edit** menu, click **Add**
1. Enter the license key
1. Follow the steps through license validation
For more details, read [Installing Rhino for Windows in a School Lab](https://wiki.mcneel.com/zoo/labinstall)
### Lock to Single Computer
* Recommended when one user wants exclusive access to the license.
* Internet access is not required.
* Expired evaluation license can be used to view, but not modify, files.
* [Contact Sales](/support) if your computer is lost or damaged.
* Requires license validation. Validation happens online if you have an internet connection. Otherwise, Rhino will guide you through offline license validation.
#### To lock a license to a computer:
1. Start Rhino
1. If Rhino starts without asking you to enter an email address:
1. From the Tools menu in Rhino, click Options
1. From the License tab, click Change License Key.
1. Enter the email address to associate with the license.
1. From the **Options** link in the lower-left corner, click **Enter License Key**.
1. Enter the license key, then click **Next**.
1. Click **Lock to this computer**
--------------------------------------------------------------------------------
# Discontinued McNeel Products
Source: https://www.rhino3d.com/en/mcneel/discontinued/
A list of discontinued McNeel products.
The following products have been discontinued:
* Rhino 5 for Mac Evaluation version
* Penguin
* Brazil
--------------------------------------------------------------------------------
# Educational Proof of Status
Source: https://www.rhino3d.com/en/for/education/proof/asia/
To order educational versions of Rhino, proof of status is required. All documentation must include your name and a date for the current term.
# To order educational licenses, proof of status is required.
**All documentation must include your name and a date for the current term.**
## Students
If you are a student with an acceptable form of academic documentation at a middle school, secondary school, college, university, or career state-accredited school, you qualify to order a single‑user educational license.
Your proof must include your name and a date for the current term*. Provide one of the following with your order:
* Your tuition bill dated for the current school term*
* Your transcript dated for the current school term*
* Your current class schedule dated for the current school term*
* Note: College/University ID cards are not acceptable
* *Students: Current term enrollment applies to the school term that you are/were enrolled in within 180 days of today.
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single-user educational license. Your name must be on your proof. Provide one of the following with your order:
* Your current course schedule dated for the current school term
* Faculty/staff pay stub from the current school term. You may redact any sensitive information.
* Note: College/University ID cards are not acceptable
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term. You may redact any sensitive information.
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
**All documentation must include your name, current term and be in English (optionally in German, French, Italian, or Spanish).**
## Students
If you are a student (at least one semester) with an acceptable form of academic documentation at a primary school, secondary school, college or university, you qualify to order a single-user educational license.
Provide one of the following documents with your order. The document must include the **current date** (no more than 2 months old), the **current term**, the **name of your school/university** and **your full name**:
* Payment receipt of registration fee for the current school term
* Your transcript of records dated for the current school term
* A document signed by the educational center certifying your student status and dated for the current school term
**Note: College/University ID cards are not acceptable**
If you are enrolled in a **short-term training course or a Rhino course at ART / ARTC**, you are **not eligible** for an Educational license. You must purchase a commercial license.
Foundations, museums, charities, NGOs, retirees, hobbyists do not qualify for educational licenses
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college or university, you qualify to order a single-user educational license.
Provide one of the following documents with your order. The document must include the **current date** (no more than 2 months old), the **current term**, the **name of your school/university** and **your full name**:
* Previous month’s pay stub showing the name of your school/university (you can hide sensitive information)
* Teaching contract showing the current term
* Document signed by the educational center certifying your faculty/staff status and dated for the current school term
**Note: College/University ID cards and invoice from contractor to school are not acceptable**
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term. You may redact any sensitive information.
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
**All documentation must include your name and a date for the current term.**
## Students
If you are a student with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single‑user educational license.
Provide one of the following with your order:
* Your tuition bill dated for the current school term
* Your transcript dated for the current school term
* Your current class schedule dated for the current school term
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single-user educational license. Provide one of the following with your order:
* Your current course schedule dated for the current school term
* Faculty/staff pay stub from the current school term
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
**All documentation must include your name and a date for the current term.**
## Students
If you are a student with an acceptable form of academic documentation at a middle school, secondary school, college, university, or career state-accredited school, you qualify to order a single‑user educational license.
Provide one of the following with your order:
* Your tuition bill dated for the current school term
* Your transcript dated for the current school term
* Your current class schedule dated for the current school term
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single-user educational license. Provide one of the following with your order:
* Your current course schedule dated for the current school term
* Faculty/staff pay stub from the current school term
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
--------------------------------------------------------------------------------
# Educational Proof of Status
Source: https://www.rhino3d.com/en/for/education/proof/emea/
To order educational versions of Rhino, proof of status is required. All documentation must include your name and a date for the current term.
# To order educational licenses, proof of status is required.
**All documentation must include your name and a date for the current term.**
## Students
If you are a student with an acceptable form of academic documentation at a middle school, secondary school, college, university, or career state-accredited school, you qualify to order a single‑user educational license.
Your proof must include your name and a date for the current term*. Provide one of the following with your order:
* Your tuition bill dated for the current school term*
* Your transcript dated for the current school term*
* Your current class schedule dated for the current school term*
* Note: College/University ID cards are not acceptable
* *Students: Current term enrollment applies to the school term that you are/were enrolled in within 180 days of today.
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single-user educational license. Your name must be on your proof. Provide one of the following with your order:
* Your current course schedule dated for the current school term
* Faculty/staff pay stub from the current school term. You may redact any sensitive information.
* Note: College/University ID cards are not acceptable
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term. You may redact any sensitive information.
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
**All documentation must include your name, current term and be in English (optionally in German, French, Italian, or Spanish).**
## Students
If you are a student (at least one semester) with an acceptable form of academic documentation at a primary school, secondary school, college or university, you qualify to order a single-user educational license.
Provide one of the following documents with your order. The document must include the **current date** (no more than 2 months old), the **current term**, the **name of your school/university** and **your full name**:
* Payment receipt of registration fee for the current school term
* Your transcript of records dated for the current school term
* A document signed by the educational center certifying your student status and dated for the current school term
**Note: College/University ID cards are not acceptable**
If you are enrolled in a **short-term training course or a Rhino course at ART / ARTC**, you are **not eligible** for an Educational license. You must purchase a commercial license.
Foundations, museums, charities, NGOs, retirees, hobbyists do not qualify for educational licenses
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college or university, you qualify to order a single-user educational license.
Provide one of the following documents with your order. The document must include the **current date** (no more than 2 months old), the **current term**, the **name of your school/university** and **your full name**:
* Previous month’s pay stub showing the name of your school/university (you can hide sensitive information)
* Teaching contract showing the current term
* Document signed by the educational center certifying your faculty/staff status and dated for the current school term
**Note: College/University ID cards and invoice from contractor to school are not acceptable**
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term. You may redact any sensitive information.
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
**All documentation must include your name and a date for the current term.**
## Students
If you are a student with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single‑user educational license.
Provide one of the following with your order:
* Your tuition bill dated for the current school term
* Your transcript dated for the current school term
* Your current class schedule dated for the current school term
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single-user educational license. Provide one of the following with your order:
* Your current course schedule dated for the current school term
* Faculty/staff pay stub from the current school term
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
**All documentation must include your name and a date for the current term.**
## Students
If you are a student with an acceptable form of academic documentation at a middle school, secondary school, college, university, or career state-accredited school, you qualify to order a single‑user educational license.
Provide one of the following with your order:
* Your tuition bill dated for the current school term
* Your transcript dated for the current school term
* Your current class schedule dated for the current school term
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single-user educational license. Provide one of the following with your order:
* Your current course schedule dated for the current school term
* Faculty/staff pay stub from the current school term
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
--------------------------------------------------------------------------------
# Educational Proof of Status
Source: https://www.rhino3d.com/en/for/education/proof/japan/
To order educational versions of Rhino, proof of status is required. All documentation must include your name and a date for the current term.
# To order educational licenses, proof of status is required.
**All documentation must include your name and a date for the current term.**
## Students
If you are a student with an acceptable form of academic documentation at a middle school, secondary school, college, university, or career state-accredited school, you qualify to order a single‑user educational license.
Your proof must include your name and a date for the current term*. Provide one of the following with your order:
* Your tuition bill dated for the current school term*
* Your transcript dated for the current school term*
* Your current class schedule dated for the current school term*
* Note: College/University ID cards are not acceptable
* *Students: Current term enrollment applies to the school term that you are/were enrolled in within 180 days of today.
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single-user educational license. Your name must be on your proof. Provide one of the following with your order:
* Your current course schedule dated for the current school term
* Faculty/staff pay stub from the current school term. You may redact any sensitive information.
* Note: College/University ID cards are not acceptable
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term. You may redact any sensitive information.
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
**All documentation must include your name, current term and be in English (optionally in German, French, Italian, or Spanish).**
## Students
If you are a student (at least one semester) with an acceptable form of academic documentation at a primary school, secondary school, college or university, you qualify to order a single-user educational license.
Provide one of the following documents with your order. The document must include the **current date** (no more than 2 months old), the **current term**, the **name of your school/university** and **your full name**:
* Payment receipt of registration fee for the current school term
* Your transcript of records dated for the current school term
* A document signed by the educational center certifying your student status and dated for the current school term
**Note: College/University ID cards are not acceptable**
If you are enrolled in a **short-term training course or a Rhino course at ART / ARTC**, you are **not eligible** for an Educational license. You must purchase a commercial license.
Foundations, museums, charities, NGOs, retirees, hobbyists do not qualify for educational licenses
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college or university, you qualify to order a single-user educational license.
Provide one of the following documents with your order. The document must include the **current date** (no more than 2 months old), the **current term**, the **name of your school/university** and **your full name**:
* Previous month’s pay stub showing the name of your school/university (you can hide sensitive information)
* Teaching contract showing the current term
* Document signed by the educational center certifying your faculty/staff status and dated for the current school term
**Note: College/University ID cards and invoice from contractor to school are not acceptable**
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term. You may redact any sensitive information.
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
**All documentation must include your name and a date for the current term.**
## Students
If you are a student with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single‑user educational license.
Provide one of the following with your order:
* Your tuition bill dated for the current school term
* Your transcript dated for the current school term
* Your current class schedule dated for the current school term
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single-user educational license. Provide one of the following with your order:
* Your current course schedule dated for the current school term
* Faculty/staff pay stub from the current school term
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
**All documentation must include your name and a date for the current term.**
## Students
If you are a student with an acceptable form of academic documentation at a middle school, secondary school, college, university, or career state-accredited school, you qualify to order a single‑user educational license.
Provide one of the following with your order:
* Your tuition bill dated for the current school term
* Your transcript dated for the current school term
* Your current class schedule dated for the current school term
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single-user educational license. Provide one of the following with your order:
* Your current course schedule dated for the current school term
* Faculty/staff pay stub from the current school term
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
--------------------------------------------------------------------------------
# Educational Proof of Status
Source: https://www.rhino3d.com/en/for/education/proof/lata/
To order educational versions of Rhino, proof of status is required. All documentation must include your name and a date for the current term.
# To order educational licenses, proof of status is required.
**All documentation must include your name and a date for the current term.**
## Students
If you are a student with an acceptable form of academic documentation at a middle school, secondary school, college, university, or career state-accredited school, you qualify to order a single‑user educational license.
Your proof must include your name and a date for the current term*. Provide one of the following with your order:
* Your tuition bill dated for the current school term*
* Your transcript dated for the current school term*
* Your current class schedule dated for the current school term*
* Note: College/University ID cards are not acceptable
* *Students: Current term enrollment applies to the school term that you are/were enrolled in within 180 days of today.
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single-user educational license. Your name must be on your proof. Provide one of the following with your order:
* Your current course schedule dated for the current school term
* Faculty/staff pay stub from the current school term. You may redact any sensitive information.
* Note: College/University ID cards are not acceptable
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term. You may redact any sensitive information.
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
**All documentation must include your name, current term and be in English (optionally in German, French, Italian, or Spanish).**
## Students
If you are a student (at least one semester) with an acceptable form of academic documentation at a primary school, secondary school, college or university, you qualify to order a single-user educational license.
Provide one of the following documents with your order. The document must include the **current date** (no more than 2 months old), the **current term**, the **name of your school/university** and **your full name**:
* Payment receipt of registration fee for the current school term
* Your transcript of records dated for the current school term
* A document signed by the educational center certifying your student status and dated for the current school term
**Note: College/University ID cards are not acceptable**
If you are enrolled in a **short-term training course or a Rhino course at ART / ARTC**, you are **not eligible** for an Educational license. You must purchase a commercial license.
Foundations, museums, charities, NGOs, retirees, hobbyists do not qualify for educational licenses
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college or university, you qualify to order a single-user educational license.
Provide one of the following documents with your order. The document must include the **current date** (no more than 2 months old), the **current term**, the **name of your school/university** and **your full name**:
* Previous month’s pay stub showing the name of your school/university (you can hide sensitive information)
* Teaching contract showing the current term
* Document signed by the educational center certifying your faculty/staff status and dated for the current school term
**Note: College/University ID cards and invoice from contractor to school are not acceptable**
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term. You may redact any sensitive information.
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
**All documentation must include your name and a date for the current term.**
## Students
If you are a student with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single‑user educational license.
Provide one of the following with your order:
* Your tuition bill dated for the current school term
* Your transcript dated for the current school term
* Your current class schedule dated for the current school term
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single-user educational license. Provide one of the following with your order:
* Your current course schedule dated for the current school term
* Faculty/staff pay stub from the current school term
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
**All documentation must include your name and a date for the current term.**
## Students
If you are a student with an acceptable form of academic documentation at a middle school, secondary school, college, university, or career state-accredited school, you qualify to order a single‑user educational license.
Provide one of the following with your order:
* Your tuition bill dated for the current school term
* Your transcript dated for the current school term
* Your current class schedule dated for the current school term
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single-user educational license. Provide one of the following with your order:
* Your current course schedule dated for the current school term
* Faculty/staff pay stub from the current school term
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
--------------------------------------------------------------------------------
# Educational Proof of Status
Source: https://www.rhino3d.com/en/for/education/proof/napa/
To order educational versions of Rhino, proof of status is required. All documentation must include your name and a date for the current term.
# To order educational licenses, proof of status is required.
**All documentation must include your name and a date for the current term.**
## Students
If you are a student with an acceptable form of academic documentation at a middle school, secondary school, college, university, or career state-accredited school, you qualify to order a single‑user educational license.
Your proof must include your name and a date for the current term*. Provide one of the following with your order:
* Your tuition bill dated for the current school term*
* Your transcript dated for the current school term*
* Your current class schedule dated for the current school term*
* Note: College/University ID cards are not acceptable
* *Students: Current term enrollment applies to the school term that you are/were enrolled in within 180 days of today.
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single-user educational license. Your name must be on your proof. Provide one of the following with your order:
* Your current course schedule dated for the current school term
* Faculty/staff pay stub from the current school term. You may redact any sensitive information.
* Note: College/University ID cards are not acceptable
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term. You may redact any sensitive information.
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
**All documentation must include your name, current term and be in English (optionally in German, French, Italian, or Spanish).**
## Students
If you are a student (at least one semester) with an acceptable form of academic documentation at a primary school, secondary school, college or university, you qualify to order a single-user educational license.
Provide one of the following documents with your order. The document must include the **current date** (no more than 2 months old), the **current term**, the **name of your school/university** and **your full name**:
* Payment receipt of registration fee for the current school term
* Your transcript of records dated for the current school term
* A document signed by the educational center certifying your student status and dated for the current school term
**Note: College/University ID cards are not acceptable**
If you are enrolled in a **short-term training course or a Rhino course at ART / ARTC**, you are **not eligible** for an Educational license. You must purchase a commercial license.
Foundations, museums, charities, NGOs, retirees, hobbyists do not qualify for educational licenses
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college or university, you qualify to order a single-user educational license.
Provide one of the following documents with your order. The document must include the **current date** (no more than 2 months old), the **current term**, the **name of your school/university** and **your full name**:
* Previous month’s pay stub showing the name of your school/university (you can hide sensitive information)
* Teaching contract showing the current term
* Document signed by the educational center certifying your faculty/staff status and dated for the current school term
**Note: College/University ID cards and invoice from contractor to school are not acceptable**
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term. You may redact any sensitive information.
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
**All documentation must include your name and a date for the current term.**
## Students
If you are a student with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single‑user educational license.
Provide one of the following with your order:
* Your tuition bill dated for the current school term
* Your transcript dated for the current school term
* Your current class schedule dated for the current school term
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single-user educational license. Provide one of the following with your order:
* Your current course schedule dated for the current school term
* Faculty/staff pay stub from the current school term
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
**All documentation must include your name and a date for the current term.**
## Students
If you are a student with an acceptable form of academic documentation at a middle school, secondary school, college, university, or career state-accredited school, you qualify to order a single‑user educational license.
Provide one of the following with your order:
* Your tuition bill dated for the current school term
* Your transcript dated for the current school term
* Your current class schedule dated for the current school term
## Faculty/Staff
If you are a member of the faculty or staff with an acceptable form of academic documentation at a primary school, secondary school, college, university, or career state-accredited school, you qualify to order a single-user educational license. Provide one of the following with your order:
* Your current course schedule dated for the current school term
* Faculty/staff pay stub from the current school term
## Schools
Any government accredited school can order single‑user educational licenses or lab licenses on a school purchase order or procurement card. Provide one of the following with your order:
* School's tax exemption certificate
* Faculty/staff pay stub from the current school term
Rhino 5 and earlier versions can only be run on computers owned by the school, but with Rhino 6 (and later), the school can grant student-owned computers access to their lab licenses using Cloud Zoo Teams.
--------------------------------------------------------------------------------
# Flamingo End of Life
Source: https://www.rhino3d.com/en/discontinued-products/flamingo/
On August 1, 2020, Flamingo was discontinued.
Aug 1, 2020
Flamingo has been replaced by the new advanced renderer built into Rhino 7.
Rhino 7 includes many modern advances such as:
Tutorials are available on our Render Learn page...
If you own a Flamingo nXt 5 license and need to download it for Rhino 5 or 6, it is available on our Downloads page.
Like all McNeel products, support for this transition is available. Get help from our experts on the Render Support Forum or contact our Technical Support for any help that is needed.
--------------------------------------------------------------------------------
# Inset: Shaping Detail
Source: https://www.rhino3d.com/en/features/inset-new/
The Inset command inserts edges by offsetting the edges of selected mesh, SubD, or polysurface face a certain distance inwards.
## For Industrial Designers %%New in V9%%
The Inset ```Group``` option unifies adjacent polysurface faces into a single region, making it effortless to add precise details to your products: pockets, grooves, shutlines, and recesses, that can be instantly extruded or recessed for faster, more intuitive direct modeling.
## For Architects %%New in V9%%
The Inset ```Group``` option unifies adjacent polysurface faces into a single region, making it effortless to add precise architectural details such as window frames, façade panels, shadow gaps, and recessed elements. Instantly extrude or recess parts for faster, more intuitive direct modeling.
## Works Across Faces %%New in 9%%
The new ```Group``` option in the Inset command creates a single outer boundary. This simplifies creating recess on a polysurface model.
## Try it
1.
1. Download and open [ inset-multiface](inset-multiface).
1. Run the Inset command.
1. At the `Select faces and ngons` [prompt](https://docs.mcneel.com/rhino/8/help/en-us/user_interface/rhino_window.htm#AppWindow_CommandPrompt), select the 3 magenta surfaces. **Press Enter**.
1. Select the **Mode** option in the prompt. It should read: `Mode=Group`.
1. At the `Inset Distance` prompt, type **10** and **press Enter**.
1. You get a single loop that crosses all three faces!
1. **Try it on your own!** Experiment with your own models.
1. Share comments and feedback on the [Rhino Forum](https://discourse.mcneel.com).
--------------------------------------------------------------------------------
# LAN Zoo License Manager
Source: https://www.rhino3d.com/en/features/administration/zoo/
The LAN Zoo keeps your licenses on your private LAN server and lets you share them among the Rhino users on your network.
[](http://www.rhino3d.com/download/zoo/7/latest)
The LAN Zoo keeps your licenses on your private LAN server and lets you share them among the Rhino users on your network.
The LAN Zoo now supports **Rhino 8**. Learn how to [upgrade your existing LAN Zoo installation](https://wiki.mcneel.com/zoo/zooupgrade).
**[Download the Zoo here...](http://www.rhino3d.com/download/zoo/7/latest)**
## Is the Zoo right for you?
Only if:
* You are using [compatible products](https://wiki.mcneel.com/zoo/products).
* You have more users than licenses.
* You want to manage many licenses in one place.
* You are **not** an individual with multiple computers. [See the license agreement...](https://www.rhino3d.com/7/eula)
If you answered no to any of these questions, then there are [other licensing options](https://wiki.mcneel.com/rhino/install/wizard/start) that may meet your requirements.
## Getting started
### Setting up the LAN Zoo
1. Choose **one** Windows computer on your network to host the Zoo utility.
1. **[Download](http://www.rhino3d.com/download/zoo/7/latest)** and install the Zoo that computer.
1. Make sure **[TCP Port 80](http://wiki.mcneel.com/zoo/window7firewall)** is open in your firewall.
1. Run **ZooAdmin** and **[add your Rhino license keys](https://wiki.mcneel.com/zoo/rhinovalidate)**.
### Setting up Rhino for Windows
1. If Rhino is already installed, run Rhino and click **Rhino → Preferences → Licenses**,
1. Click **Change your license key**.
1. Select **Use LAN Zoo** and then specify the **[name](https://wiki.mcneel.com/zoo/determinezoohost)** of your Zoo server.
1. When installing Rhino, select **Use LAN Zoo** and then specify the **[name](https://wiki.mcneel.com/zoo/determinezoohost)** of your Zoo server.
### Setting up Rhino for Mac
1. If Rhino is already installed, run Rhino and click **Rhino → Preferences → Licenses**,
1. Click **Change your license key**.
1. Select **Use LAN Zoo** and then specify the **[name](http://wiki.mcneel.com/zoo/determinezoohost)** of your Zoo server.
1. When installing Rhino, select **Use LAN Zoo** and then specify the **[name](http://wiki.mcneel.com/zoo/determinezoohost)** of your Zoo server.
## More information and support
* [Features Overview](https://wiki.mcneel.com/zoo/overview)
* [System Requirements](https://wiki.mcneel.com/zoo/requirements)
* [Product Compatibility](https://wiki.mcneel.com/zoo/products)
* [Support Forum](http://discourse.mcneel.com/category/zoo)
## Troubleshooting
* [Diagnostics Utility for Windows](https://wiki.mcneel.com/zoo/diagnostics)
* [Diagnostics Utility for Mac](https://wiki.mcneel.com/zoo/diagnosticsmac)
## Knowledge Base
* [Adding Rhino Licenses to the LAN Zoo](https://wiki.mcneel.com/zoo/rhinovalidate)
* [Brazil 2.0 and the LAN Zoo](https://wiki.mcneel.com/zoo/zoobrazil)
* [Changing the IP Address of a LAN Zoo Server](https://wiki.mcneel.com/zoo/changingserveraddress)
* [Convert a Rhino That Uses the LAN Zoo to a Stand-alone License](https://wiki.mcneel.com/zoo/converttostandalone)
* [Convert a Standalone Rhino to Use the LAN Zoo](https://wiki.mcneel.com/zoo/converttozoo)
* [Flamingo nXt 3.0 and the LAN Zoo](https://wiki.mcneel.com/zoo/zooflamingo)
* [How often does the LAN Zoo check for a Rhino key?](https://wiki.mcneel.com/zoo/checking_for_license)
* [Install the LAN Zoo on Alternate Drive](https://wiki.mcneel.com/zoo/installalternatedrive)
* [Monitoring Licenses Remotely](https://wiki.mcneel.com/zoo/monitorlicenses)
* [Move Rhino Licenses from LAN Zoo to Cloud Zoo](https://wiki.mcneel.com/zoo/to-cloud-zoo)
* [Moving a LAN Zoo Server](https://wiki.mcneel.com/zoo/movezoo)
* [Multiple IP Addresses](https://wiki.mcneel.com/zoo/multipleipaddresses)
* [Open TCP Port 80 in Windows Firewall Using Netsh](https://wiki.mcneel.com/zoo/zoo5netsh)
* [Recovering Misplaced Licenses](https://wiki.mcneel.com/zoo/lostkeys)
* [Rhino and Desktop Virtualization](https://wiki.mcneel.com/zoo/virtualdesktop)
* [Rhino for Mac Managed Distribution](https://wiki.mcneel.com/zoo/rhinomacdeployment)
* [Rhino License Validation: Online and Offline](https://wiki.mcneel.com/zoo/rhinovalidateoffline)
* [Set up the LAN Zoo for All Users](https://wiki.mcneel.com/zoo/zooallusers)
* [Skype Conflicts with LAN Zoo Service](https://wiki.mcneel.com/zoo/zooskype)
* [Upgrading a LAN Zoo Server](https://wiki.mcneel.com/zoo/zooupgrade)
* [Using LAN Zoo with a Proxy Server](https://wiki.mcneel.com/zoo/zooproxyserver)
* [Windows 10 Version 1803 Name Resolution Issue](https://wiki.mcneel.com/zoo/windows101803dns)
* [LAN Zoo Does Not Run On Windows XP](https://wiki.mcneel.com/zoo/zoowinxp)
* [LAN Zoo Fails to Start on Web Servers](https://wiki.mcneel.com/zoo/webserverport80)
* [LAN Zoo for OS X](https://wiki.mcneel.com/zoo/zooosx)
* [LAN Zoo on VMware](https://wiki.mcneel.com/zoo/zoovmware)
* [LAN Zoo Requires Microsoft .NET Framework 4.8](https://wiki.mcneel.com/zoo/zoodotnet)
--------------------------------------------------------------------------------
# Licensing
Source: https://www.rhino3d.com/en/features/administration/licensing/
Choose from three ways to license Rhino: Cloud Zoo, Single-Computer, or Zoo.
There are three ways to assign Rhino licenses:
1. [Cloud Zoo](#cloud-zoo-benefits) - Make your licenses available anywhere in the world through a login.
2. [Single-Computer](#single-computer-licensing) - License Rhino to one single computer.
3. [LAN Zoo](#lan-zoo-licensing) - Float a set of Rhino licenses within your private network.
*[Help me decide...](/features/administration/select-licensing-method/)*
Cloud Zoo is the best way for most people to license Rhino:
_*Educational single-user and Not For Resale single-user licenses cannot be shared._
_*Educational Lab Licenses cannot be assigned to individual computers (new for Rhino 8)._
## Cloud Zoo Benefits

* Cloud Zoo is free to set up and manage through Rhino Accounts.
* For individual users, use your Rhino Accounts login to use Rhino. This means Rhino can be used on any computer.
* For corporations and schools, Cloud Zoo can simplify license distribution. Organizations can create a pool of licenses and share licenses with team members.
* Work online or offline. No need to check out licenses, so you should not be caught out on the road without a license.
* Licensing works without a constant internet connection.
* Let McNeel manage the license server infrastructure.
## Cloud Zoo for Individuals
Use your license on any computer where Rhino is installed.
1. [Create a Rhino account](https://accounts.rhino3d.com/help#create_account)
1. [Add a license to your account](https://www.rhino3d.com/licenses)
1. Start Rhino and login
## Cloud Zoo for Teams
Share a pool of licenses with your team.
### Set Up a Cloud Zoo Team
1. [Create a Rhino account](https://accounts.rhino3d.com/help#create_account)
1. [Create a team in your Rhino account](https://accounts.rhino3d.com/help#create_group)
1. [Add licenses to your team](https://www.rhino3d.com/licenses)
1. Invite members to your team using one of two methods:
* [Invite individual members](https://accounts.rhino3d.com/help#invite_group_members)
* [Link your Team to your Domain](https://accounts.rhino3d.com/help#link_domain)
### Link Your Team to A Domain (optional)
When your team is linked to your domain, any user that logs in from that domain will automatically be added to your team. These users will also automatically have access to your licenses. This eliminates the need to manually invite people to the team.
Domain linked teams support custom authentication providers like Google, Active Directory, Okta, One Login, and more. [Learn how to link your Team to your Domain](https://accounts.rhino3d.com/help#link_domain).
## Cloud Zoo Tasks
### Join A Team
Accept the invitation sent to the email associated with your Rhino account.
-or-
[Create a Rhino account](https://accounts.rhino3d.com/help#create_account) using an email address in the same domain as your domain-linked team.
When Rhino starts, enter the email associated with your Rhino account.
## Single-Computer Licensing
Single-Computer licensing will lock a license directly to a specific computer. You can move a license to a different computer. Simply remove it from the old one and install it on the new one, with no need to contact McNeel & Associates. If you want to share your license across multiple computers, add your license to Cloud Zoo instead.
## LAN Zoo Licensing
[LAN Zoo server software](https://www.rhino3d.com/zoo) is free to download and run on a server in a private network. With the LAN Zoo manage all your licenses centrally from the LAN Zoo server, making them available to anybody on your private network. Access from home or satellite offices requires a VPN connection.
[See the LAN Zoo website for more details....](https://wiki.mcneel.com/zoo/home)
## More Resources
* [Move your license to your account](https://wiki.mcneel.com/rhino/6/changelicensemethod)
* [Remove a license from your account](https://wiki.mcneel.com/rhino_accounts/remove_license)
* [Frequently Asked Licensing Questions](https://wiki.mcneel.com/rhino/faq/licensing)
--------------------------------------------------------------------------------
# Localization and Translation Services
Source: https://www.rhino3d.com/en/mcneel/services/localization/
Do you want to expand your business and sell your plugin to thousands of users around the world? McNeel offers translation and localization services for third-party developers.

## Multiple Languages
Do you want to expand your business and sell your plugin to thousands of users around the world? Rhino is designed to work for users in multiple languages.
Do you want to offer users the chance to run your plugin in the same language as Rhino? Think about translating the user interface and your documentation into multiple languages.

Translating your plugin will help users understand what your program does and make them feel more comfortable using it. Show your product in different languages and open your business to international markets.
Take a look at the [Top 10 Benefits of Developing Globally](https://www.at-it-translator.com/top-10-benefits-of-developing-globally-and-internationalizing-your-products/).

We offer a complete localization service, including software application, help files, web sites, manuals, tutorials, videos, communication campaigns, marketing material, etc.
## Get a Free Quote
Our pricing for localization is project-specific and adapts to your unique requirements.
If you need a quote for your project or if you have any questions, please [**contact us**](mailto:translations@mcneel.com).
## Localization Resources for Developers
### Microsoft
* [Globalization documentation](https://docs.microsoft.com/en-us/globalization/)
* [Localizability guidelines](https://docs.microsoft.com/en-us/globalization/localizability/overview)
* [How to localize .NET Framework applications](https://docs.microsoft.com/en-us/dotnet/standard/globalization-localization/)
* [Using resources for localization with ASP.NET](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization?view=aspnetcore-5.0)
* [Microsoft Windows CE .NET Internationalization](http://msdn.microsoft.com/en-us/library/ms921504)
### Apple
* [Localizing Your App](https://developer.apple.com/documentation/xcode/localizing_your_app?language=objc)
* [About Internationalization and Localization](https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPInternational/Introduction/Introduction.html)
## Request a Quote
* Pricing is project-specific
* Adapted to your requirements
* Send us your files
* [**Get a free quote**](mailto:translations@mcneel.com)
## Languages
* English
* German
* French
* Italian
* Spanish
* Portuguese
* Chinese
* Japanese
* Korean
* Russian
* Not on the list? [**Contact us**](mailto:translations@mcneel.com)
## Services
* Translation
* Localization
* Documentation
* Web sites
* Marketing
* Communication
* Multimedia
## Resources for Developers
* [Microsoft](#microsoft)
* [Apple](#apple)
## Questions
[translations@mcneel.com](mailto:translations@mcneel.com)
--------------------------------------------------------------------------------
# OEM Terms and Conditions
Source: https://www.rhino3d.com/en/mcneel/oem/
Special wholesale prices on our commercial Windows products are available to Original Equipment (product or software) Manufacturers (OEM).
Special wholesale prices on our **commercial Windows** products are available to Original Equipment (product or software) Manufacturers (OEM) that meet these terms and conditions:
* OEMs must sell McNeel products bundled with their products. Full licenses must not be sold alone.
* The OEM bundle's advertised list price must be at **least 150%** of the region's advertised list price of all McNeel products included in the bundle. That is, the McNeel prices that have been established in US dollars in America, Asia, and Pacific, in Euro in Europe, Middle East and Africa, and Yen in Japan.
* Discount schedule:
* Full commercial licenses: **45% discount** on orders of quantity 20 or more and with an annual commitment of 200.
* Commercial licenses: Quantity less than 20 and no annual commitment, [reseller discounts](/reseller) apply.
* Commercial license upgrades: [Reseller discounts](/reseller) apply.
* All orders are prepay via bank card or wire transfer.
* There are no regional restrictions on where OEMs can sell Rhino in their commercial bundle.
* OEM terms and conditions also apply to McNeel educational products, except educational products are only available at the reseller's discount.
## Questions?
Contact:
**United States**
[**Jody MILLS**](mailto:jody@mcneel.com)
[McNeel North America](/mcneel/about/)
(206) 634-4571
**Latin America**
[**Jackie NASSER**](mailto:jackie@mcneel.com)
[McNeel Latin America](/mcneel/about/)
(305) 513-4445
**Europe**, Middle East, and Africa
[**Carlos PÉREZ**](mailto:carlos@mcneel.com)
[McNeel Europe](/mcneel/about/)
ph: +34 93 319 90 02
**Asia Pacific** and Canada
[**Wendy HEMMELMAN**](mailto:wendy@mcneel.com)
[McNeel Asia](/mcneel/about/)
ph: +1 (206) 634-4585
--------------------------------------------------------------------------------
# Penguin End of Life
Source: https://www.rhino3d.com/en/discontinued-products/penguin/
On Sep 23, 2023, Penguin was discontinued.
Sep 23, 2023
Penguin has been discontinued.
Rhino 8 includes many modern advances such as: