# Grasshopper2.Display namespace

Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

## Enums

- [ArgumentType](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.argumenttype.md)
- [ArrowStyle](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.arrowstyle.md)
- [CurveKind](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.curvekind.md): Enumerates the possible curve kinds
- [Dashes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.dashes.md)
- [FaceKind](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.facekind.md): Enumerates the possible curve kinds
- [RuleCommand](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.rulecommand.md): Enumerates all possible display rule commands.
- [Stripe](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.stripe.md): Shaded hatch styling.
- [Symbol](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.symbol.md): A subset of [PointStyle](https://mcneel-apidocs-rhinocommon-7f6eb10c6967.herokuapp.com/api/rhinocommon/type/rhino.display.pointstyle/) enum with native support on Grasshopper.

## Classes

- [Dash8](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.dash8.md): Represents a curve dash pattern to be used in rhino viewport display. Due to implementation details in [DisplayPen](https://mcneel-apidocs-rhinocommon-7f6eb10c6967.herokuapp.com/api/rhinocommon/type/rhino.display.displaypen/) this struct accepts at most 8 dash-gap-dash-gap values.
- [Defaults](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.defaults.md)
- [DisplayBag](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.displaybag.md): A growing collection of display shapes. Bags are used to collect display geometry. Once full, a bag emits a [DisplayCache](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.displaycache.md) object which contains the minimum amount of necessary data needed to draw shapes. Bags are mutable, caches are immutable.
- [DisplayCache](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.displaycache.md): An immutable collection of display shapes.
- [DisplayCurve](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.displaycurve.md): A display curve with optional overrides.
- [DisplayRule](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.displayrule.md): A single display rule to override the existing display settings.
- [DisplayRuleEditor](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.displayruleeditor.md): A window for editing the display rules part of a document.
- [DisplayRules](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.displayrules.md): A collection of [DisplayRule](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.displayrule.md) where later rules override earlier ones.
- [DisplayWidget](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.displaywidget.md): A scale invariant viewport widget made up of several curves.
- [GridPlane3d](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.gridplane3d.md): Represents an orthogonal grid with custom domain and codomain intervals.
- [Guise](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.guise.md): A collection of properties used for displaying shapes in the Rhino viewports.
- [GuiseCurve](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.guisecurve.md): Display properties for curve geometry.
- [GuiseFacet](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.guisefacet.md): Display properties for face geometry.
- [GuisePlane](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.guiseplane.md): Display properties for plane geometry.
- [GuisePoint](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.guisepoint.md): Display properties for point symbols.
- [Guises](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.guises.md): A set of related [Guise](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.guise.md) states for use in both standard and selected drawing.
- [RuleArgument](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.ruleargument.md): Rule argument. Used for instructions like [RuleCommand.Tint](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.rulecommand.md) to specify *what* colour ought to be assigned. Arguments are sometimes optional and sometimes not even allowed (for example with [RuleCommand.Show](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.rulecommand.md) instructions). In rule notation, arguments are always written last, following a " -> " substring.
- [RuleFilter](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.rulefilter.md): A selector pattern for applying rules to specific values.
- [TestDisplaySettings](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.testdisplaysettings.md)
- [TestWireframe](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.testwireframe.md)

## Structs

- [DisplayField](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.displayfield.md): A display field.
- [DisplayMesh](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.displaymesh.md): Per-mesh display recipe: the user-authored inputs needed to draw a single mesh. Pipeline position: DisplayBag (mutable) collects these during a solve; DisplayCache (immutable) snapshots them when the solve commits; MeshDisplayCache resolves them per frame into CachedDrawItems for GPU submission. DisplayMesh vs CachedDrawItem: DisplayMesh carries the inputs, raw user overrides (colour, glow, style, meta). CachedDrawItem carries the resolved per-frame output (ShadedDisplaySettings for C, RuntimeFaceGuise for B, plus GPU bookkeeping) and gets rebuilt when caches go stale. They're separate because resolving depends on things that aren't intrinsic to the mesh: the active Guises preset, selection state, expiration fade factor, and the MeshDisplayCache.UseNewShader rollout gate. Those vary at different cadences than the recipe; keeping the stages separate lets us cache the cheap inputs (this struct plus ShaderMetaOverrides) while regenerating the resolved state only when the external inputs change. Do NOT try to collapse DisplayMesh into CachedDrawItem (this has been attempted repeatedly). It is tempting once ApplyMeta leaves the hot loop, on the grounds that resolution becomes cheap — but cost was never the blocker. The two sit at opposite ends of the resolve step and have incompatible lifetimes: DisplayMesh is a resolution-FREE recipe, exactly one per source mesh, owned by the immutable per-object cache and stable across frames; CachedDrawItem is the resolution-BAKED output (guise/selection/fade/ shader-path applied), regenerated every static-list rebuild, possibly many per source mesh, owned by the shared static list and kept in sorted order. The same DisplayMesh feeds multiple viewports, frames and fade states, so it cannot carry per-frame resolved state. Merging them would force one struct to hold both a stable cross-frame recipe and volatile per-frame output — two lifetimes in one box. Keep them separate.
- [DisplayPlane](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.displayplane.md): A display plane with optional overrides.
- [DisplayText](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.displaytext.md): A display text with optional overrides.
- [DisplayVector](https://developer.rhino3d.com/api/gh2/type/grasshopper2.display.displayvector.md): A display vector with optional overrides.
