C3D-0210 · 260714 Huckaby: survey linework - 15 polylines from 160 points done
Draws all linework from the COGO points per recipe survey-linework v0.3.0. CL (straight, 458ft), EP, driveway (2 edges + apron), 2 sidewalk runs, 2 curved wall arcs (R~16), well house closed, conc pad closed, deck, HL, FL. Max 12 verts/polyline, 0 crossings verified. Creates 7 layers if absent. Verifies each polyline on read-back, regen last.
C# payload
// 260714 - 285 Huckaby Rd : survey linework from the 160 COGO points.
// Geometry derived from the point coordinates (recipe survey-linework v0.3.0).
// Max 12 vertices per polyline. Zero crossings verified before posting.
var lt = (LayerTable)Tx.GetObject(Db.LayerTableId, OpenMode.ForWrite);
var ms = (BlockTableRecord)Tx.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(Db), OpenMode.ForWrite);
Action<string,short> ensure = (nm, col) => {
if (lt.Has(nm)) return;
var ltr = new LayerTableRecord(); ltr.Name = nm;
ltr.Color = Autodesk.AutoCAD.Colors.Color.FromColorIndex(Autodesk.AutoCAD.Colors.ColorMethod.ByAci, col);
lt.Add(ltr); Tx.AddNewlyCreatedDBObject(ltr, true);
Log("layer created: " + nm);
};
ensure("SS-V-ROAD-CNTR", 4);
ensure("SS-V-ROAD-EPVM", 3);
ensure("X-DRIV-CONC", 2);
ensure("SS-V-WALK", 6);
ensure("V-STRC-WALL", 1);
ensure("SS-V-BLDG-OTLN", 7);
ensure("SS-V-BRKL-TOP", 5);
int made = 0; double totalLen = 0;
// ---- CL : 10 pts on SS-V-ROAD-CNTR
{
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2206420.8670, 1207345.7709), 0.000000, 0, 0);
pl.AddVertexAt(1, new Point2d(2206419.7892, 1207305.1621), 0.000000, 0, 0);
pl.AddVertexAt(2, new Point2d(2206418.9234, 1207267.6911), 0.000000, 0, 0);
pl.AddVertexAt(3, new Point2d(2206417.2310, 1207207.3896), 0.000000, 0, 0);
pl.AddVertexAt(4, new Point2d(2206415.0541, 1207135.8184), 0.000000, 0, 0);
pl.AddVertexAt(5, new Point2d(2206413.4903, 1207092.5632), 0.000000, 0, 0);
pl.AddVertexAt(6, new Point2d(2206413.2256, 1207086.5289), 0.000000, 0, 0);
pl.AddVertexAt(7, new Point2d(2206411.4759, 1207040.7702), 0.000000, 0, 0);
pl.AddVertexAt(8, new Point2d(2206409.8610, 1206994.5094), 0.000000, 0, 0);
pl.AddVertexAt(9, new Point2d(2206406.5422, 1206888.3348), 0.000000, 0, 0);
pl.Layer = "SS-V-ROAD-CNTR";
ms.AppendEntity(pl); Tx.AddNewlyCreatedDBObject(pl, true);
var back = (Polyline)Tx.GetObject(pl.ObjectId, OpenMode.ForRead);
Log(string.Format("CL: {0} verts, len {1:F2}, layer {2} (verified)", back.NumberOfVertices, back.Length, back.Layer));
made++; totalLen += back.Length;
}
// ---- EP-1 : 4 pts on SS-V-ROAD-EPVM
{
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2206410.1660, 1207386.4867), 0.000000, 0, 0);
pl.AddVertexAt(1, new Point2d(2206407.9339, 1207303.2421), 0.000000, 0, 0);
pl.AddVertexAt(2, new Point2d(2206405.9623, 1207225.4399), 0.000000, 0, 0);
pl.AddVertexAt(3, new Point2d(2206402.7015, 1207124.2562), 0.000000, 0, 0);
pl.Layer = "SS-V-ROAD-EPVM";
ms.AppendEntity(pl); Tx.AddNewlyCreatedDBObject(pl, true);
var back = (Polyline)Tx.GetObject(pl.ObjectId, OpenMode.ForRead);
Log(string.Format("EP-1: {0} verts, len {1:F2}, layer {2} (verified)", back.NumberOfVertices, back.Length, back.Layer));
made++; totalLen += back.Length;
}
// ---- DWY-W1 : 7 pts on X-DRIV-CONC
{
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2206399.6902, 1207049.6486), 0.000000, 0, 0);
pl.AddVertexAt(1, new Point2d(2206392.2984, 1207085.2089), 0.000000, 0, 0);
pl.AddVertexAt(2, new Point2d(2206381.5225, 1207084.3777), 0.000000, 0, 0);
pl.AddVertexAt(3, new Point2d(2206369.2699, 1207087.2697), 0.000000, 0, 0);
pl.AddVertexAt(4, new Point2d(2206355.5677, 1207096.3742), 0.000000, 0, 0);
pl.AddVertexAt(5, new Point2d(2206342.2586, 1207111.3649), 0.000000, 0, 0);
pl.AddVertexAt(6, new Point2d(2206333.4278, 1207125.8939), 0.000000, 0, 0);
pl.Layer = "X-DRIV-CONC";
ms.AppendEntity(pl); Tx.AddNewlyCreatedDBObject(pl, true);
var back = (Polyline)Tx.GetObject(pl.ObjectId, OpenMode.ForRead);
Log(string.Format("DWY-W1: {0} verts, len {1:F2}, layer {2} (verified)", back.NumberOfVertices, back.Length, back.Layer));
made++; totalLen += back.Length;
}
// ---- DWY-W2 : 7 pts on X-DRIV-CONC
{
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2206333.4278, 1207125.8939), 0.000000, 0, 0);
pl.AddVertexAt(1, new Point2d(2206321.4122, 1207147.3262), 0.000000, 0, 0);
pl.AddVertexAt(2, new Point2d(2206313.3775, 1207158.7039), 0.000000, 0, 0);
pl.AddVertexAt(3, new Point2d(2206300.7738, 1207168.4374), 0.000000, 0, 0);
pl.AddVertexAt(4, new Point2d(2206285.6309, 1207173.7149), 0.000000, 0, 0);
pl.AddVertexAt(5, new Point2d(2206273.7366, 1207175.6589), 0.000000, 0, 0);
pl.AddVertexAt(6, new Point2d(2206237.1490, 1207178.4162), 0.000000, 0, 0);
pl.Layer = "X-DRIV-CONC";
ms.AppendEntity(pl); Tx.AddNewlyCreatedDBObject(pl, true);
var back = (Polyline)Tx.GetObject(pl.ObjectId, OpenMode.ForRead);
Log(string.Format("DWY-W2: {0} verts, len {1:F2}, layer {2} (verified)", back.NumberOfVertices, back.Length, back.Layer));
made++; totalLen += back.Length;
}
// ---- DWY-E : 7 pts on X-DRIV-CONC
{
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2206372.6936, 1207071.0846), 0.000000, 0, 0);
pl.AddVertexAt(1, new Point2d(2206353.4893, 1207082.7855), 0.000000, 0, 0);
pl.AddVertexAt(2, new Point2d(2206339.8325, 1207095.4334), 0.000000, 0, 0);
pl.AddVertexAt(3, new Point2d(2206326.9381, 1207113.4334), 0.000000, 0, 0);
pl.AddVertexAt(4, new Point2d(2206311.1508, 1207141.5681), 0.000000, 0, 0);
pl.AddVertexAt(5, new Point2d(2206300.6538, 1207153.6856), 0.000000, 0, 0);
pl.AddVertexAt(6, new Point2d(2206293.5533, 1207157.1265), 0.000000, 0, 0);
pl.Layer = "X-DRIV-CONC";
ms.AppendEntity(pl); Tx.AddNewlyCreatedDBObject(pl, true);
var back = (Polyline)Tx.GetObject(pl.ObjectId, OpenMode.ForRead);
Log(string.Format("DWY-E: {0} verts, len {1:F2}, layer {2} (verified)", back.NumberOfVertices, back.Length, back.Layer));
made++; totalLen += back.Length;
}
// ---- DWY-APRON : 11 pts on X-DRIV-CONC
{
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2206236.3801, 1207158.6556), 0.000000, 0, 0);
pl.AddVertexAt(1, new Point2d(2206242.7386, 1207158.5574), 0.000000, 0, 0);
pl.AddVertexAt(2, new Point2d(2206248.5421, 1207157.3208), 0.000000, 0, 0);
pl.AddVertexAt(3, new Point2d(2206252.5541, 1207153.9320), 0.000000, 0, 0);
pl.AddVertexAt(4, new Point2d(2206254.4513, 1207148.6538), 0.000000, 0, 0);
pl.AddVertexAt(5, new Point2d(2206254.8005, 1207143.7493), 0.000000, 0, 0);
pl.AddVertexAt(6, new Point2d(2206270.5498, 1207144.4508), 0.000000, 0, 0);
pl.AddVertexAt(7, new Point2d(2206272.7090, 1207148.9475), 0.000000, 0, 0);
pl.AddVertexAt(8, new Point2d(2206276.3657, 1207153.6980), 0.000000, 0, 0);
pl.AddVertexAt(9, new Point2d(2206279.8762, 1207156.2311), 0.000000, 0, 0);
pl.AddVertexAt(10, new Point2d(2206284.5624, 1207157.7086), 0.000000, 0, 0);
pl.Layer = "X-DRIV-CONC";
ms.AppendEntity(pl); Tx.AddNewlyCreatedDBObject(pl, true);
var back = (Polyline)Tx.GetObject(pl.ObjectId, OpenMode.ForRead);
Log(string.Format("DWY-APRON: {0} verts, len {1:F2}, layer {2} (verified)", back.NumberOfVertices, back.Length, back.Layer));
made++; totalLen += back.Length;
}
// ---- SW-1 : 11 pts on SS-V-WALK
{
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2206289.2644, 1207109.5121), 0.000000, 0, 0);
pl.AddVertexAt(1, new Point2d(2206287.6531, 1207105.2280), 0.000000, 0, 0);
pl.AddVertexAt(2, new Point2d(2206284.7855, 1207102.7816), 0.000000, 0, 0);
pl.AddVertexAt(3, new Point2d(2206279.8539, 1207100.9460), 0.000000, 0, 0);
pl.AddVertexAt(4, new Point2d(2206277.6702, 1207100.8526), 0.000000, 0, 0);
pl.AddVertexAt(5, new Point2d(2206277.5286, 1207108.8927), 0.000000, 0, 0);
pl.AddVertexAt(6, new Point2d(2206280.1592, 1207108.8339), 0.000000, 0, 0);
pl.AddVertexAt(7, new Point2d(2206282.5429, 1207109.1993), 0.000000, 0, 0);
pl.AddVertexAt(8, new Point2d(2206284.3821, 1207110.8296), 0.000000, 0, 0);
pl.AddVertexAt(9, new Point2d(2206285.4843, 1207115.3007), 0.000000, 0, 0);
pl.AddVertexAt(10, new Point2d(2206289.5922, 1207115.4410), 0.000000, 0, 0);
pl.Layer = "SS-V-WALK";
ms.AppendEntity(pl); Tx.AddNewlyCreatedDBObject(pl, true);
var back = (Polyline)Tx.GetObject(pl.ObjectId, OpenMode.ForRead);
Log(string.Format("SW-1: {0} verts, len {1:F2}, layer {2} (verified)", back.NumberOfVertices, back.Length, back.Layer));
made++; totalLen += back.Length;
}
// ---- SW-2 : 5 pts on SS-V-WALK
{
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2206284.6749, 1207146.2741), 0.000000, 0, 0);
pl.AddVertexAt(1, new Point2d(2206288.5741, 1207146.7994), 0.000000, 0, 0);
pl.AddVertexAt(2, new Point2d(2206288.3726, 1207150.0435), 0.000000, 0, 0);
pl.AddVertexAt(3, new Point2d(2206287.2151, 1207153.1632), 0.000000, 0, 0);
pl.AddVertexAt(4, new Point2d(2206283.5581, 1207151.6742), 0.000000, 0, 0);
pl.Layer = "SS-V-WALK";
ms.AppendEntity(pl); Tx.AddNewlyCreatedDBObject(pl, true);
var back = (Polyline)Tx.GetObject(pl.ObjectId, OpenMode.ForRead);
Log(string.Format("SW-2: {0} verts, len {1:F2}, layer {2} (verified)", back.NumberOfVertices, back.Length, back.Layer));
made++; totalLen += back.Length;
}
// ---- WALL-A : 5 pts on V-STRC-WALL (ARC)
{
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2206382.1304, 1207034.9118), -0.186999, 0, 0);
pl.AddVertexAt(1, new Point2d(2206384.8948, 1207037.6108), -0.197398, 0, 0);
pl.AddVertexAt(2, new Point2d(2206385.5843, 1207049.5037), -0.148791, 0, 0);
pl.AddVertexAt(3, new Point2d(2206377.4540, 1207058.7426), -0.148791, 0, 0);
pl.AddVertexAt(4, new Point2d(2206364.7097, 1207062.1098), 0.000000, 0, 0);
pl.Layer = "V-STRC-WALL";
ms.AppendEntity(pl); Tx.AddNewlyCreatedDBObject(pl, true);
var back = (Polyline)Tx.GetObject(pl.ObjectId, OpenMode.ForRead);
Log(string.Format("WALL-A: {0} verts, len {1:F2}, layer {2} (verified)", back.NumberOfVertices, back.Length, back.Layer));
made++; totalLen += back.Length;
}
// ---- WALL-B : 6 pts on V-STRC-WALL (ARC)
{
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2206370.4987, 1207106.5455), -0.146372, 0, 0);
pl.AddVertexAt(1, new Point2d(2206379.4440, 1207105.3529), -0.213849, 0, 0);
pl.AddVertexAt(2, new Point2d(2206384.5831, 1207107.8279), -0.086818, 0, 0);
pl.AddVertexAt(3, new Point2d(2206387.2033, 1207116.9650), -0.091727, 0, 0);
pl.AddVertexAt(4, new Point2d(2206386.4167, 1207128.6645), -0.091727, 0, 0);
pl.AddVertexAt(5, new Point2d(2206384.3077, 1207133.2267), 0.000000, 0, 0);
pl.Layer = "V-STRC-WALL";
ms.AppendEntity(pl); Tx.AddNewlyCreatedDBObject(pl, true);
var back = (Polyline)Tx.GetObject(pl.ObjectId, OpenMode.ForRead);
Log(string.Format("WALL-B: {0} verts, len {1:F2}, layer {2} (verified)", back.NumberOfVertices, back.Length, back.Layer));
made++; totalLen += back.Length;
}
// ---- WELLHOUSE : 4 pts on SS-V-BLDG-OTLN
{
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2206223.7306, 1207216.5153), 0.000000, 0, 0);
pl.AddVertexAt(1, new Point2d(2206221.0654, 1207211.0704), 0.000000, 0, 0);
pl.AddVertexAt(2, new Point2d(2206226.4765, 1207208.3797), 0.000000, 0, 0);
pl.AddVertexAt(3, new Point2d(2206229.1293, 1207213.6401), 0.000000, 0, 0);
pl.Layer = "SS-V-BLDG-OTLN";
pl.Closed = true;
ms.AppendEntity(pl); Tx.AddNewlyCreatedDBObject(pl, true);
var back = (Polyline)Tx.GetObject(pl.ObjectId, OpenMode.ForRead);
Log(string.Format("WELLHOUSE: {0} verts, len {1:F2}, layer {2} (verified)", back.NumberOfVertices, back.Length, back.Layer));
made++; totalLen += back.Length;
}
// ---- CONC-PAD : 3 pts on X-DRIV-CONC
{
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2206224.2032, 1207123.6027), 0.000000, 0, 0);
pl.AddVertexAt(1, new Point2d(2206224.5187, 1207128.7679), 0.000000, 0, 0);
pl.AddVertexAt(2, new Point2d(2206218.5570, 1207128.6297), 0.000000, 0, 0);
pl.Layer = "X-DRIV-CONC";
pl.Closed = true;
ms.AppendEntity(pl); Tx.AddNewlyCreatedDBObject(pl, true);
var back = (Polyline)Tx.GetObject(pl.ObjectId, OpenMode.ForRead);
Log(string.Format("CONC-PAD: {0} verts, len {1:F2}, layer {2} (verified)", back.NumberOfVertices, back.Length, back.Layer));
made++; totalLen += back.Length;
}
// ---- DECK : 3 pts on SS-V-BLDG-OTLN
{
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2206226.6202, 1207090.6574), 0.000000, 0, 0);
pl.AddVertexAt(1, new Point2d(2206218.8787, 1207090.7583), 0.000000, 0, 0);
pl.AddVertexAt(2, new Point2d(2206218.6125, 1207119.2414), 0.000000, 0, 0);
pl.Layer = "SS-V-BLDG-OTLN";
ms.AppendEntity(pl); Tx.AddNewlyCreatedDBObject(pl, true);
var back = (Polyline)Tx.GetObject(pl.ObjectId, OpenMode.ForRead);
Log(string.Format("DECK: {0} verts, len {1:F2}, layer {2} (verified)", back.NumberOfVertices, back.Length, back.Layer));
made++; totalLen += back.Length;
}
// ---- HL : 4 pts on SS-V-BLDG-OTLN
{
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2206268.5400, 1207059.1019), 0.000000, 0, 0);
pl.AddVertexAt(1, new Point2d(2206268.3406, 1207068.9521), 0.000000, 0, 0);
pl.AddVertexAt(2, new Point2d(2206285.1218, 1207091.2759), 0.000000, 0, 0);
pl.AddVertexAt(3, new Point2d(2206293.8958, 1207091.3785), 0.000000, 0, 0);
pl.Layer = "SS-V-BLDG-OTLN";
ms.AppendEntity(pl); Tx.AddNewlyCreatedDBObject(pl, true);
var back = (Polyline)Tx.GetObject(pl.ObjectId, OpenMode.ForRead);
Log(string.Format("HL: {0} verts, len {1:F2}, layer {2} (verified)", back.NumberOfVertices, back.Length, back.Layer));
made++; totalLen += back.Length;
}
// ---- FL : 3 pts on SS-V-BRKL-TOP
{
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2203444.1324, 1207088.0897), 0.000000, 0, 0);
pl.AddVertexAt(1, new Point2d(2203441.8710, 1207062.4652), 0.000000, 0, 0);
pl.AddVertexAt(2, new Point2d(2203440.4981, 1207033.1350), 0.000000, 0, 0);
pl.Layer = "SS-V-BRKL-TOP";
ms.AppendEntity(pl); Tx.AddNewlyCreatedDBObject(pl, true);
var back = (Polyline)Tx.GetObject(pl.ObjectId, OpenMode.ForRead);
Log(string.Format("FL: {0} verts, len {1:F2}, layer {2} (verified)", back.NumberOfVertices, back.Length, back.Layer));
made++; totalLen += back.Length;
}
Log(string.Format("DONE: {0} polylines, {1:F1} ft total", made, totalLen));
Ed.Regen();Result
Log
layer created: SS-V-WALK CL: 10 verts, len 457.66, layer SS-V-ROAD-CNTR (verified) EP-1: 4 verts, len 262.34, layer SS-V-ROAD-EPVM (verified) DWY-W1: 7 verts, len 113.22, layer X-DRIV-CONC (verified) DWY-W2: 7 verts, len 119.20, layer X-DRIV-CONC (verified) DWY-E: 7 verts, len 119.43, layer X-DRIV-CONC (verified) DWY-APRON: 11 verts, len 64.06, layer X-DRIV-CONC (verified) SW-1: 11 verts, len 40.05, layer SS-V-WALK (verified) SW-2: 5 verts, len 14.46, layer SS-V-WALK (verified) WALL-A: 5 verts, len 42.04, layer V-STRC-WALL (verified) WALL-B: 6 verts, len 41.43, layer V-STRC-WALL (verified) WELLHOUSE: 4 verts, len 24.11, layer SS-V-BLDG-OTLN (verified) CONC-PAD: 3 verts, len 18.70, layer X-DRIV-CONC (verified) DECK: 3 verts, len 36.23, layer SS-V-BLDG-OTLN (verified) HL: 4 verts, len 46.55, layer SS-V-BLDG-OTLN (verified) FL: 3 verts, len 55.09, layer SS-V-BRKL-TOP (verified) DONE: 15 polylines, 1454.6 ft total
Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.