Semi-transparent Selection with Halo

Starting from Eyeshot 2022.2 it is possible to draw dynamically selected entities with a halo effect.

Starting from Eyeshot 2023 it is possible to draw both static and dynamic selection entities with a halo effect.

All the relevant settings are grouped under the property Workspace.Selection. The new SelectionSettings class contains all the properties related to the appearance of selected entities.

To enable the halo effect:

  • For dynamic selection, set Workspace.Selection.ColorDynamic to a transparent color (ColorDynamic.A < 255).
  • For static selection, set Workspace.Selection.Color to a transparent color.


Halo Color

Selected entities are drawn with a halo surrounding them. This halo could be single-colored or multi-colored.

The following parameters determine the color of the halo effect:

  • Workspace.Selection.HaloInnerColor  / HaloInnerColorDynamic
  • Workspace.Selection.HaloOuterColor / HaloOuterColorDynamic



Halo Width

The width of the halo effect is determined by the following properties:

  • Workspace.Selection.HaloWidthPolygons 
  • Workspace.Selection.HaloWidthWires.

The first determines the halo width for polygonal entities while the second is the values used for wireframe entities and Brep.Edges.

It is also possible for derived classes that inherit from Entity to override the property Entity.HaloMode to specify the halo thickness for the custom entity if the default implementation is not suitable. 



The following examples show the results you can achieve with the halo effect feature.



design1.Selection.ColorDynamic = Color.FromArgb(80, Color.OrangeRed);
design1.Selection.HaloInnerColor = Color.FromArgb(255, Color.OrangeRed);
design1.Selection.HaloOuterColor = Color.FromArgb(64, Color.OrangeRed);
design1.Selection.HaloWidthPolygons = 4;
design1.Selection.HaloWidthWires = 2;




design1.Selection.ColorDynamic = Color.FromArgb(80, Color.DodgerBlue);
design1.Selection.HaloInnerColor = Color.FromArgb(200, Color.Cyan);
design1.Selection.HaloOuterColor = Color.FromArgb(60, Color.DodgerBlue);
design1.Selection.HaloWidthPolygons = 4;
design1.Selection.HaloWidthWires = 2;


Multicolor No Fill


design1.Selection.ColorDynamic = Color.Empty;
design1.Selection.HaloInnerColor = Color.FromArgb(255, Color.White);
design1.Selection.HaloOuterColor = Color.FromArgb(64, Color.Gold);
design1.Selection.HaloWidthPolygons = 4;
design1.Selection.HaloWidthWires = 2;

  Advanced graphics

This feature requires advanced graphics capabilities. Ensure you meet the minimum requirements listed below:

  • Shaders must be available and enabled.
  • OpenGL render context version should be at least 3.0
  • Direct3D render context feature level should be at least 11_0
Was this article helpful?
4 out of 4 found this helpful


Date Votes
  • ActionMode = actionType.SelectVisibleByPickDynamic; 

    haloColor is SelectVisibleByPickDynamic Only ?

  • Yes, the semi-transparent highlight and the halo effect are available only for Dynamic Selection in version 2022.2.

    However, we are already working on implementing the same effect for static selection too.

  • Any chance of static selection is available in 2022.3 ?


  • The same effect for static selection will be available in version 2023.

  • Dynamic selection is a great feature, but I found I cannot select Edge in Solid or Mesh. Even if I set the `Design.AssemblySelectionMode` property to `assemblySelectionType.Leaf`. Is there any method to select Edge in Solid or Mesh?

  • Edge selection is only supported for Brep entities. Please open a ticket if you need help implementing edge selection for Solid/Mesh entities. 

  • Are there any plans to adress this (vertex/edge selection) in 2023? As there have been many improvements on selection, one is daring to be hopeful, that this limitation might soon be a thing of the past...


Please sign in to leave a comment.

Articles in this section