C3D-0298 · 260610 Tara Blvd: read all area labels and measure the geometry done
READ-ONLY. Lists every label mentioning SQ FT / ACRES / SF in any space, then the measured area of every closed model-space polyline and every Civil parcel, so each label can be checked against real geometry.
C# payload
// READ-ONLY: every label mentioning an area (SQ FT / ACRES / SF), plus the measured area of every
// closed polyline and Civil parcel, so each label can be checked against real geometry.
Log("drawing: " + Db.Filename);
var bt = (BlockTable)Tx.GetObject(Db.BlockTableId, OpenMode.ForRead);
Log("=== AREA LABELS (all spaces) ===");
foreach (ObjectId btrId in bt) {
var rec = (BlockTableRecord)Tx.GetObject(btrId, OpenMode.ForRead);
string where = rec.Name;
if (rec.IsLayout) { var l = (Layout)Tx.GetObject(rec.LayoutId, OpenMode.ForRead); where = "LAYOUT " + l.LayoutName; }
foreach (ObjectId id in rec) {
var ent = Tx.GetObject(id, OpenMode.ForRead) as Autodesk.AutoCAD.DatabaseServices.Entity;
if (ent == null) continue;
string txt = null; double x=0,y=0;
var dt = ent as DBText; if (dt != null) { txt = dt.TextString; x=dt.Position.X; y=dt.Position.Y; }
var mt = ent as MText; if (mt != null) { txt = mt.Contents; x=mt.Location.X; y=mt.Location.Y; }
if (txt == null) continue;
string up = txt.ToUpper();
if (!(up.Contains("SQ FT") || up.Contains("SQ. FT") || up.Contains("ACRE") || up.Contains("SQFT") || up.Contains(" SF"))) continue;
Log(string.Format("[{0}] {1,-18} layer={2,-26} ({3:F2},{4:F2}) \"{5}\"",
ent.Handle, where, ent.Layer, x, y, txt.Replace("\n"," / ")));
}
}
Log("");
Log("=== CLOSED POLYLINES, measured (model space) ===");
var ms = (BlockTableRecord)Tx.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(Db), OpenMode.ForRead);
foreach (ObjectId id in ms) {
var pl = Tx.GetObject(id, OpenMode.ForRead) as Polyline;
if (pl == null || !pl.Closed) continue;
if (pl.Area < 1.0) continue;
var e = pl.GeometricExtents;
Log(string.Format("[{0}] layer={1,-26} verts={2,2} per={3:F2} AREA={4:F2} sf ({5:F4} ac) centre ({6:F1},{7:F1})",
pl.Handle, pl.Layer, pl.NumberOfVertices, pl.Length, pl.Area, pl.Area/43560.0,
(e.MinPoint.X+e.MaxPoint.X)/2, (e.MinPoint.Y+e.MaxPoint.Y)/2));
}
Log("");
Log("=== CIVIL PARCELS ===");
var cdoc = CivilApplication.ActiveDocument;
foreach (ObjectId sid in cdoc.GetSiteIds()) {
var site = (Site)Tx.GetObject(sid, OpenMode.ForRead);
foreach (ObjectId pid in site.GetParcelIds()) {
var par = (Parcel)Tx.GetObject(pid, OpenMode.ForRead);
Log(string.Format("SITE \"{0}\" / PARCEL \"{1}\" [{2}] AREA={3:F2} sf ({4:F4} ac) layer={5}",
site.Name, par.Name, par.Handle, par.Area, par.Area/43560.0, par.Layer));
}
}
Result
Log
drawing: C:\Users\sanja\OneDrive\_SurveyDisco\260610 - 6736 Tara Blvd, Jonesboro, GA 30236, USA\260610 - 6736 Tara Blvd R2.dwg
=== AREA LABELS (all spaces) ===
[21991] LAYOUT 11X17 layer=WALL (11.34,5.94) "Fresh Fruits & Vegetables 0.00%\PFresh Uncooked Meats, seafood, poultry 0.00%\PDairy Products 0.00%\PCanned Foods 0.00%\PFrozen Foods 0.00%\PDry groceries and baked goods 0.00%\PNon-Alcoholic beverages 1.8% 36.5 SQFT"
[21B1E] LAYOUT 11X17 layer=WALL (2.95,8.60) "SELLING AREA 1476 SQFT"
[96E8] A$C7a6e61a3 layer=C-ANNO (-5.75,1.35) "TRACT "A"\P0.51 ACRES"
[143E6] A$C3840e5d8 layer=BLOCK_TB2 (-227.65,-164.50) "0.87 ACRES"
[14528] A$C3840e5d8 layer=SS-BOUNDARY (32.34,178.41) "\pxqc;{\LSITE INFORMATION\P}\P\pq*;JURISDICTION: CITY OF JOHNS CREEK\PPARCEL ID NO.: 11 055002300102\PPROPOSED ZONING: R-4 SINGLE-FAMILY DWELLING\POVERLAY DISTRICT: N/A\PFLOOD ZONE CLASSIFICATION: X\P\P\pqc;{\LSETBACK & BUFFERS\P}BUILDING SETBACKS\P\P\pq*;FRONT: 35 FT\PREAR: 25 FT\PSIDE: 7 FT\PLANDSCAPE STRIP: 40 FT (ALONG ABBOTTS BRIDGE ROAD) \P\P\pqc;{\LSITE AREA CALCULATIONS\P}\P\pq*;SITE: {\Fsimplex|c0;\C4;±}0.87 AC/{\Fsimplex|c0;\C4; }37,779.18 SF\PBUILDABLE AREA: {\Fsimplex|c0;\C4;±}0.69 AC/ 29933.18 SF\PUNBUILDABLE AREA: {\Fsimplex|c0;\C4;±}0.18 AC{\Fsimplex|c0;\C4;/ }7846.00 SF\PMINIMUM LOT SIZE: 9000 SF\PSubdivision\~Density: 2 LOTS/0.87\~AC ≈ 2.30\~lots\~per\~acre / \P\pqc;{\LBASE INFORMATION\P}\P\pq*;NO PORTION OF THIS PROPERTY IS LOCATED IN A SPECIAL FLOOD AREA AS PER F.I.R.M. MAP NO. {\Fsimplex|c0;13121C0087 F, DATED\PSEPTEMBER 18th 2013, ZONE "X".\P} \PBASE CONDITIONS PROVIDED BY SAWHNEY ASSOCIATES, DATED 6/21/2024\P\P\pqc;{\LPROPOSED VARIANCES\P\pq*;}\P1. Variance to remove 10% open space requirement under section 12.E3 subsection A of the City of Johns Creek building ordinance"
[1E7BA] LAYOUT HOUSEDIM layer=BLOCK_TB2 (0.70,1.99) "0.25 ACRES"
=== CLOSED POLYLINES, measured (model space) ===
[21B0C] layer=SHELV-TEST verts=11 per=159.01 AREA=1476.30 sf (0.0339 ac) centre (2261083.4,1391836.4)
=== CIVIL PARCELS ===Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.