# RenderMeshProvider class

Namespace: [Rhino.Render.CustomRenderMeshes](https://developer.rhino3d.com/api/rhinocommon/namespace/rhino.render.customrendermeshes.md) · Assembly: [RhinoCommon](https://developer.rhino3d.com/api/rhinocommon/assembly/rhinocommon.md)

```cs
public abstract class RenderMeshProvider : IDisposable
```

A RenderMeshProvider delivers custom render primitives (in the form of RenderMeshes). Derive a public class from this with a public constructor, and this primitive provider will be added to the RDK forming a collection of providers. Each RenderMeshProvider::HasCustomRenderMeshes will be called and if it returns true, a call to RenderMeshes will be made. It is up to the provider to cache its own primitives - the IRenderMeshes::ProviderTracking class is provided for that. A provider may optionally return a collection of non-object Ids that it will provide custom render primitives for. An example of this is Grasshopper, which which will typically return a collection of the Ids of each CustomPreview component. Override this class if you are a plug-in developer intending to supply a custom set of primitives for a given object, or objectId. Examples of IRenderMeshProviders are CurvePiping, EdgeSoftening, Displacement, Shutlining, Grasshopper's CustomPreview component.

## Finalizer

- [~RenderMeshProvider](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.customrendermeshes.rendermeshprovider/finalize.md): Finalizer to ensure correctly implemented dispose pattern.

## Fields

- [m_disposed](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.customrendermeshes.rendermeshprovider/m-disposed.md): m_disposed available for sub-classes to check.

## Properties

- [Name](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.customrendermeshes.rendermeshprovider/name.md): The localized name of the provider for UI display.
- [NonObjectIds](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.customrendermeshes.rendermeshprovider/nonobjectids.md): A provider may optionally return a collection of non-object Ids that it will provide custom render primitives for. An example of this is Grasshopper, which which will typically return a collection of the Ids of each CustomPreview component.
- [ProviderId](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.customrendermeshes.rendermeshprovider/providerid.md): The localized name of the provider for UI display.

## Methods

- [Dispose](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.customrendermeshes.rendermeshprovider/dispose.md): (2 overloads) Dispose method
- [GetParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.customrendermeshes.rendermeshprovider/getparameter.md): Runtime access to specific parameters on for a given objectId relating to this primitive provider.
- [HasCustomRenderMeshes](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.customrendermeshes.rendermeshprovider/hascustomrendermeshes.md): Determine if custom render primitives will be supplied for a particular object.
- [Progress](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.customrendermeshes.rendermeshprovider/progress.md): Provides details on the progress of custom render meshes for a document or collection of objects
- [ProgressForAll](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.customrendermeshes.rendermeshprovider/progressforall.md): (static) Returns a complete list of progress reports for all providers for either the document or a collection of objects
- [RegisterProvider](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.customrendermeshes.rendermeshprovider/registerprovider.md): (static) Register RenderMeshProvider without relying on the auto-plug-in registration.
- [RegisterProviders](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.customrendermeshes.rendermeshprovider/registerproviders.md): (2 overloads, static) Register RenderMeshProviders without relying on the auto-plug-in registration
- [RenderMeshes](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.customrendermeshes.rendermeshprovider/rendermeshes.md): Returns a complete set of custom render primitives for a given ObjectId.
- [SetParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.render.customrendermeshes.rendermeshprovider/setparameter.md)
