Select Objects on Layer
Demonstrates how to select all the objects on a user-specified layer.
partial class Examples
{
public static Rhino.Commands.Result SelLayer(Rhino.RhinoDoc doc)
{
// Prompt for a layer name
string layername = doc.Layers.CurrentLayer.Name;
Result rc = Rhino.Input.RhinoGet.GetString("Name of layer to select objects", true, ref layername);
if (rc != Rhino.Commands.Result.Success)
return rc;
// Get all of the objects on the layer. If layername is bogus, you will
// just get an empty list back
Rhino.DocObjects.RhinoObject[] rhobjs = doc.Objects.FindByLayer(layername);
if (rhobjs == null || rhobjs.Length < 1)
return Rhino.Commands.Result.Cancel;
for (int i = 0; i < rhobjs.Length; i++)
rhobjs[i].Select(true);
doc.Views.Redraw();
return Rhino.Commands.Result.Success;
}
}
import Rhino
import scriptcontext
import System.Guid, System.Drawing.Color
def SelLayer():
# Prompt for a layer name
layername = scriptcontext.doc.Layers.CurrentLayer.Name
rc, layername = Rhino.Input.RhinoGet.GetString("Name of layer to select objects", True, layername)
if rc!=Rhino.Commands.Result.Success: return rc
# Get all of the objects on the layer. If layername is bogus, you will
# just get an empty list back
rhobjs = scriptcontext.doc.Objects.FindByLayer(layername)
if not rhobjs: Rhino.Commands.Result.Cancel
for obj in rhobjs: obj.Select(True)
scriptcontext.doc.Views.Redraw()
return Rhino.Commands.Result.Success
if __name__=="__main__":
SelLayer()
