Custom Get ObjectType filter

When using the Rhino.Input.Custom.GetObject class, is there a way to set the filter to PolyCurve? I don’t see it in Rhino.DocObjects.ObjectType.

Hi @Mike24,

Use a custom geometry filter function.

import Rhino
import scriptcontext as sc

def __polycurve_filter(rhObject, geometry, componentIndex):
    return isinstance(geometry, Rhino.Geometry.PolyCurve)

def test_get_polycurve():
    go = Rhino.Input.Custom.GetObject()
    go.SetCommandPrompt("Select polycurve")
    go.SetCustomGeometryFilter(__polycurve_filter)
    go.Get()
    if go.CommandResult() != Rhino.Commands.Result.Success:
        return
    
    crv = go.Object(0).Curve()
    if not crv:
        return;
    
    print("PolyCurve domain: {0}".format(crv.Domain))
    for i in range(0, crv.SegmentCount):
        seg = crv.SegmentCurve(i)
        if seg:
            print("  Segment {0} domain: {1}".format(i, seg.Domain))
    
if __name__ == "__main__":
    test_get_polycurve()

– Dale

@dale - Perfect. Thanks!