← Inbox

C3D-0062 · READ-ONLY: confirm the centerline layer for the CL points [CL-TARGET] done

Lists every layer whose name suggests a road centerline, with the entities already on each, so the CL points are moved to the layer the drawing already uses rather than a guessed one. No changes.

Script file
C3D-0062.cs
Target
260612 · model space
Author
claude
Approved
yes · reviewer
Timeout
180s

C# payload

// READ-ONLY. Where does CL go? Two candidates exist in the layer table and I will not guess
// between them: SS-ROAD-CL (already holds 4 centerline polylines) and SS-V-ROAD-CNTR (empty).
// Print every layer whose name suggests a centerline, with how many entities are already on it,
// so the target is chosen from what the drawing already does. Nothing is modified.
var lt = (LayerTable)Tx.GetObject(Db.LayerTableId, OpenMode.ForRead);
var ms = (BlockTableRecord)Tx.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(Db), OpenMode.ForRead);

var counts = new Dictionary<string, Dictionary<string,int>>();
foreach (ObjectId id in ms) {
    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 = ent.Layer;
    if (!counts.ContainsKey(lay)) counts[lay] = new Dictionary<string,int>();
    string tn = o.GetType().Name;
    if (!counts[lay].ContainsKey(tn)) counts[lay][tn] = 0;
    counts[lay][tn]++;
}

string[] KEYS = new string[] { "-CL", "_CL", "CNTR", "CENTER", "CENTRE", "ROAD" };
var names = new List<string>();
foreach (ObjectId id in lt) {
    var l = (LayerTableRecord)Tx.GetObject(id, OpenMode.ForRead);
    string u = l.Name.ToUpper();
    foreach (string k in KEYS) if (u.IndexOf(k) >= 0) { names.Add(l.Name); break; }
}
names.Sort();
foreach (var n in names) {
    var parts = new List<string>();
    if (counts.ContainsKey(n)) foreach (var kv in counts[n]) parts.Add(kv.Key + ":" + kv.Value);
    Log(String.Format("  {0,-30} [{1}]", n, String.Join(" ", parts)));
}
Log("");
Log("matched " + names.Count + " layers");

Result

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

