C3D-PTS619 · Point groups + curb/CL points (read-only) done
List groups; dump curb/CL/road group points for linework
C# payload
// Read-only: list point groups + dump curb/CL/road-type groups' points (ordered) for linework.
var cd = CivilDoc; var cps = cd.CogoPoints;
Log("== point groups (name: count) ==");
var interesting = new List<ObjectId>();
foreach (ObjectId gid in cd.PointGroups) {
var pg = (Autodesk.Civil.DatabaseServices.PointGroup)Tx.GetObject(gid, OpenMode.ForRead);
int n = 0; try { n = pg.GetPointNumbers().Length; } catch {}
Log($" '{pg.Name}': {n}");
var u = pg.Name.ToUpperInvariant();
if (u.Contains("TBC") || u.Contains("CURB") || u.Contains("CL") || u.Contains("ROAD") || u.Contains("EP") || u.Contains("CENTER") || u.Contains("EOP"))
interesting.Add(gid);
}
foreach (var gid in interesting) {
var pg = (Autodesk.Civil.DatabaseServices.PointGroup)Tx.GetObject(gid, OpenMode.ForRead);
var nums = pg.GetPointNumbers().OrderBy(x => x).ToArray();
Log($"== '{pg.Name}' ({nums.Length}) points by number ==");
foreach (var pn in nums.Take(60)) {
try { var cp = (Autodesk.Civil.DatabaseServices.CogoPoint)Tx.GetObject(cps.GetPointByPointNumber(pn), OpenMode.ForRead); Log($" #{pn} ({cp.Easting:F2},{cp.Northing:F2}) '{cp.RawDescription}'"); } catch {}
}
}
Log("Points recon complete (read-only).");
Result
Log
== point groups (name: count) == 'IPF NS': 3 'CL': 22 'POB': 0 'PP': 8 'MH': 1 'UTIL': 9 'FH': 1 'WM': 1 'FF': 0 'GAS': 2 'TBC': 26 'BUILDING': 32 'No Display': 361 'NORTHING_EASTING': 0 'FENCE': 24 'Display [SPECIFIC]': 38 'TOPO': 293 'WALL ELEV': 10 'TREES': 0 '_All Points': 361 == 'CL' (22) points by number == #116 (2166870.90,1330642.04) 'CL' #121 (2166862.82,1330606.10) 'CL' #126 (2166845.68,1330532.79) 'CL' #129 (2166835.33,1330487.44) 'CL' #135 (2166812.46,1330388.66) 'CL' #139 (2166801.86,1330341.62) 'CL' #143 (2166781.15,1330249.11) 'CL' #161 (2166769.18,1330197.31) 'CL' #166 (2166737.07,1330053.52) 'CL' #181 (2166683.08,1329983.88) 'CL' #191 (2166703.82,1329910.24) 'CL' #199 (2166713.11,1329950.46) 'CL' #200 (2166718.47,1329974.04) 'CL CL' #375 (2166503.22,1330034.04) 'CL' #481 (2166621.45,1330916.64) 'CL' #484 (2166656.26,1330898.73) 'CL' #487 (2166709.77,1330876.10) 'CL' #490 (2166785.67,1330849.45) 'CL' #493 (2166865.40,1330824.21) 'CL' #495 (2166899.63,1330813.89) 'CL EP' #496 (2166910.89,1330816.52) 'CL CL' #498 (2166881.70,1330690.03) 'CL' == 'TBC' (26) points by number == #118 (2166884.18,1330639.13) 'TBC' #119 (2166881.80,1330628.09) 'TBC' #120 (2166873.09,1330605.02) 'TBC END EP' #170 (2166719.96,1330051.22) 'TBC' #174 (2166710.62,1330011.86) 'TBC' #175 (2166709.56,1330008.18) 'TBC' #176 (2166706.82,1330004.13) 'TBC' #177 (2166702.69,1330000.67) 'TBC' #178 (2166696.86,1329997.66) 'TBC' #179 (2166692.91,1329997.06) 'TBC' #180 (2166687.10,1329997.76) 'TBC' #182 (2166680.80,1329969.36) 'TBC' #183 (2166687.45,1329966.39) 'TBC' #184 (2166691.74,1329962.54) 'TBC' #185 (2166694.53,1329957.32) 'TBC' #186 (2166695.95,1329952.69) 'TBC END' #196 (2166727.47,1329946.72) 'TBC END' #201 (2166732.58,1329969.06) 'TBC' #202 (2166734.15,1329973.79) 'TBC' #208 (2166738.10,1329992.70) 'TBC' #210 (2166743.86,1330015.95) 'TBC DWY' #211 (2166749.21,1330041.12) 'TBC DWY' #212 (2166753.66,1330060.53) 'TBC END' #374 (2166508.20,1330047.26) 'TBC DWY' #376 (2166499.51,1330019.69) 'TBC' #500 (2166895.02,1330687.34) 'TBC' Points recon complete (read-only).
Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.