← Inbox

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.

Script file
C3D-260619-R1.cs
Target
260619 · model space
Author
claude
Approved
no
Timeout
60s

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.