...
// Рекурсивно ищу поля и вывожу на консоль информацию о них
if (attRef.HasFields) {
Db.ObjectId fieldId = attRef.GetField();
Db.Field field = tr.GetObject(fieldId, Db.OpenMode.ForRead) as Db.Field;
Db.Field[] fields = field.GetChildren();
PrintFields(ed, fields);
}
...
private static void PrintFields(Ed.Editor ed, Db.Field[] fields) {
foreach (Db.Field childField in fields) {
String code = childField.GetFieldCode(
Db.FieldCodeFlags.AddMarkers | Db.FieldCodeFlags.FieldCode);
String value = childField.GetStringValue();
ed.WriteMessage("Code: {0}\nValue: {1}\n",code, value);
if (childField.HasFields) PrintFields(ed, childField.GetChildren());
}
}