C3D-0214 · 260714 Huckaby: porch, deck, step, fence done
Finishes the remaining real features. PORCH = 1.3-1.4 ft strip along the house east wall, closed against it. DECK = 8.3 ft off the west wall, closed back to the wall at 153. STEP open. FENCE (FC 404-405, 23.1 ft) on SS-X-FENCE WOOD. Remaining unused points are duplicate re-shots (600-622 SW, 174-180 DWY) and single-shot items (PP, WV, GAS, IPF, TML, OTP, ACX2, CLEAN OUT) which are not paths. Verifies on read-back, regen last.
C# payload
// 260714 - remaining features: porch, deck, step, fence.
// PORCH is a 1.3-1.4 ft strip along the house east wall, closed against the wall.
// DECK is 8.3 ft deep off the west wall, closed back to the wall at 153.
// Strips legitimately have a high perimeter^2/area - the building gate does not apply.
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-X-FENCE WOOD", 32);
int made = 0;
// ---- PORCH
{
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2206275.7983, 1207119.7518), 0, 0, 0);
pl.AddVertexAt(1, new Point2d(2206276.0399, 1207084.9315), 0, 0, 0);
pl.AddVertexAt(2, new Point2d(2206266.3514, 1207084.9315), 0, 0, 0);
pl.AddVertexAt(3, new Point2d(2206276.9943, 1207119.7518), 0, 0, 0);
pl.Closed = true;
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("PORCH: {0} verts, len {1:F2}, closed={2}, layer {3} (verified)", back.NumberOfVertices, back.Length, back.Closed, back.Layer));
made++;
}
// ---- DECK
{
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2206226.6202, 1207090.6574), 0, 0, 0);
pl.AddVertexAt(1, new Point2d(2206218.8787, 1207090.7583), 0, 0, 0);
pl.AddVertexAt(2, new Point2d(2206218.6125, 1207119.2414), 0, 0, 0);
pl.AddVertexAt(3, new Point2d(2206225.1397, 1207119.2414), 0, 0, 0);
pl.Closed = true;
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}, closed={2}, layer {3} (verified)", back.NumberOfVertices, back.Length, back.Closed, back.Layer));
made++;
}
// ---- STEP
{
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2206218.6125, 1207119.2414), 0, 0, 0);
pl.AddVertexAt(1, new Point2d(2206218.3933, 1207124.4941), 0, 0, 0);
pl.AddVertexAt(2, new Point2d(2206221.9402, 1207124.5219), 0, 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("STEP: {0} verts, len {1:F2}, closed={2}, layer {3} (verified)", back.NumberOfVertices, back.Length, back.Closed, back.Layer));
made++;
}
// ---- FENCE
{
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2203469.8780, 1207294.4074), 0, 0, 0);
pl.AddVertexAt(1, new Point2d(2203468.8465, 1207317.5135), 0, 0, 0);
pl.Layer = "SS-X-FENCE WOOD";
ms.AppendEntity(pl); Tx.AddNewlyCreatedDBObject(pl, true);
var back = (Polyline)Tx.GetObject(pl.ObjectId, OpenMode.ForRead);
Log(string.Format("FENCE: {0} verts, len {1:F2}, closed={2}, layer {3} (verified)", back.NumberOfVertices, back.Length, back.Closed, back.Layer));
made++;
}
Log("DONE: " + made + " polylines");
Ed.Regen();Result
Log
PORCH: 4 verts, len 82.12, closed=True, layer SS-V-BLDG-OTLN (verified) DECK: 4 verts, len 71.38, closed=True, layer SS-V-BLDG-OTLN (verified) STEP: 3 verts, len 8.80, closed=False, layer SS-V-BLDG-OTLN (verified) FENCE: 2 verts, len 23.13, closed=False, layer SS-X-FENCE WOOD (verified) DONE: 4 polylines
Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.