← Inbox

C3D-EPCHK · Check EP / R-W / water feature points (read-only) done

Determine whether ROAD_EDGE_OF_PAVEMENT can be built from surveyed EP, and map water structures

Script file
C3D-EPCHK.cs
Target
active document · model space
Author
claude
Approved
yes · claude (read-only inspection)
Timeout
60s

C# payload

// Read-only: EP (edge of pavement) points + R/W + water-feature codes, to answer whether
// HCWA's ROAD_EDGE_OF_PAVEMENT (explicitly "not back of curb") can be built from surveyed EP.
var cd = CivilDoc; var cps = cd.CogoPoints;
var eps = new List<(uint,string,double,double)>();
var rw  = new List<(uint,string,double,double)>();
var wat = new List<(uint,string,double,double)>();
foreach (ObjectId id in cps) {
    var cp = (Autodesk.Civil.DatabaseServices.CogoPoint)Tx.GetObject(id, OpenMode.ForRead);
    var r = (cp.RawDescription ?? "").Trim(); var u = r.ToUpperInvariant();
    var tup = (cp.PointNumber, r, cp.Easting, cp.Northing);
    if (u == "EP" || u == "EP TBC") eps.Add(tup);
    if (u.Contains("R\\W") || u.Contains("R/W")) rw.Add(tup);
    if (u.StartsWith("FH") || u.StartsWith("WV") || u.Contains("WATER VAULT") || u.Contains("VAULT COR")
        || u.Contains("RPZ") || u.Contains("BOX COR") || u == "WATER") wat.Add(tup);
}
Log("--- EP points ---");
foreach (var p in eps.OrderBy(x => x.Item1)) Log($"  #{p.Item1} '{p.Item2}' E={p.Item3:F2} N={p.Item4:F2}");
Log("--- R/W points ---");
foreach (var p in rw.OrderBy(x => x.Item1)) Log($"  #{p.Item1} '{p.Item2}' E={p.Item3:F2} N={p.Item4:F2}");
Log("--- water feature points ---");
foreach (var p in wat.OrderBy(x => x.Item1)) Log($"  #{p.Item1} '{p.Item2}' E={p.Item3:F2} N={p.Item4:F2}");
Log($"EP={eps.Count} RW={rw.Count} WATER={wat.Count}");

Result

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

Log

--- EP points ---
  #1003 'EP' E=2296961.71 N=1280286.01
  #1014 'EP' E=2296965.32 N=1280367.57
  #1016 'EP' E=2296902.16 N=1280368.34
  #1026 'EP' E=2296898.03 N=1280286.47
  #1027 'EP' E=2296867.30 N=1280286.71
  #1047 'EP' E=2296809.16 N=1280287.35
  #1048 'EP' E=2296833.57 N=1280277.55
  #1049 'EP TBC' E=2296816.50 N=1280274.91
--- R/W points ---
  #1002 'R\W' E=2296946.81 N=1280252.19
--- water feature points ---
  #1085 'WATER' E=2296695.40 N=1280036.51
  #1091 'BOX COR' E=2296682.35 N=1280016.11
  #1092 'BOX COR' E=2296682.50 N=1280014.48
  #1093 'BOX COR' E=2296679.85 N=1280014.13
  #1115 'FH' E=2296377.44 N=1280101.12
  #1116 'WV' E=2296376.28 N=1280101.54
  #1117 'WV' E=2296380.29 N=1280018.48
  #1118 'VAULT COR' E=2296400.69 N=1280014.91
  #1119 'WATER VAULT' E=2296400.61 N=1280022.87
  #1120 'VAULT COR' E=2296413.49 N=1280022.93
  #1121 'VAULT COR' E=2296413.54 N=1280014.99
  #1122 '2 IN RPZ BFP  COR' E=2296420.97 N=1280016.39
  #1123 '2 IN RPZ BFP  COR' E=2296420.94 N=1280018.11
  #1124 '2 IN RPZ BFP  COR' E=2296417.27 N=1280017.76
  #1125 '2 IN RPZ BFP  COR' E=2296417.61 N=1280016.13
  #1126 'VAULT COR' E=2296425.57 N=1280028.34
  #1127 'VAULT COR' E=2296425.61 N=1280022.42
  #1128 'VAULT COR' E=2296416.67 N=1280022.41
  #1129 'WATER VAULT' E=2296416.67 N=1280028.30
  #1130 'WV' E=2296543.16 N=1280020.41
  #1131 'FH' E=2296542.38 N=1280022.07
EP=8 RW=1 WATER=21

Notes

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

No notes yet.