Log

  BLOCK_CLOSURE                  []
  C-ESMT-ROAD                    []
  C-RAIL-CANT-VIEW-CNTR          []
  C-ROAD                         []
  C-ROAD-ASSM                    []
  C-ROAD-ASSM-BLIN               []
  C-ROAD-ASSM-OFFS               []
  C-ROAD-ASSM-TEXT               []
  C-ROAD-BRNG                    []
  C-ROAD-CNTR                    []
  C-ROAD-CNTR-N                  []
  C-ROAD-CORR                    []
  C-ROAD-CORR-BNDY               []
  C-ROAD-CORR-PATT               []
  C-ROAD-CURV                    []
  C-ROAD-FEAT                    []
  C-ROAD-INTS                    []
  C-ROAD-INTS-TEXT               []
  C-ROAD-LABL                    []
  C-ROAD-LINE                    []
  C-ROAD-LINE-EXTN               []
  C-ROAD-LINK                    []
  C-ROAD-LINK-TEXT               []
  C-ROAD-MARK                    []
  C-ROAD-MASS-LINE               []
  C-ROAD-MASS-LINE-FREE          []
  C-ROAD-MASS-LINE-N             []
  C-ROAD-MASS-LINE-OVER          []
  C-ROAD-MASS-VIEW               []
  C-ROAD-MASS-VIEW-GRID-MAJR     []
  C-ROAD-MASS-VIEW-GRID-MINR     []
  C-ROAD-MASS-VIEW-TEXT          []
  C-ROAD-MASS-VIEW-TITL          []
  C-ROAD-MASS-VIEW-TTLB          []
  C-ROAD-PROF                    []
  C-ROAD-PROF-ASMC               []
  C-ROAD-PROF-CURV               []
  C-ROAD-PROF-DIAG               []
  C-ROAD-PROF-GRID               []
  C-ROAD-PROF-GRID-GEOM          []
  C-ROAD-PROF-GRID-MAJR          []
  C-ROAD-PROF-GRID-MINR          []
  C-ROAD-PROF-LABL               []
  C-ROAD-PROF-LINE               []
  C-ROAD-PROF-LINE-EXTN          []
  C-ROAD-PROF-LTOF               []
  C-ROAD-PROF-PARB               []
  C-ROAD-PROF-PNTS               []
  C-ROAD-PROF-PROJ               []
  C-ROAD-PROF-PROP               []
  C-ROAD-PROF-RTOF               []
  C-ROAD-PROF-STAN-GEOM          []
  C-ROAD-PROF-STAN-MAJR          []
  C-ROAD-PROF-STAN-MINR          []
  C-ROAD-PROF-TEXT               []
  C-ROAD-PROF-TICK               []
  C-ROAD-PROF-TITL               []
  C-ROAD-PROF-TTLB               []
  C-ROAD-SAMP                    []
  C-ROAD-SAMP-TEXT               []
  C-ROAD-SECT                    []
  C-ROAD-SECT-BUFR               []
  C-ROAD-SECT-DIAG               []
  C-ROAD-SECT-GRID               []
  C-ROAD-SECT-LABL               []
  C-ROAD-SECT-N                  []
  C-ROAD-SECT-PROJ               []
  C-ROAD-SECT-SHET               []
  C-ROAD-SECT-TABL               []
  C-ROAD-SECT-TEXT               []
  C-ROAD-SECT-TICK               []
  C-ROAD-SECT-TITL               []
  C-ROAD-SECT-TTLB               []
  C-ROAD-SELV-VIEW               []
  C-ROAD-SELV-VIEW-TEXT          []
  C-ROAD-SELV-VIEW-TICK          []
  C-ROAD-SELV-VIEW-TITL          []
  C-ROAD-SELV-VIEW-TTLB          []
  C-ROAD-SGHT-EYE-PATH           []
  C-ROAD-SGHT-LIMT-LINE          []
  C-ROAD-SGHT-OBST-AREA          []
  C-ROAD-SGHT-OBST-LINE          []
  C-ROAD-SGHT-OBST-PATH          []
  C-ROAD-SGHT-VIS-LINE           []
  C-ROAD-SHAP                    []
  C-ROAD-SHAP-PATT               []
  C-ROAD-SPIR                    []
  C-ROAD-STAN                    []
  C-ROAD-STAN-MAJR               []
  C-ROAD-STAN-MINR               []
  C-ROAD-TABL                    []
  C-ROAD-TEXT                    []
  C-SSWR-CNTR                    []
  C-STRM-CNTR                    []
  C-WATR-CNTR                    []
  PDF2_C-STRM-CNTR               [Hatch:69 Polyline:23 Circle:2]
  PDF2_C-WATR-CNTR               [Polyline:45]
  PDF2_V-ROAD-CURB               [Hatch:1 Polyline:217 Arc:20 Circle:1]
  PDF2_V-ROAD-MRKG               [Polyline:39 Arc:22]
  ROAD_EDGE_OF_PAVEMENT          [Polyline:5 Line:7 Hatch:1]
  ROAD_RIGHT-OF-WAY              [Line:3 Polyline:1]
  ROAD_RIGHT-OF-WAY_TEXT         []
  ROAD_TEXT                      []
  SS-CL OF CREEK                 []
  SS-ROAD-BUILDING               [Polyline:1]
  SS-ROAD-CANOPY                 [Polyline:1]
  SS-ROAD-CL                     [Polyline:3 Line:1]
  SS-ROAD-CONCRETE               []
  SS-ROAD-DUMPSTER               [Polyline:1]
  SS-ROAD-GUARDRAIL              [Polyline:1]
  SS-ROAD-GUTTER                 []
  SS-ROAD-SIDEWALK               [Polyline:2]
  SS-ROAD-STRIPE                 [Polyline:42]
  SS-ROAD-TBC                    [Polyline:55 Arc:8 Line:14]
  SS-ROAD-WALL                   []
  SS-V-ROAD-CNTR                 []
  SS-V-ROAD-CURB                 []
  SS-V-ROAD-EPVM                 []
  X-ROAD                         []
  X-ROAD-ASPH                    []
  X-ROAD-CURB                    []

matched 121 layers

Notes

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

No notes yet.