Click or drag to resize

HatchPatternIndex Property

Gets or sets the index of the pattern in the document hatch pattern table.

Namespace:  Rhino.Geometry
Assembly:  RhinoCommon (in RhinoCommon.dll)
public int PatternIndex { get; set; }

Property Value

Type: Int32
using Rhino;
using Rhino.DocObjects;
using Rhino.Commands;
using Rhino.Input;
using Rhino.Input.Custom;

namespace examples_cs
  public class ReplaceHatchPatternCommand : Rhino.Commands.Command
    public override string EnglishName
      get { return "csReplaceHatchPattern"; }

    protected override Result RunCommand(RhinoDoc doc, RunMode mode)
      ObjRef[] obj_refs;
      var rc = RhinoGet.GetMultipleObjects("Select hatches to replace", false, ObjectType.Hatch, out obj_refs);
      if (rc != Result.Success || obj_refs == null)
        return rc;

      var gs = new GetString();
      gs.SetCommandPrompt("Name of replacement hatch pattern");
      if (gs.CommandResult() != Result.Success)
        return gs.CommandResult();
      var hatch_name = gs.StringResult();

      var pattern_index = doc.HatchPatterns.Find(hatch_name, true);

      if (pattern_index < 0)
        RhinoApp.WriteLine("The hatch pattern \"{0}\" not found  in the document.", hatch_name);
        return Result.Nothing;

      foreach (var obj_ref in obj_refs)
        var hatch_object = obj_ref.Object() as HatchObject;
        if (hatch_object.HatchGeometry.PatternIndex != pattern_index)
          hatch_object.HatchGeometry.PatternIndex = pattern_index;
      return Result.Success;
from Rhino import *
from Rhino.DocObjects import *
from Rhino.Commands import *
from Rhino.Input import *
from Rhino.Input.Custom import *
from scriptcontext import doc

def RunCommand():
  rc, obj_refs = RhinoGet.GetMultipleObjects("Select hatches to replace", False, ObjectType.Hatch)
  if rc <> Result.Success or obj_refs == None:
    return rc

  gs = GetString()
  gs.SetCommandPrompt("Name of replacement hatch pattern")
  if gs.CommandResult() <> Result.Success:
    return gs.CommandResult()
  hatch_name = gs.StringResult()

  pattern_index = doc.HatchPatterns.Find(hatch_name, True)

  if pattern_index < 0:
    RhinoApp.WriteLine("The hatch pattern \"{0}\" not found  in the document.", hatch_name)
    return Result.Nothing

  for obj_ref in obj_refs:
    hatch_object = obj_ref.Object()
    if hatch_object.HatchGeometry.PatternIndex <> pattern_index:
      hatch_object.HatchGeometry.PatternIndex = pattern_index

  return Result.Success

if __name__ == "__main__":
Version Information

Rhino for Mac

Supported in: 5.4

Rhino for Windows

Supported in: 6.6
See Also