← Inbox

C3D-INSP619B · Which 2 tracts are subject + neighbors (read-only) done

Parcel centroids + tract/N-F adjoiner/road labels with positions, to identify the 2 subject tracts and their adjoiners.

Script file
C3D-INSP619B.cs
Target
active document · model space
Author
claude
Approved
yes · claude (read-only)
Timeout
60s

C# payload

// READ-ONLY: which tracts are the SUBJECT (2 of them) and who are the neighbors.
// - each Parcel: number, name, area, centroid
// - each tract-area text label + its position
// - each N/F adjoiner label + position (so we can match neighbor -> which tract it abuts)
// - the "subject"/"boundary line" style hints
using System;
using System.Linq;
using System.Collections.Generic;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.Civil.ApplicationServices;
using Autodesk.Civil.DatabaseServices;

var db = Db;
Log($"ACTIVE: {System.IO.Path.GetFileName(Doc.Name)}");

// parcels with centroid
using (var tr = db.TransactionManager.StartTransaction())
{
    var cdoc = CivilDocument.GetCivilDocument(db);
    foreach (ObjectId sid in cdoc.GetSiteIds())
    {
        var site = (Site)tr.GetObject(sid, OpenMode.ForRead);
        foreach (ObjectId pid in site.GetParcelIds())
        {
            var p = (Parcel)tr.GetObject(pid, OpenMode.ForRead);
            string c="?";
            try { var e=p.GeometricExtents; c=$"({(e.MinPoint.X+e.MaxPoint.X)/2:0.0},{(e.MinPoint.Y+e.MaxPoint.Y)/2:0.0})"; } catch {}
            Log($"PARCEL #{p.Number} '{p.Name}' {p.Area/43560.0:0.000}ac centroid={c} style='{p.StyleName}'");
        }
    }
    tr.Commit();
}

// all text labels of interest with position
using (var tr = db.TransactionManager.StartTransaction())
{
    var ms = (BlockTableRecord)tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db), OpenMode.ForRead);
    var tracts = new List<string>();
    var nf = new List<string>();
    var roads = new List<string>();
    foreach (ObjectId id in ms)
    {
        var e = tr.GetObject(id, OpenMode.ForRead);
        string s=null; Point3d pos=Point3d.Origin;
        if(e is DBText t){ s=t.TextString; pos=t.Position; }
        else if(e is MText m){ s=m.Text; pos=m.Location; }
        if(string.IsNullOrWhiteSpace(s)) continue;
        var u=s.ToUpperInvariant().Replace("\n"," ");
        string tag=$"({pos.X:0.0},{pos.Y:0.0})";
        string flat=s.Replace("\n"," ").Trim();
        if(u.Contains("TRACT")) tracts.Add($"{tag}  {flat}");
        else if(u.Contains("N/F")) nf.Add($"{tag}  {flat}");
        else if(u.Contains("ROAD")||u.Contains("DRIVE")||u.Contains("R/W")) roads.Add($"{tag}  {flat}");
    }
    Log($"TRACT LABELS ({tracts.Count}):"); foreach(var x in tracts.Distinct()) Log($"  {x}");
    Log($"N/F ADJOINER LABELS ({nf.Count}):"); foreach(var x in nf.Distinct()) Log($"  {x}");
    Log($"ROAD / R-W LABELS ({roads.Count}):"); foreach(var x in roads.Distinct()) Log($"  {x}");
    tr.Commit();
}

Result

Status
success
Drawing file
C:\Users\sanja\OneDrive\_SurveyDisco\260619 - 3625 Stonewall Tell Rd, Atlanta, GA 30349, USA\260619 - 3625 Stonewall Tell Rd.dwg
Message
Executed C3D-INSP619B (0 entities touched).
Entities
Duration
468 ms
Civil 3D
25.0.0.0

Log

ACTIVE: 260619 - 3625 Stonewall Tell Rd.dwg
PARCEL #5 'TRACT B' 3.314ac centroid=(2166690.5,1330383.0) style='Property'
PARCEL #6 'TRACT A' 0.994ac centroid=(2166746.4,1330613.6) style='Property'
TRACT LABELS (4):
  (2166772.4,1330561.7)  TRACT "A"
 AREA
 43,299 sq.ft.
 0.99 acres
  (2166608.7,1330445.1)  TRACT "B"
 AREA
 144,347 sq.ft.
 3.31 acres
  (2166936.0,1330261.0)  TRACT "D"
 AREA
 119,893 sq.ft.
 2.75 acres
  (2167015.5,1330665.4)  NORTH TRACT
 CALLS FOR 50' R/W STONEWALL TELL ROAD
 DB 30122 - PG 413
N/F ADJOINER LABELS (3):
  (2166050.0,1331000.0)  N/F BOBBY WALKER
 DB 32512 - PG 402
 MARCH 11, 2002
  (2166790.1,1330945.1)  N/F LATISSA NECOLE THOMAS
 & DANIEL WEBSTER WHITE
 JANUARY 30, 2001
  (2167018.2,1330800.7)  N/F JEFFERY L. VAUGHAN
 APRIL 30, 2001
 DB 30326 - PG 474
 DB 16958 - PG 165 - NOT REFERENCED
ROAD / R-W LABELS (5):
  (2166875.6,1330482.3)  STONEWALL TELL ROAD
 (R/W VARIES)
  (2166741.9,1330863.3)  DEMONEY ROAD
 (R/W VARIES)
  (2166583.4,1330010.5)  NEWBORN DRIVE SW
 (R/W VARIES)
  (2166587.1,1330107.4)  LINE PER SPECIAL USE PERMIT DESCRIPTION
 (693' SOUTH PARALLEL LLL TO NEWBORN DRIVE)
  (2166751.7,1330472.5)  ASPHALT DRIVE

Notes

What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.

No notes yet.