C3D-0421 · READ-ONLY: the 800-5000 point group members, coords, description census [C3D-PG800] done
Reads the new 800-5000 point group: its query, member count, every point's number/coords/raw description, and a census of description codes - so linework can be grouped by feature type per the survey-linework recipe.
C# payload
// Read the 800-5000 point group: members, each point's raw description + coords, and a census
// of description codes so linework can be grouped by feature type.
var civ = Autodesk.Civil.ApplicationServices.CivilApplication.ActiveDocument;
Log("drawing: " + Db.Filename);
// find the group named like 800-5000
ObjectId gid=ObjectId.Null; string gname="";
foreach (ObjectId id in civ.PointGroups){ var g=(Autodesk.Civil.DatabaseServices.PointGroup)Tx.GetObject(id,OpenMode.ForRead); if(g.Name.Contains("800")||g.Name.Contains("5000")){ gid=id; gname=g.Name; break; } }
if(gid.IsNull){ Log("no 800-5000 group found; listing all groups:"); foreach (ObjectId id in civ.PointGroups){ var g=(Autodesk.Civil.DatabaseServices.PointGroup)Tx.GetObject(id,OpenMode.ForRead); uint[] n=null; try{n=g.GetPointNumbers();}catch{} Log(" "+g.Name+" ("+(n==null?-1:n.Length)+")"); } return; }
var grp=(Autodesk.Civil.DatabaseServices.PointGroup)Tx.GetObject(gid,OpenMode.ForRead);
var nums=new HashSet<uint>(grp.GetPointNumbers());
Log("GROUP \""+gname+"\" members="+nums.Count+" query="+grp.GetQuery().QueryString);
// census by first word of description
var census=new Dictionary<string,int>();
var rows=new List<KeyValuePair<uint,string>>();
foreach (ObjectId id in civ.CogoPoints){
var p=(Autodesk.Civil.DatabaseServices.CogoPoint)Tx.GetObject(id,OpenMode.ForRead);
if(!nums.Contains((uint)p.PointNumber)) continue;
string d=(p.RawDescription??"").Trim();
string key=d.Length==0?"(blank)":d.Split(' ')[0].ToUpper();
if(!census.ContainsKey(key))census[key]=0; census[key]++;
rows.Add(new KeyValuePair<uint,string>((uint)p.PointNumber, string.Format("{0,5} E={1:F2} N={2:F2} Z={3:F2} \"{4}\"", p.PointNumber, p.Easting, p.Northing, p.Elevation, d)));
}
Log("");
Log("=== description code census ===");
var keys=new List<string>(census.Keys); keys.Sort();
foreach(var k in keys) Log(string.Format(" {0,-16} x{1}", k, census[k]));
Log("");
Log("=== all points (sorted) ===");
rows.Sort((a,b)=>a.Key.CompareTo(b.Key));
foreach(var r in rows) Log(" "+r.Value);
Result
Log
drawing: C:\Users\sanja\OneDrive\_SurveyDisco\260711 - 281 Maranatha Trail, Lawrenceville, GA 30045, USA\281 MARANTHA 2607.dwg
GROUP "800-5000" members=176 query=(PointNumber=800-900 OR PointNumber=5000-6000)
=== description code census ===
BLDG x4
DI x4
DWY x31
FACE x2
FC x1
GATE x2
JB x1
OVER x3
RIPRAP x47
ROCK x20
STEP x20
TBC x16
WALL x25
=== all points (sorted) ===
800 E=2359546.99 N=1425575.37 Z=995.90 "TBC"
801 E=2359536.56 N=1425593.17 Z=995.77 "TBC"
802 E=2359533.56 N=1425598.80 Z=995.75 "TBC"
803 E=2359533.56 N=1425598.86 Z=995.70 "TBC"
804 E=2359533.87 N=1425605.90 Z=995.33 "TBC"
805 E=2359538.04 N=1425613.84 Z=994.53 "TBC"
806 E=2359552.57 N=1425623.36 Z=992.90 "TBC"
807 E=2359575.73 N=1425632.57 Z=991.14 "TBC"
808 E=2359604.92 N=1425641.00 Z=989.75 "TBC"
809 E=2359643.53 N=1425648.73 Z=989.11 "TBC"
810 E=2359663.29 N=1425650.35 Z=989.18 "TBC"
811 E=2359672.56 N=1425648.16 Z=989.27 "TBC"
812 E=2359686.79 N=1425634.24 Z=989.91 "TBC"
813 E=2359694.81 N=1425622.87 Z=990.64 "TBC"
814 E=2359699.66 N=1425612.93 Z=991.16 "TBC"
815 E=2359702.37 N=1425604.31 Z=991.68 "TBC WALL"
816 E=2359701.96 N=1425609.50 Z=991.04 "DWY"
817 E=2359713.90 N=1425609.58 Z=991.18 "DWY"
818 E=2359708.30 N=1425641.20 Z=989.29 "DWY"
819 E=2359725.53 N=1425639.93 Z=988.88 "DWY 1FT WALL"
820 E=2359722.75 N=1425619.79 Z=990.32 "DI"
821 E=2359723.08 N=1425609.62 Z=991.04 "DWY 1FT WALL"
822 E=2359717.72 N=1425541.01 Z=995.70 "DWY 1FT WALL"
823 E=2359714.76 N=1425515.08 Z=996.66 "DI"
824 E=2359711.83 N=1425464.77 Z=998.37 "DWY"
825 E=2359710.27 N=1425451.91 Z=998.75 "DWY GATE"
826 E=2359709.91 N=1425446.43 Z=998.79 "DWY GATE"
827 E=2359706.60 N=1425394.97 Z=999.66 "DWY 1FT WALL"
828 E=2359700.95 N=1425395.68 Z=999.74 "OVER HANG COR"
829 E=2359671.79 N=1425359.65 Z=999.90 "OVER HANG COR"
830 E=2359701.80 N=1425328.15 Z=1000.22 "DWY 1FT WALL"
831 E=2359599.96 N=1425417.81 Z=999.77 "OVER HANG COR"
832 E=2359591.14 N=1425416.74 Z=1007.24 "BLDG COR"
833 E=2359607.46 N=1425436.93 Z=1005.15 "BLDG COR"
834 E=2359564.11 N=1425472.90 Z=1005.00 "BLDG COR"
835 E=2359547.57 N=1425454.30 Z=1005.26 "BLDG COR"
836 E=2359545.19 N=1425455.11 Z=1005.34 "WALL"
837 E=2359543.43 N=1425456.65 Z=1005.41 "WALL SETP"
838 E=2359542.02 N=1425458.38 Z=1004.66 "WALL SETP"
839 E=2359541.16 N=1425463.94 Z=1003.98 "DI"
840 E=2359536.51 N=1425465.68 Z=1003.94 "WALL"
841 E=2359529.73 N=1425480.14 Z=1003.93 "WALL"
842 E=2359529.02 N=1425483.17 Z=1003.81 "WALL STEP"
843 E=2359532.58 N=1425485.22 Z=1003.72 "STEP"
844 E=2359536.45 N=1425490.11 Z=1003.58 "STEP WALL"
845 E=2359535.43 N=1425490.53 Z=1004.31 "STEP WALL"
846 E=2359534.60 N=1425490.91 Z=1004.83 "STEP WALL"
847 E=2359533.80 N=1425491.52 Z=1005.48 "STEP WALL"
848 E=2359532.78 N=1425492.25 Z=1006.05 "STEP WALL"
849 E=2359532.02 N=1425492.97 Z=1006.62 "STEP WALL"
850 E=2359531.26 N=1425493.67 Z=1007.23 "STEP WALL"
851 E=2359529.77 N=1425490.65 Z=1007.23 "STEP"
852 E=2359530.59 N=1425489.87 Z=1006.66 "STEP"
853 E=2359531.05 N=1425489.17 Z=1006.06 "STEP"
854 E=2359531.89 N=1425488.53 Z=1005.45 "STEP"
855 E=2359532.63 N=1425487.91 Z=1004.86 "STEP"
856 E=2359533.34 N=1425487.08 Z=1004.31 "STEP"
857 E=2359528.35 N=1425484.53 Z=1004.80 "STEP"
858 E=2359528.07 N=1425485.23 Z=1004.84 "STEP"
859 E=2359527.73 N=1425486.25 Z=1005.38 "STEP WALL"
860 E=2359527.32 N=1425487.25 Z=1006.00 "STEP WALL"
861 E=2359526.85 N=1425488.13 Z=1006.60 "STEP WALL"
862 E=2359526.35 N=1425488.95 Z=1007.27 "STEP WALL"
863 E=2359525.37 N=1425489.99 Z=1007.61 "WALL"
864 E=2359522.05 N=1425493.06 Z=1008.22 "WALL"
865 E=2359528.89 N=1425496.14 Z=1007.79 "WALL"
866 E=2359539.18 N=1425491.35 Z=1003.48 "WALL"
867 E=2359540.36 N=1425494.06 Z=1003.40 "WALL"
868 E=2359528.96 N=1425512.76 Z=1003.14 "WALL"
869 E=2359513.72 N=1425537.05 Z=1002.91 "WALL FC"
870 E=2359505.61 N=1425550.14 Z=1002.66 "WALL FC"
871 E=2359502.75 N=1425554.74 Z=1002.79 "WALL"
872 E=2359505.81 N=1425559.84 Z=1002.67 "WALL"
873 E=2359509.75 N=1425570.81 Z=1001.98 "WALL END"
874 E=2359461.61 N=1425519.24 Z=1010.65 "FC FL"
875 E=2359478.12 N=1425601.73 Z=1001.75 "ROCK WALL"
876 E=2359465.28 N=1425600.26 Z=1002.39 "ROCK WALL"
877 E=2359456.11 N=1425605.59 Z=1002.60 "ROCK WALL"
878 E=2359445.73 N=1425615.07 Z=1002.66 "ROCK WALL"
879 E=2359451.87 N=1425635.17 Z=1002.26 "ROCK WALL"
880 E=2359701.85 N=1425609.45 Z=991.04 "DWY"
881 E=2359723.05 N=1425609.61 Z=991.15 "DWY FACE WALL"
882 E=2359722.91 N=1425619.60 Z=990.55 "DI"
883 E=2359725.43 N=1425640.05 Z=988.70 "DWY FACE WALL"
5384 E=2359704.51 N=1425641.47 Z=989.26 "DWY"
5385 E=2359708.86 N=1425686.14 Z=985.17 "DWY FACE WALL"
5386 E=2359729.31 N=1425687.41 Z=984.68 "DWY FACE WALL"
5387 E=2359710.37 N=1425703.75 Z=982.34 "DWY"
5388 E=2359707.98 N=1425704.14 Z=981.92 "FACE OF WALL"
5389 E=2359727.66 N=1425707.13 Z=981.20 "DWY"
5390 E=2359724.72 N=1425727.40 Z=977.61 "DWY"
5391 E=2359726.38 N=1425727.74 Z=977.96 "GATE"
5392 E=2359727.03 N=1425726.91 Z=977.70 "WALL COR"
5393 E=2359730.09 N=1425727.03 Z=977.79 "WALL COR"
5394 E=2359729.81 N=1425729.88 Z=977.60 "WALL COR"
5395 E=2359727.07 N=1425729.94 Z=977.69 "WALL COR"
5396 E=2359709.29 N=1425726.30 Z=978.05 "ROCK WALL DWY"
5397 E=2359707.53 N=1425725.07 Z=978.32 "GATE"
5398 E=2359706.76 N=1425726.67 Z=978.18 "WALL COR"
5399 E=2359704.26 N=1425726.37 Z=978.72 "WALL COR"
5400 E=2359704.53 N=1425723.57 Z=979.10 "WALL COR"
5401 E=2359707.33 N=1425724.10 Z=978.42 "WALL COR"
5402 E=2359706.78 N=1425723.93 Z=978.56 "FACE OF WALL"
5403 E=2359706.42 N=1425737.61 Z=975.59 "DWY ROCK WALL"
5404 E=2359720.55 N=1425741.61 Z=974.97 "DWY"
5405 E=2359702.07 N=1425749.01 Z=973.16 "ROCK WALL"
5406 E=2359702.06 N=1425749.00 Z=973.20 "DWY ROCK WALL"
5407 E=2359698.17 N=1425757.17 Z=971.54 "DWY ROCK WALL"
5408 E=2359693.27 N=1425766.33 Z=970.21 "DWY ROCK WALL"
5409 E=2359688.96 N=1425773.45 Z=969.79 "DWY ROCK WALL"
5410 E=2359709.81 N=1425771.92 Z=969.89 "DWY"
5411 E=2359713.70 N=1425776.14 Z=969.20 "DWY EP"
5412 E=2359699.91 N=1425784.76 Z=969.16 "DWY EP"
5413 E=2359684.78 N=1425791.44 Z=968.96 "DWY EP"
5414 E=2359676.68 N=1425793.56 Z=968.97 "DWY EP"
5415 E=2359685.02 N=1425775.62 Z=969.52 "ROCK WALL"
5416 E=2359677.79 N=1425775.63 Z=969.92 "ROCK WALL"
5417 E=2359673.06 N=1425771.98 Z=970.78 "ROCK WALL"
5418 E=2359670.99 N=1425766.32 Z=972.13 "ROCK WALL END"
5419 E=2359647.51 N=1425788.74 Z=968.28 "JB"
5420 E=2359679.43 N=1425759.47 Z=973.96 "ROCK WALL END"
5421 E=2359682.94 N=1425761.63 Z=973.59 "ROCK WALL"
5422 E=2359688.94 N=1425762.39 Z=972.67 "ROCK WALL"
5423 E=2359695.63 N=1425761.11 Z=972.20 "ROCK WALL"
5424 E=2359702.56 N=1425744.37 Z=975.29 "ROCK WALL"
5425 E=2359697.36 N=1425745.89 Z=975.54 "ROCK WALL"
5426 E=2359691.90 N=1425745.24 Z=976.02 "ROCK WALL"
5427 E=2359686.57 N=1425742.76 Z=976.53 "ROCK WALL"
5428 E=2359683.61 N=1425739.51 Z=977.70 "ROCK WALL"
5429 E=2359681.51 N=1425739.89 Z=977.28 "RIPRAP"
5430 E=2359677.92 N=1425737.32 Z=976.98 "RIPRAP"
5431 E=2359667.72 N=1425756.82 Z=974.09 "RIPRAP"
5432 E=2359664.36 N=1425754.98 Z=974.42 "RIPRAP"
5433 E=2359651.56 N=1425784.29 Z=967.99 "RIPRAP"
5434 E=2359647.18 N=1425783.64 Z=968.29 "RIPRAP"
5435 E=2359657.85 N=1425786.87 Z=968.23 "RIPRAP"
5436 E=2359657.73 N=1425792.09 Z=968.10 "RIPRAP"
5437 E=2359647.34 N=1425794.52 Z=968.02 "RIPRAP"
5438 E=2359643.84 N=1425792.71 Z=968.06 "RIPRAP"
5439 E=2359642.33 N=1425786.84 Z=968.04 "RIPRAP"
5440 E=2359631.79 N=1425790.99 Z=969.20 "RIPRAP"
5441 E=2359633.46 N=1425796.18 Z=969.09 "RIPRAP"
5442 E=2359619.72 N=1425800.24 Z=969.86 "RIPRAP"
5443 E=2359618.51 N=1425794.51 Z=969.83 "RIPRAP"
5444 E=2359689.40 N=1425731.34 Z=979.32 "RIPRAP"
5445 E=2359684.93 N=1425728.27 Z=979.11 "RIPRAP"
5446 E=2359686.28 N=1425725.47 Z=980.01 "RIPRAP"
5447 E=2359692.39 N=1425725.58 Z=980.26 "RIPRAP"
5448 E=2359684.90 N=1425715.81 Z=984.55 "RIPRAP"
5449 E=2359691.95 N=1425713.13 Z=984.54 "RIPRAP"
5450 E=2359685.99 N=1425702.08 Z=986.17 "RIPRAP"
5451 E=2359680.61 N=1425705.21 Z=985.59 "RIPRAP"
5452 E=2359665.54 N=1425693.98 Z=986.38 "RIPRAP"
5453 E=2359669.36 N=1425688.09 Z=987.12 "RIPRAP"
5454 E=2359668.30 N=1425680.19 Z=986.99 "RIPRAP"
5455 E=2359651.13 N=1425688.87 Z=987.06 "RIPRAP"
5456 E=2359596.65 N=1425800.52 Z=971.84 "RIPRAP"
5457 E=2359597.73 N=1425804.82 Z=972.01 "RIPRAP"
5458 E=2359571.89 N=1425812.32 Z=974.44 "RIPRAP 1"
5459 E=2359571.17 N=1425807.07 Z=974.48 "RIPRAP 1"
5460 E=2359546.83 N=1425816.58 Z=977.10 "RIPRAP 1"
5461 E=2359545.72 N=1425812.02 Z=977.21 "RIPRAP 1"
5462 E=2359514.89 N=1425819.46 Z=981.35 "RIPRAP 1"
5463 E=2359514.02 N=1425814.25 Z=981.46 "RIPRAP 1"
5464 E=2359486.87 N=1425815.59 Z=984.37 "RIPRAP 2"
5465 E=2359486.19 N=1425811.43 Z=984.45 "RIPRAP 2"
5466 E=2359471.91 N=1425813.72 Z=985.84 "RIPRAP 2"
5467 E=2359472.42 N=1425809.51 Z=985.88 "RIPRAP 2"
5468 E=2359448.97 N=1425807.00 Z=987.88 "RIPRAP 3"
5469 E=2359449.85 N=1425803.32 Z=987.73 "RIPRAP 3"
5470 E=2359426.48 N=1425798.02 Z=989.69 "RIPRAP 3"
5471 E=2359428.84 N=1425793.31 Z=990.02 "RIPRAP 3"
5472 E=2359428.81 N=1425793.29 Z=989.87 "RIPRAP 3"
5473 E=2359423.64 N=1425789.43 Z=991.42 "RIPRAP 3"
5474 E=2359421.62 N=1425792.13 Z=991.28 "RIPRAP 3"
5475 E=2359421.02 N=1425795.66 Z=991.24 "RIPRAP 3"Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.