RhinoCommon API
LayerTableCurrentLayerIndex Property |
At all times, there is a "current" layer. Unless otherwise specified, new objects
are assigned to the current layer. The current layer is never locked, hidden, or deleted.
Returns: Zero based layer table index of the current layer.
Namespace: Rhino.DocObjects.Tables
Assembly: RhinoCommon (in RhinoCommon.dll)
Since: 5.0


using Rhino; using Rhino.Commands; using Rhino.DocObjects; namespace examples_cs { public class MoveSelectedObjectsToCurrentLayerCommand : Command { public override string EnglishName { get { return "csMoveSelectedObjectsToCurrentLayer"; } } protected override Result RunCommand(RhinoDoc doc, RunMode mode) { // all non-light objects that are selected var object_enumerator_settings = new ObjectEnumeratorSettings(); object_enumerator_settings.IncludeLights = false; object_enumerator_settings.IncludeGrips = true; object_enumerator_settings.NormalObjects = true; object_enumerator_settings.LockedObjects = true; object_enumerator_settings.HiddenObjects = true; object_enumerator_settings.ReferenceObjects = true; object_enumerator_settings.SelectedObjectsFilter = true; var selected_objects = doc.Objects.GetObjectList(object_enumerator_settings); var current_layer_index = doc.Layers.CurrentLayerIndex; foreach (var selected_object in selected_objects) { selected_object.Attributes.LayerIndex = current_layer_index; selected_object.CommitChanges(); } doc.Views.Redraw(); return Result.Success; } } }
Imports Rhino Imports Rhino.Commands Imports Rhino.DocObjects Namespace examples_vb Public Class MoveSelectedObjectsToCurrentLayerCommand Inherits Command Public Overrides ReadOnly Property EnglishName() As String Get Return "vbMoveSelectedObjectsToCurrentLayer" End Get End Property Protected Overrides Function RunCommand(doc As RhinoDoc, mode As RunMode) As Result ' all non-light objects that are selected Dim object_enumerator_settings = New ObjectEnumeratorSettings() object_enumerator_settings.IncludeLights = False object_enumerator_settings.IncludeGrips = True object_enumerator_settings.NormalObjects = True object_enumerator_settings.LockedObjects = True object_enumerator_settings.HiddenObjects = True object_enumerator_settings.ReferenceObjects = True object_enumerator_settings.SelectedObjectsFilter = True Dim selected_objects = doc.Objects.GetObjectList(object_enumerator_settings) Dim current_layer_index = doc.Layers.CurrentLayerIndex For Each selected_object As RhinoObject In selected_objects selected_object.Attributes.LayerIndex = current_layer_index selected_object.CommitChanges() Next doc.Views.Redraw() Return Result.Success End Function End Class End Namespace
Python
from Rhino import * from Rhino.Commands import * from Rhino.DocObjects import * from scriptcontext import doc def RunCommand(): # all non-light objects that are selected object_enumerator_settings = ObjectEnumeratorSettings() object_enumerator_settings.IncludeLights = False object_enumerator_settings.IncludeGrips = True object_enumerator_settings.NormalObjects = True object_enumerator_settings.LockedObjects = True object_enumerator_settings.HiddenObjects = True object_enumerator_settings.ReferenceObjects = True object_enumerator_settings.SelectedObjectsFilter = True selected_objects = doc.Objects.GetObjectList(object_enumerator_settings) current_layer_index = doc.Layers.CurrentLayerIndex for selected_object in selected_objects: selected_object.Attributes.LayerIndex = current_layer_index selected_object.CommitChanges() doc.Views.Redraw() return Result.Success if __name__ == "__main__": RunCommand()
