Dynamic Display Mode Attributes Rhino / GH

hex-grids_dif_widths_dsI dug out an old C# code snippet to change the display widths of curves in the Rhino viewport, by dynamically altering the visual style attributes.

It was an answer for a question on the Grasshopper3d forum (see the thread here), so I thought of tidying up the code and posting it here (probably just to convince myself that I still have the time to be posting things).

Not much to say, just change how your curves look in the rhino viewport through Grasshopper. I am sure that someone might find it useful.

Code in Python below and the file as usual at the [Sub]Code page.

d_disp_snap01_DS

#[Dynamic Display Attributes] was written by Marios Tsiliakos on 21 / 06 / 2015 in grasshopper 0.9.0076
#This definition is for the pubic domain feel free to use it , share it and modify it, by providing proper citing.
#The author, Marios Tsiliakos of digitalsubstance.wordpress.com , makes no warranty, expressed or implied,
#as to the usefulness of the software and documentation for any purpose.If this tool is used for commercial purposes please notify the author.
#This work is licensed under a Creative Commons Attribution-Share Alike 3.0
#for more information visit www.digitalsubstance.wordpress.com.

import Rhino.Display as rd

# create some empty arrays
display_modes  = []
display_modes_names  = []
#retrieve the list of Display modes on the document
display_modes =  rd.DisplayModeDescription.GetDisplayModes()
#find out their names
for i in range(len(display_modes)):
    display_modes_names.append(display_modes[i].EnglishName)

#pick the display style that you want
for j in range(len(display_modes)):
    if display_modes_names[j] == mode:
        disp_index = j
    else:
        continue
selected_mode = display_modes[disp_index]

if execute == True:
    selected_mode.DisplayAttributes.CurveThickness = width
    rd.DisplayModeDescription.UpdateDisplayMode(selected_mode)
    print("Changed the display option settings for visual style :  " + y)
else:
    selected_mode.DisplayAttributes.CurveThickness = 1
    rd.DisplayModeDescription.UpdateDisplayMode(selected_mode)
    print(y+ " Display style reset to default settings")

Leave a comment