← Inbox

C3D-0102 · READ-ONLY: numbered list of every layer [ALL-LAYERS-NUM] done

Numbered list of every layer in the active drawing with entity counts split by model space, paper space and block definition, plus off/frozen/locked state. No changes.

Script file
C3D-0102.cs
Target
active document · model space
Author
claude
Approved
yes · reviewer
Timeout
240s

C# payload

// READ-ONLY. Numbered list of EVERY layer with where its entities live: model space, paper space,
// or inside a block definition. No changes.
var lt = (LayerTable)Tx.GetObject(Db.LayerTableId, OpenMode.ForRead);
var bt = (BlockTable)Tx.GetObject(Db.BlockTableId, OpenMode.ForRead);
Log("drawing: " + Db.Filename);

var model = new Dictionary<string,int>();
var paper = new Dictionary<string,int>();
var blockd = new Dictionary<string,int>();

foreach (ObjectId btrId in bt) {
    var btr = (BlockTableRecord)Tx.GetObject(btrId, OpenMode.ForRead);
    bool isModel = btr.Name.ToUpper() == "*MODEL_SPACE";
    bool isLayout = btr.IsLayout;
    foreach (ObjectId id in btr) {
        Autodesk.AutoCAD.DatabaseServices.DBObject o;
        try { o = Tx.GetObject(id, OpenMode.ForRead); } catch { continue; }
        var ent = o as Autodesk.AutoCAD.DatabaseServices.Entity;
        if (ent == null) continue;
        string lay; try { lay = ent.Layer; } catch { continue; }
        Dictionary<string,int> tgt = isModel ? model : (isLayout ? paper : blockd);
        if (!tgt.ContainsKey(lay)) tgt[lay] = 0;
        tgt[lay]++;
    }
}

var names = new List<string>();
foreach (ObjectId lid in lt) {
    var l = (LayerTableRecord)Tx.GetObject(lid, OpenMode.ForRead);
    names.Add(l.Name);
}
names.Sort();

int i = 0;
foreach (var nm in names) {
    i++;
    var l = (LayerTableRecord)Tx.GetObject(lt[nm], OpenMode.ForRead);
    int m = model.ContainsKey(nm) ? model[nm] : 0;
    int p = paper.ContainsKey(nm) ? paper[nm] : 0;
    int b = blockd.ContainsKey(nm) ? blockd[nm] : 0;
    string state = (l.IsOff ? "OFF " : "") + (l.IsFrozen ? "FROZEN " : "") + (l.IsLocked ? "LOCKED " : "");
    Log(String.Format("{0,3}. {1,-34} model={2,-5} paper={3,-4} blockdef={4,-4} {5}",
        i, nm, m, p, b, state));
}
Log("");
Log("total layers: " + names.Count);

Result

Status
success
Drawing file
C:\Users\sanja\OneDrive\_SurveyDisco\260613 - 5030 E Lake Pkwy, Stockbridge, GA 30281, USA\ACAD-260612 - CSTORE WATER ABS 30.dwg
Message
Executed C3D-0102 (0 entities touched).
Entities
Duration
386 ms
Civil 3D
25.0.0.0

Log

