OpenRoads Designer CONNECT Edition SDK Help

Create new display style and apply to view

The below code snippet shows how to create a new display style in DGN and apply it to view/views.
//Required References
using System;
using System.Diagnostics;
using Bentley.DgnPlatformNET;
using Bentley.MstnPlatformNET;
using Bentley.CifNET.Objects.Presentation;

 public void CreateNewDisplayStyleAndApplyToView()
        {
            try
            {
                //Get active DGN file
                DgnFile activeDgnFile = Session.Instance.GetActiveDgnFile();

                //Display style name
                string displayStyleName = "Thematic:Height";

                //CReate new Display Style
                DisplayStyle displayStyle = new DisplayStyle(activeDgnFile, displayStyleName);
                int index = displayStyle.Index;
                displayStyle.IsUsableForViews = true;
                displayStyle.DisplayMode = Bentley.DgnPlatformNET.MSRenderMode.SmoothShade;
                displayStyle.EnvironmentTypeDisplayed = Bentley.DgnPlatformNET.EnvironmentDisplay.Color;

                //Set display style flags
                Bentley.DgnPlatformNET.DisplayStyleFlags displayStyleFlags = displayStyle.GetFlags();
                displayStyleFlags.ApplyEdgeStyleToLines = false;
                displayStyleFlags.DisplayHiddenEdges = false;
                displayStyleFlags.DisplayShadows = false;
                displayStyleFlags.DisplayVisibleEdges = false;
                displayStyleFlags.OverrideBackgroundColor = false;
                displayStyleFlags.LegacyDrawOrder = false;
                displayStyleFlags.HiddenEdgeLineStyle = false;
                displayStyle.SetFlags(displayStyleFlags);

                //Set view display overrides
                Bentley.DgnPlatformNET.ViewDisplayOverrides viewDisplayOverrides = displayStyle.GetOverrides();
                viewDisplayOverrides.OverrideElementColor = false;
                viewDisplayOverrides.OverrideElementLineStyle = false;
                viewDisplayOverrides.OverrideElementWeight = false;
                viewDisplayOverrides.OverrideVisibleEdgeColor = false;
                viewDisplayOverrides.OverrideVisibleEdgeLineStyle = false;
                displayStyle.SetOverrides(viewDisplayOverrides, activeDgnFile);

                //Write new display style to file.
                Bentley.DgnPlatformNET.DisplayStyleManager.WriteDisplayStyleToFile(displayStyle, activeDgnFile);

                bool isExists = Bentley.DgnPlatformNET.DisplayStyleManager.DoesDisplayStyleExistInFile(displayStyleName, activeDgnFile);

                //Get active view group and get first view i.e."Default"
                ViewGroup viewGroup = activeDgnFile.GetViewGroups().GetActive();
                if (viewGroup == null) return;
                ViewInformation viewInformation = viewGroup.GetViewInformation(0);
                if (viewInformation == null) return;

                //Apply newly created display style to view 
                BentleyStatus status = Bentley.DgnPlatformNET.DisplayStyleManager.ApplyDisplayStyleToView(displayStyle, viewInformation);

                //Refresh the view
                Bentley.CifNET.Objects.Presentation.IViewManager viewManager = Bentley.CifNET.ServiceManager.Instance.GetService<IViewManager>();
                viewManager.RefreshView(0);
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.Message);
            }
        }

Output

The below image shows the terrain with the newly created and assigned display style.