C3D-SNAP2 · Geometry snapshot AFTER user edits (read-only) done
Dump entities to diff against the before baseline
C# payload
// Read-only geometry snapshot: dump model entities (handle|layer|type|geo) so a later dump can be
// diffed to see what the user changed. Compact signature per entity.
var bt = (BlockTable)Tx.GetObject(Db.BlockTableId, OpenMode.ForRead);
var ms = (BlockTableRecord)Tx.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForRead);
int n = 0;
foreach (ObjectId id in ms) {
var o = Tx.GetObject(id, OpenMode.ForRead);
var e = o as Autodesk.AutoCAD.DatabaseServices.Entity;
if (e == null) continue;
string sig = "";
if (o is Line ln) sig = $"({ln.StartPoint.X:F2},{ln.StartPoint.Y:F2})-({ln.EndPoint.X:F2},{ln.EndPoint.Y:F2})";
else if (o is Polyline pl) { var sb = new System.Text.StringBuilder($"closed={pl.Closed} v{pl.NumberOfVertices}:"); for (int i = 0; i < pl.NumberOfVertices; i++) { var p = pl.GetPoint2dAt(i); sb.Append($"({p.X:F2},{p.Y:F2})"); } sig = sb.ToString(); }
else if (o is Circle c) sig = $"ctr({c.Center.X:F2},{c.Center.Y:F2}) r={c.Radius:F2}";
else if (o is MText mt) sig = $"@({mt.Location.X:F2},{mt.Location.Y:F2}) h={mt.TextHeight:F1} \"{mt.Contents.Replace("\\P"," / ")}\"";
else if (o is DBText t) sig = $"@({t.Position.X:F2},{t.Position.Y:F2}) \"{t.TextString}\"";
else if (o is Autodesk.Civil.DatabaseServices.CogoPoint cp) continue; // skip the 76 survey points
else sig = o.GetType().Name;
Log($"{e.Handle}|{e.Layer}|{o.GetType().Name}|{sig}");
n++;
}
Log($"SNAPSHOT: {n} entities");
Result
Log
9B38|C-ANNO-TABL-TTBL|Site|Site 101C9|C-PROP-LINE|ParcelSegment|ParcelSegment 11A08|C-ANNO-TABL-TTBL|Site|Site 11A33|C-ANNO-TABL-TTBL|Site|Site 1467D|C-ANNO-TABL-TTBL|Site|Site 165BD|C-ANNO-TABL-TTBL|Site|Site 1A9D7|SS-FLOW WELL|Circle|ctr(2223383.32,1347080.23) r=7438.32 1C8C9|0|Circle|ctr(2226408.23,1346387.91) r=0.50 1C8CB|0|Circle|ctr(2226408.23,1346387.91) r=0.50 1C8CC|0|Circle|ctr(2226497.02,1346341.92) r=0.50 1C8CE|0|Circle|ctr(2226497.02,1346341.92) r=0.50 1C8CF|0|Circle|ctr(2226618.05,1346092.69) r=0.50 1C8D1|0|Circle|ctr(2226618.05,1346092.69) r=0.50 1C8D2|0|Circle|ctr(2226603.90,1346042.83) r=0.50 1C8D4|0|Circle|ctr(2226603.90,1346042.83) r=0.50 1C8D5|0|Circle|ctr(2226486.74,1345845.45) r=0.50 1C8D7|0|Circle|ctr(2226486.74,1345845.45) r=0.50 1C8D8|0|Circle|ctr(2226401.04,1345896.98) r=0.50 1C8DA|0|Circle|ctr(2226401.04,1345896.98) r=0.50 1C8DB|0|Circle|ctr(2226274.11,1345973.42) r=0.50 1C8DD|0|Circle|ctr(2226274.11,1345973.42) r=0.50 1C8DE|0|Circle|ctr(2226286.62,1346130.05) r=0.50 1C8E0|0|Circle|ctr(2226286.62,1346130.05) r=0.50 1C8E1|0|Circle|ctr(2226336.24,1346279.94) r=0.50 1C8E3|0|Circle|ctr(2226336.24,1346279.94) r=0.50 1C90E|SS-V-ROAD-CNTR|Line|(2226908.27,1345801.44)-(2226926.12,1346570.98) 1C90F|SS-V-ROAD-CURB|Line|(2226895.56,1345800.32)-(2226913.46,1346570.87) 1C910|SS-V-ROAD-CURB|Line|(2226920.57,1345798.61)-(2226938.59,1346571.84) 1C911|C-ANNO|NoteLabel|NoteLabel 1CE27|SS-V-BLDG-OTLN|Polyline|closed=True v4:(2226417.76,1346006.75)(2226412.90,1345990.19)(2226436.15,1345983.83)(2226441.22,1346000.43) 1CEFE|SS-BUFFER LANDSCAPE|Site|Site 1CF02|SS-BUFFER LANDSCAPE|FeatureLine|FeatureLine 1D03D|SS-V-BLDG-OTLN|BlockReference|BlockReference 1D0AC|SS-V-ROAD-CURB|Polyline|closed=False v8:(2226403.60,1346064.64)(2226401.66,1346068.09)(2226397.44,1346069.74)(2226393.82,1346065.75)(2226395.85,1346059.66)(2226400.43,1346058.54)(2226403.10,1346061.33)(2226403.60,1346064.64) 1D0AF|SS-V-ROAD-CURB|FeatureLine|FeatureLine 1D0B0|SS-V-ROAD-CURB|FeatureLine|FeatureLine 1D0B1|SS-V-ROAD-CURB|FeatureLine|FeatureLine 1D0B6|SS-V-ROAD-CURB|FeatureLine|FeatureLine 1D0B7|SS-V-ROAD-CURB|Line|(2226440.72,1346064.35)-(2226440.00,1346062.95) 1D0B9|SS-V-ROAD-CURB|Polyline|closed=True v9:(2226496.36,1346146.89)(2226495.35,1346143.30)(2226523.23,1346134.29)(2226525.54,1346132.31)(2226527.82,1346130.17)(2226528.41,1346127.55)(2226533.05,1346128.18)(2226530.78,1346133.08)(2226526.85,1346136.60) 1D0BA|SS-V-ROAD-CURB|Polyline|closed=False v5:(2226530.15,1346120.82)(2226530.51,1346122.40)(2226531.22,1346123.85)(2226531.70,1346125.34)(2226533.05,1346128.18) 1D0BD|SS-V-ROAD-CURB|Polyline|closed=False v5:(2226527.30,1346125.12)(2226531.22,1346123.85)(2226530.51,1346122.40)(2226526.79,1346123.53)(2226527.30,1346125.12) 1D0BE|SS-V-ROAD-CURB|Polyline|closed=False v2:(2226528.41,1346127.55)(2226527.30,1346125.12) 1D0BF|SS-V-ROAD-CURB|Polyline|closed=False v5:(2226531.13,1346120.60)(2226531.46,1346122.07)(2226532.15,1346123.47)(2226532.64,1346124.97)(2226533.53,1346126.84) 1D0C0|SS-V-ROAD-CURB|FeatureLine|FeatureLine 1D0C1|SS-V-ROAD-CURB|FeatureLine|FeatureLine 1D0C8|SS-V-ROAD-CURB|Line|(2226530.15,1346120.82)-(2226531.13,1346120.60) 1D0C9|SS-V-ROAD-CURB|Polyline|closed=False v5:(2226550.84,1346111.24)(2226547.99,1346101.00)(2226545.76,1346092.85)(2226544.18,1346087.78)(2226551.95,1346085.70) 1D0CA|SS-V-ROAD-CURB|Polyline|closed=False v5:(2226549.88,1346111.51)(2226547.03,1346101.27)(2226544.80,1346093.13)(2226543.05,1346087.46)(2226551.72,1346085.00) 1D0CB|SS-V-ROAD-CURB|FeatureLine|FeatureLine 1D0DD|SS-V-ROAD-CURB|Line|(2226486.89,1346047.44)-(2226487.61,1346047.26) 1D0DE|SS-V-ROAD-CURB|Line|(2226487.61,1346047.26)-(2226486.11,1346041.78) 1D0DF|SS-V-ROAD-CURB|Polyline|closed=True v5:(2226460.06,1346059.20)(2226461.46,1346058.80)(2226458.56,1346049.58)(2226458.56,1346049.58)(2226457.37,1346049.98) 1D140|SS-V-ROAD-CURB|FeatureLine|FeatureLine 1D174|SS-V-ROAD-CURB|FeatureLine|FeatureLine 1D178|SS-V-ROAD-CURB|FeatureLine|FeatureLine 1D17A|SS-V-ROAD-CURB|Line|(2226433.07,1346152.24)-(2226432.27,1346152.84) 1D265|C-ANNO|NoteLabel|NoteLabel 1D31F|SS-V-ROAD-CURB|Line|(2226551.95,1346085.70)-(2226551.72,1346085.00) 1D320|SS-V-ROAD-CURB|Line|(2226499.74,1346063.68)-(2226526.28,1346056.28) 1D321|SS-V-ROAD-CURB|Line|(2226526.28,1346056.28)-(2226528.28,1346063.98) 1D322|SS-V-ROAD-CURB|Line|(2226528.28,1346063.98)-(2226501.89,1346071.39) 1D323|SS-V-ROAD-CURB|Line|(2226501.89,1346071.39)-(2226499.74,1346063.68) 1D3D4|SS-BOUNDARY|Polyline|closed=True v8:(2226497.02,1346341.92)(2226618.05,1346092.69)(2226603.90,1346042.83)(2226486.74,1345845.45)(2226274.11,1345973.42)(2226286.62,1346130.05)(2226336.24,1346279.94)(2226408.23,1346387.91) 1D3D5|SS-V-ROAD-CURB|Site|Site 1D446|SS-V-ROAD-CURB|Hatch|Hatch 1D478|C-ANNO|NoteLabel|NoteLabel 1D4A6|C-ANNO|NoteLabel|NoteLabel 1D4CD|C-ANNO|NoteLabel|NoteLabel 1D4F4|C-ANNO|NoteLabel|NoteLabel 1D51B|C-ANNO|NoteLabel|NoteLabel 1D542|C-ANNO|NoteLabel|NoteLabel 1D569|C-ANNO|NoteLabel|NoteLabel 1D590|C-ANNO|NoteLabel|NoteLabel 1D5B7|C-ANNO|NoteLabel|NoteLabel 1D5DE|C-ANNO|NoteLabel|NoteLabel 1D605|C-ANNO|NoteLabel|NoteLabel 1D6A6|SS-V-ROAD-CURB|Wipeout|Wipeout 1E8A2|SS-X-FENCE WOOD|Polyline|closed=False v4:(2226486.13,1345844.03)(2226276.80,1345974.72)(2226286.05,1346130.27)(2226312.78,1346204.41) 1E8CA|C-ANNO|NoteLabel|NoteLabel 1EB1A|SS-V-ROAD-CURB|AlignedDimension|AlignedDimension 1EB34|SS-V-ROAD-CURB|AlignedDimension|AlignedDimension 1EB4E|SS-V-ROAD-CURB|AlignedDimension|AlignedDimension 1EB68|SS-V-ROAD-CURB|AlignedDimension|AlignedDimension 1EB82|SS-V-ROAD-CURB|AlignedDimension|AlignedDimension 1EB9C|SS-V-ROAD-CURB|AlignedDimension|AlignedDimension 1EBB6|SS-V-ROAD-CURB|AlignedDimension|AlignedDimension 1EF7A|SS-BUFFER LANDSCAPE|Site|Site 1EF7C|SS-V-ROAD-CURB|FeatureLine|FeatureLine 1EF80|SS-V-ROAD-CURB|Polyline|closed=False v4:(2226410.23,1346069.77)(2226411.58,1346070.63)(2226416.41,1346087.05)(2226418.18,1346094.63) 1EF81|SS-V-ROAD-CURB|Polyline|closed=False v4:(2226409.97,1346070.79)(2226410.72,1346071.27)(2226415.44,1346087.31)(2226417.20,1346094.86) 1EF8A|SS-V-ROAD-CURB|Polyline|closed=False v6:(2226432.27,1346152.84)(2226433.81,1346152.11)(2226434.53,1346149.63)(2226434.40,1346144.29)(2226433.00,1346140.55)(2226429.62,1346134.75) 1EF8B|SS-V-ROAD-CURB|Polyline|closed=False v6:(2226431.84,1346151.94)(2226432.97,1346151.40)(2226433.52,1346149.50)(2226433.41,1346144.48)(2226432.10,1346140.98)(2226428.76,1346135.26) 1EF8C|SS-V-ROAD-CURB|Polyline|closed=False v9:(2226428.76,1346135.26)(2226425.95,1346130.11)(2226422.97,1346123.01)(2226421.31,1346117.50)(2226419.66,1346111.99)(2226417.93,1346106.43)(2226416.81,1346101.71)(2226416.80,1346097.90)(2226417.20,1346094.86) 1EF8D|SS-V-ROAD-CURB|Polyline|closed=False v9:(2226429.64,1346134.78)(2226426.85,1346129.67)(2226423.91,1346122.67)(2226422.27,1346117.21)(2226420.61,1346111.69)(2226418.89,1346106.17)(2226417.81,1346101.59)(2226417.80,1346097.97)(2226418.20,1346094.99) 1EF96|SS-V-ROAD-CURB|Line|(2226418.18,1346094.63)-(2226445.98,1346086.82) 1EF97|SS-V-ROAD-CURB|Line|(2226420.61,1346103.29)-(2226424.46,1346102.21) 1EF98|SS-V-ROAD-CURB|Line|(2226424.67,1346117.73)-(2226428.52,1346116.65) 1EF99|SS-V-ROAD-CURB|Line|(2226424.67,1346117.73)-(2226420.61,1346103.29) 1EFC9|C-ANNO|NoteLabel|NoteLabel 1F38B|SS-V-ROAD-CURB|AlignedDimension|AlignedDimension 1F3A5|SS-V-ROAD-CURB|AlignedDimension|AlignedDimension 1F3BF|SS-V-ROAD-CURB|AlignedDimension|AlignedDimension 1F575|SS-V-ROAD-CURB|Line|(2226428.52,1346116.65)-(2226424.46,1346102.21) 1F576|SS-V-ROAD-CURB|Line|(2226422.64,1346110.51)-(2226426.49,1346109.43) 1F58C|SS-OUTSITEPROP|Line|(2226311.48,1346204.92)-(2226263.90,1346222.77) 1FD76|SS-BUFFER SETBACK|Line|(2226979.28,1346572.15)-(2226967.02,1346173.00) 2049D|SS-BUFFER SETBACK|Line|(2226962.30,1345972.99)-(2226957.82,1345827.11) 206AC|SS-BOUNDARY|Polyline|closed=True v4:(2227232.61,1346603.34)(2227166.09,1346509.88)(2227280.28,1346428.85)(2227346.80,1346522.31) 206AD|SS-BOUNDARY CYAN|Line|(2227232.61,1346603.34)-(2227166.09,1346509.88) 206AE|SS-BOUNDARY CYAN|Line|(2227232.61,1346603.34)-(2227346.80,1346522.31) 206B6|SS-BOUNDARY CYAN|Line|(2227166.09,1346509.88)-(2227280.28,1346428.85) 206BD|C-PROP-LINE|ParcelSegment|ParcelSegment 206BF|C-PROP-LINE-TEXT|ParcelSegmentLabel|ParcelSegmentLabel 206C0|C-PROP-LINE-TEXT|ParcelSegmentLabel|ParcelSegmentLabel 206C1|C-PROP-LINE-TEXT|ParcelSegmentLabel|ParcelSegmentLabel 206C2|C-PROP-LINE-TEXT|ParcelSegmentLabel|ParcelSegmentLabel 20737|C-ANNO|NoteLabel|NoteLabel 2075E|C-ANNO|NoteLabel|NoteLabel 20767|SS-BOUNDARY CYAN|Line|(2227346.80,1346522.31)-(2227280.28,1346428.85) 20768|SS-BUFFER SETBACK|Line|(2227314.21,1346545.51)-(2227265.05,1346476.44) 20769|SS-BUFFER SETBACK|Line|(2227183.45,1346534.34)-(2227265.05,1346476.44) 209FB|C-PROP-LINE|Polyline|closed=True v4:(2225443.14,1346018.10)(2225479.07,1346066.24)(2225342.83,1346167.92)(2225306.90,1346119.78) 209FE|BLOCK_LEGEND|Grading|Grading 209FF|BLOCK_LEGEND|Grading|Grading 20A00|BLOCK_LEGEND|Grading|Grading 20A01|BLOCK_LEGEND|Grading|Grading 20A02|BLOCK_LEGEND|Grading|Grading 20A03|BLOCK_LEGEND|Grading|Grading 20A04|BLOCK_LEGEND|Grading|Grading 20A05|BLOCK_LEGEND|Grading|Grading 20A06|BLOCK_LEGEND|Grading|Grading 20A07|BLOCK_LEGEND|Grading|Grading 20A08|BLOCK_LEGEND|Grading|Grading 20A09|BLOCK_LEGEND|Grading|Grading 20A0A|BLOCK_LEGEND|Grading|Grading 20A0B|BLOCK_LEGEND|Grading|Grading 20A0C|BLOCK_LEGEND|Grading|Grading 20A45|BLOCK_LEGEND|Grading|Grading 20A64|BLOCK_LEGEND|Parcel|Parcel 20AC0|SETBACK|Polyline|closed=True v4:(2225419.28,1346044.64)(2225446.79,1346081.51)(2225350.63,1346153.29)(2225323.11,1346116.42) 20AC2|BLDG-PROP|Polyline|closed=True v4:(2225411.85,1346056.43)(2225432.19,1346083.67)(2225370.48,1346129.73)(2225350.14,1346102.48) 20AC3|BLDG-PROP|Polyline|closed=True v4:(2225421.85,1346056.45)(2225435.01,1346074.08)(2225428.60,1346078.87)(2225415.44,1346061.24) 20AC5|DRIVE|Polyline|closed=True v4:(2225442.73,1346020.90)(2225447.52,1346027.31)(2225399.44,1346063.20)(2225394.65,1346056.79) 20AC7|SILT-FENCE|Polyline|closed=True v4:(2225440.72,1346024.89)(2225471.83,1346066.57)(2225348.41,1346158.68)(2225317.31,1346117.01) 20AC9|EROSION|Circle|ctr(2225445.06,1346054.10) r=9.30 20ACA|EROSION|Polyline|closed=True v4:(2225440.32,1346027.69)(2225446.30,1346035.71)(2225439.89,1346040.49)(2225433.91,1346032.48) 20ACB|EROSION|Polyline|closed=True v4:(2225432.30,1346033.67)(2225437.69,1346040.89)(2225431.28,1346045.67)(2225425.89,1346038.46) 20ACC|EROSION|Polyline|closed=True v4:(2225443.14,1346018.10)(2225450.32,1346027.72)(2225443.91,1346032.50)(2225436.73,1346022.89) 20ACD|SS-V-ROAD-CNTR|Polyline|closed=False v6:(2225240.01,1346120.97)(2225247.63,1346114.46)(2225258.24,1346104.96)(2225288.44,1346137.66)(2225341.72,1346193.88)(2225384.44,1346240.18) 20AD8|C-ANNO|MText|@(2225340.88,1346131.86) h=4.0 "15' B/L" 20AD9|C-ANNO|MText|@(2225381.00,1346076.96) h=4.0 "7' B/L" 20ADA|C-ANNO|MText|@(2225404.93,1346109.01) h=4.0 "7' B/L" 20ADB|C-ANNO|MText|@(2225388.36,1346095.17) h=5.0 "PROPOSED TWO / STOREY HOUSE" 20ADC|C-ANNO|MText|@(2225425.22,1346067.66) h=4.0 "PORCH" 20ADE|C-ANNO|MText|@(2225334.46,1346136.65) h=3.0 "SILT FENCE" 20ADF|C-ANNO|MText|@(2225445.06,1346054.10) h=3.0 "RAIN GARDEN / 272 SQ FT" 20AE0|C-ANNO|MText|@(2225440.10,1346034.09) h=2.5 "MATERIAL / STORAGE" 20AE1|C-ANNO|MText|@(2225431.49,1346039.27) h=2.5 "TEMPORARY / DUMPSTER" 20AE7|C-ANNO|MText|@(2225318.45,1346031.15) h=4.0 "LOT AREA / 0.234 ac / 10,212 SQ FT / F.A.R = 19.2%" 20AF0|C-ANNO|MText|@(2225340.88,1346131.86) h=4.0 "15' B/L" 20AF1|C-ANNO|MText|@(2225381.00,1346076.96) h=4.0 "7' B/L" 20AF3|C-ANNO|MText|@(2225388.36,1346095.17) h=5.0 "PROPOSED TWO / STOREY HOUSE" 20AF4|C-ANNO|MText|@(2225425.22,1346067.66) h=4.0 "PORCH" 20AF5|C-ANNO|MText|@(2225401.62,1346038.53) h=4.0 "PROPOSED CONCRETE / DRIVEWAY" 20AF6|C-ANNO|MText|@(2225334.46,1346136.65) h=3.0 "SILT FENCE" 20AFA|C-ANNO|MText|@(2225410.50,1345984.45) h=2.5 "TEMPORARY GRAVEL / CONSTRUCTION EXIT" 20AFB|C-ANNO|MText|@(2225315.08,1346165.77) h=6.0 "SAINT JOHNS AVENUE" 20AFC|C-ANNO|MText|@(2225500.64,1346014.96) h=3.0 "5'-0" CONCRETE SIDE WALK" 20AFD|C-ANNO|MText|@(2225507.85,1346010.24) h=3.0 "2'-0" AMENITY SPACE" 20AFE|C-ANNO|MText|@(2225438.23,1346137.83) h=4.0 "N/F / WESLEY G KELLEY / 362 SAINT JOHNS AVENUE / DB 29746, PG 407" 20B00|C-ANNO|MText|@(2225327.77,1346055.41) h=3.0 "UNHEATED AREA / PORCH = 151 Sq.ft / GARAGE = 672 Sq.ft / TOTAL = 823 Sq.ft" 20B11|SS-V-ROAD-EPVM|Line|(2225295.73,1346128.21)-(2225392.82,1346230.85) 20B12|SS-V-ROAD-EPVM|Line|(2225279.54,1346145.28)-(2225332.29,1346201.71) 20B13|SS-V-ROAD-EPVM|Line|(2225332.29,1346201.71)-(2225377.48,1346249.71) 20B2A|SS-V-DRIVE|Polyline|closed=True v13:(2225450.24,1346089.62)(2225430.49,1346108.32)(2225379.67,1346153.50)(2225354.83,1346172.64)(2225353.28,1346177.84)(2225352.84,1346188.46)(2225336.95,1346172.28)(2225347.10,1346171.49)(2225352.71,1346170.26)(2225373.64,1346147.11)(2225414.20,1346108.58)(2225419.98,1346103.02)(2225438.73,1346076.02) SNAPSHOT: 176 entities
Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.