drawing: C:\Users\sanja\OneDrive\_SurveyDisco\260613 - 5030 E Lake Pkwy, Stockbridge, GA 30281, USA\ACAD-260612 - CSTORE WATER ABS 30.dwg
  1. 0                                  model=19    paper=4    blockdef=195  
  2. ADDRESS_TEXT                       model=0     paper=0    blockdef=0    
  3. BLOCK_CERT                         model=0     paper=3    blockdef=0    
  4. BLOCK_CLOSURE                      model=0     paper=35   blockdef=0    
  5. BLOCK_LEGEND                       model=0     paper=1    blockdef=23   
  6. BLOCK_NORTH_ARROW                  model=0     paper=101  blockdef=0    
  7. BLOCK_SCALE                        model=0     paper=0    blockdef=37   
  8. BLOCK_TB2                          model=0     paper=0    blockdef=46   
  9. BOUNDARY                           model=0     paper=4    blockdef=0    
 10. C-ANNO                             model=6     paper=0    blockdef=0    
 11. C-ANNO-TABL                        model=35    paper=0    blockdef=0    
 12. C-ANNO-TABL-TEXT                   model=87    paper=0    blockdef=0    
 13. C-ANNO-TABL-TITL                   model=8     paper=0    blockdef=0    
 14. C-ANNO-TABL-TTBL                   model=8     paper=0    blockdef=0    
 15. C-PROP-BNDY                        model=1     paper=0    blockdef=0    
 16. C-PROP-BRNG                        model=16    paper=0    blockdef=0    
 17. C-PROP-TEXT                        model=1     paper=0    blockdef=0    
 18. FIRE_HYDRANT                       model=4     paper=0    blockdef=0    
 19. FIRE_HYDRANT_VALVE                 model=3     paper=0    blockdef=0    
 20. HORIZONTAL_AND_VERTICAL_CONTROL_POINT model=1     paper=0    blockdef=0    
 21. HORIZONTAL_AND_VERTICAL_CONTROL_TEXT model=4     paper=0    blockdef=0    
 22. PROPERTY_LINE                      model=1     paper=0    blockdef=0    
 23. ROAD_EDGE_OF_PAVEMENT              model=26    paper=0    blockdef=0    
 24. ROAD_RIGHT-OF-WAY                  model=4     paper=1    blockdef=0    
 25. SEWER_EASEMENT                     model=3     paper=0    blockdef=0    
 26. SEWER_EASEMENT POLY                model=2     paper=0    blockdef=0    
 27. SEWER_EASEMENT_20                  model=1     paper=0    blockdef=0    
 28. SEWER_EASEMENT_TEXT                model=37    paper=0    blockdef=0    
 29. SEWER_LINE                         model=14    paper=0    blockdef=0    
 30. SEWER_LINE_TEXT                    model=28    paper=0    blockdef=0    
 31. SEWER_MANHOLE                      model=13    paper=0    blockdef=0    
 32. SEWER_MANHOLE_EXISTING             model=1     paper=0    blockdef=0    
 33. SEWER_MANHOLE_TEXT                 model=26    paper=0    blockdef=0    
 34. SS-0-FRAME                         model=21    paper=0    blockdef=4    
 35. SS-BOUNDARY                        model=2     paper=0    blockdef=0    
 36. SS-ROAD-BUILDING                   model=1     paper=0    blockdef=0    
 37. SS-ROAD-CANOPY                     model=1     paper=0    blockdef=0    
 38. SS-ROAD-CL                         model=4     paper=0    blockdef=0    
 39. SS-ROAD-DUMPSTER                   model=1     paper=0    blockdef=0    
 40. SS-ROAD-SIDEWALK                   model=2     paper=0    blockdef=0    
 41. SS-ROAD-STRIPE                     model=40    paper=0    blockdef=0    
 42. SS-ROAD-TBC                        model=75    paper=0    blockdef=0    
 43. V-CTRL-LINE-SHOT                   model=0     paper=0    blockdef=0    
 44. V-CTRL-TEXT                        model=0     paper=0    blockdef=0    
 45. V-NODE-BNDY                        model=0     paper=0    blockdef=8    
 46. V-NODE-BORE                        model=0     paper=0    blockdef=1    
 47. V-NODE-POLE                        model=0     paper=0    blockdef=2    
 48. V-NODE-STRM                        model=0     paper=0    blockdef=14   
 49. V-NODE-TEXT                        model=0     paper=0    blockdef=94   
 50. V-NODE-TREE                        model=0     paper=0    blockdef=2    
 51. V-NODE-WATR                        model=0     paper=0    blockdef=26   
 52. WATER_LINE                         model=2     paper=0    blockdef=0    
 53. WATER_LINE_PTS                     model=25    paper=0    blockdef=50   
 54. WATER_LINE_TEXT                    model=6     paper=0    blockdef=0    
 55. WATER_VALVE                        model=5     paper=0    blockdef=0    
 56. WATER_VAULT                        model=4     paper=0    blockdef=0    

total layers: 56

Notes

What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.

No notes yet.