RhinoCommon API
RhinoDocInstanceDefinitions Property |
[Missing <summary> documentation for "P:Rhino.RhinoDoc.InstanceDefinitions"]
Namespace: Rhino
Assembly: RhinoCommon (in RhinoCommon.dll)

public InstanceDefinitionTable InstanceDefinitions { get; }
Public ReadOnly Property InstanceDefinitions As InstanceDefinitionTable Get
Property Value
Type: InstanceDefinitionTable
using Rhino; using Rhino.DocObjects; using Rhino.FileIO; using Rhino.Commands; namespace examples_cs { public class InstanceDefinitionTreeCommand : Command { public override string EnglishName { get { return "csInstanceDefinitionTree"; } } protected override Result RunCommand(RhinoDoc doc, RunMode mode) { var instance_definitions = doc.InstanceDefinitions; var instance_definition_count = instance_definitions.Count; if (instance_definition_count == 0) { RhinoApp.WriteLine("Document contains no instance definitions."); return Result.Nothing; } var dump = new TextLog(); dump.IndentSize = 4; for (int i = 0; i < instance_definition_count; i++) DumpInstanceDefinition(instance_definitions[i], ref dump, true); RhinoApp.WriteLine(dump.ToString()); return Result.Success; } private void DumpInstanceDefinition(InstanceDefinition instanceDefinition, ref TextLog dump, bool isRoot) { if (instanceDefinition != null && !instanceDefinition.IsDeleted) { string node = isRoot ? "─" : "└"; dump.Print(string.Format("{0} Instance definition {1} = {2}\n", node, instanceDefinition.Index, instanceDefinition.Name)); if (instanceDefinition.ObjectCount > 0) { dump.PushIndent(); for (int i = 0; i < instanceDefinition.ObjectCount ; i++) { var obj = instanceDefinition.Object(i); if (obj == null) continue; if (obj is InstanceObject) DumpInstanceDefinition((obj as InstanceObject).InstanceDefinition, ref dump, false); // Recursive... else dump.Print("\u2514 Object {0} = {1}\n", i, obj.ShortDescription(false)); } dump.PopIndent(); } } } } }
Imports Rhino Imports Rhino.DocObjects Imports Rhino.FileIO Imports Rhino.Commands Namespace examples_vb Public Class InstanceDefinitionTreeCommand Inherits Command Public Overrides ReadOnly Property EnglishName() As String Get Return "vbInstanceDefinitionTree" End Get End Property Protected Overrides Function RunCommand(doc As RhinoDoc, mode As RunMode) As Result Dim instanceDefinitions = doc.InstanceDefinitions Dim instanceDefinitionCount = instanceDefinitions.Count If instanceDefinitionCount = 0 Then RhinoApp.WriteLine("Document contains no instance definitions.") Return Result.[Nothing] End If Dim dump = New TextLog() dump.IndentSize = 4 For i As Integer = 0 To instanceDefinitionCount - 1 DumpInstanceDefinition(instanceDefinitions(i), dump, True) Next RhinoApp.WriteLine(dump.ToString()) Return Result.Success End Function Private Sub DumpInstanceDefinition(instanceDefinition As InstanceDefinition, ByRef dump As TextLog, isRoot As Boolean) If instanceDefinition IsNot Nothing AndAlso Not instanceDefinition.IsDeleted Then Dim node As String If isRoot Then node = "─" Else '"\u2500"; node = "└" End If '"\u2514"; dump.Print(String.Format("{0} Instance definition {1} = {2}" & vbLf, node, instanceDefinition.Index, instanceDefinition.Name)) If instanceDefinition.ObjectCount > 0 Then dump.PushIndent() For i As Integer = 0 To instanceDefinition.ObjectCount - 1 Dim obj = instanceDefinition.[Object](i) If obj Is Nothing Then Continue For If TypeOf obj Is InstanceObject Then DumpInstanceDefinition(TryCast(obj, InstanceObject).InstanceDefinition, dump, False) Else ' Recursive... dump.Print(String.Format("└ Object {0} = {1}" & vbLf, i, obj.ShortDescription(False))) End If Next dump.PopIndent() End If End If End Sub End Class End Namespace
Python
from scriptcontext import doc import Rhino def RunCommand(): instanceDefinitions = doc.InstanceDefinitions instanceDefinitionCount = instanceDefinitions.Count if instanceDefinitionCount == 0: print "Document contains no instance definitions." return dump = Rhino.FileIO.TextLog() dump.IndentSize = 4 for i in range(0, instanceDefinitionCount): DumpInstanceDefinition(instanceDefinitions[i], dump, True) print dump.ToString() def DumpInstanceDefinition(instanceDefinition, dump, isRoot): if instanceDefinition != None and not instanceDefinition.IsDeleted: if isRoot: node = '-' else: node = '+' dump.Print(u"{0} Instance definition {1} = {2}\n".format(node, instanceDefinition.Index, instanceDefinition.Name)) if instanceDefinition.ObjectCount > 0: dump.PushIndent() for i in range(0, instanceDefinition.ObjectCount): obj = instanceDefinition.Object(i) if obj != None and type(obj) == Rhino.DocObjects.InstanceObject: DumpInstanceDefinition(obj.InstanceDefinition, dump, False) # Recursive... else: dump.Print(u"+ Object {0} = {1}\n".format(i, obj.ShortDescription(False))) dump.PopIndent() if __name__ == "__main__": RunCommand()

Rhino for Mac
Supported in: 5.4Rhino for Windows
Supported in: 6.14