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.
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
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.