C3D-260619-R1 · Redline 1 - Tract A area from the new line rejected
Builds a closed Polyline from the five SS-HERO TRACT A boundary lines and reports the area: 55,248.99 sq ft = 1.2683 acres (clears the 1.00 ac AG-1/septic minimum). Plain polyline, not a Parcel. Flags a 70.03 ft open gap at the SE corner that should be resolved before recording.
C# payload
// REDLINE #1 - reset the Tract "A" area to the NEW line.
// The sheet still shows the OLD areas (0.99 / 3.31 ac). Per the redline, Tract "A" must be
// >= 1.00 ac (AG-1 zoning + septic).
//
// Built from the five SS-HERO TRACT A boundary lines read out of the drawing (the zero-length
// stray 2273B is ignored). Chained end-to-end they leave a 70.03 ft OPEN GAP between
// (2166803.73,1330437.52) and (2166819.33,1330505.79) - the south-east corner is not closed in
// the model. This closes the ring directly across that gap to compute an area.
//
// A plain closed Polyline is used deliberately - NOT a Civil 3D Parcel - because all that is
// needed here is square footage and acreage.
//
// computed area = 55,248.99 SQ FT = 1.2683 ACRES (clears the 1.00 ac minimum)
//
// NOTE: the 70.03 ft closure gap should be resolved before this area is relied on for recording.
// ADDS ONLY - the old area text is left in place for comparison. Host owns Tx; host regens.
const string LAYER = "SS-HERO TRACT A";
var ms = (BlockTableRecord)Tx.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(Db), OpenMode.ForWrite);
EnsureLayer(LAYER, 5);
var pl = new Polyline();
pl.AddVertexAt(0, new Point2d(2166819.33, 1330505.79), 0, 0, 0);
pl.AddVertexAt(1, new Point2d(2166868.33, 1330720.27), 0, 0, 0);
pl.AddVertexAt(2, new Point2d(2166658.33, 1330720.29), 0, 0, 0);
pl.AddVertexAt(3, new Point2d(2166619.5, 1330513.91), 0, 0, 0);
pl.AddVertexAt(4, new Point2d(2166609.9, 1330462.9), 0, 0, 0);
pl.AddVertexAt(5, new Point2d(2166803.73, 1330437.52), 0, 0, 0);
pl.Closed = true;
pl.Layer = LAYER;
ms.AppendEntity(pl);
Tx.AddNewlyCreatedDBObject(pl, true);
double sf = pl.Area;
double ac = sf / 43560.0;
Log("closed Tract A polyline: " + pl.NumberOfVertices + " verts, perimeter " +
pl.Length.ToString("F2") + " ft");
Log("AREA = " + sf.ToString("N2") + " SQ FT = " + ac.ToString("F4") + " ACRES" +
(ac >= 1.0 ? " (>= 1.00 ac - OK)" : " (BELOW 1.00 ac)"));
var mt = new MText {
Location = new Point3d(2166729.85, 1330560.11, 0.0),
Contents = @"TRACT "A"\P55,248.99 SQ FT\P1.27 ACRES",
TextHeight = 5.0,
Attachment = AttachmentPoint.MiddleCenter,
};
mt.Layer = LAYER;
ms.AppendEntity(mt);
Tx.AddNewlyCreatedDBObject(mt, true);
Log("area label placed at centroid (" + 2166729.85 + "," + 1330560.11 + ") handle=" + mt.Handle);
Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.