Change Dimension Style

Demonstrates how to change the dimension style on all objects in a Rhino document.

partial class Examples
{
  public static Result ChangeDimensionStyle(RhinoDoc doc)
  {
    foreach (var rhino_object in doc.Objects.GetObjectList(ObjectType.Annotation))
    {
      var annotation_object = rhino_object as AnnotationObjectBase;
      if (annotation_object == null) continue;

      var annotation = annotation_object.Geometry as AnnotationBase;
      if (annotation == null) continue;

      if (annotation.Index == doc.DimStyles.CurrentDimensionStyleIndex) continue;

      annotation.Index = doc.DimStyles.CurrentDimensionStyleIndex;
      annotation_object.CommitChanges();
    }

    doc.Views.Redraw();

    return Result.Success;
  }
}
Partial Friend Class Examples
  Public Shared Function ChangeDimensionStyle(ByVal doc As RhinoDoc) As Result
	For Each rhino_object In doc.Objects.GetObjectList(ObjectType.Annotation)
	  Dim annotation_object = TryCast(rhino_object, AnnotationObjectBase)
	  If annotation_object Is Nothing Then
		  Continue For
	  End If

	  Dim annotation = TryCast(annotation_object.Geometry, AnnotationBase)
	  If annotation Is Nothing Then
		  Continue For
	  End If

	  If annotation.Index = doc.DimStyles.CurrentDimensionStyleIndex Then
		  Continue For
	  End If

	  annotation.Index = doc.DimStyles.CurrentDimensionStyleIndex
	  annotation_object.CommitChanges()
	Next rhino_object

	doc.Views.Redraw()

	Return Result.Success
  End Function
End Class
from Rhino import *
from Rhino.DocObjects import *
from Rhino.Commands import *
from Rhino.Geometry import *
from scriptcontext import doc

def RunCommand():
    for annotation_object in doc.Objects.GetObjectList(ObjectType.Annotation):
        if not isinstance (annotation_object, AnnotationObjectBase):
            continue

        annotation = annotation_object.Geometry

        if annotation.Index == doc.DimStyles.CurrentDimensionStyleIndex:
            continue

        annotation.Index = doc.DimStyles.CurrentDimensionStyleIndex
        annotation_object.CommitChanges()

    doc.Views.Redraw()
    return Result.Success

if __name__ == "__main__":
    RunCommand()