← Inbox

C3D-BLK-TABLES · Find what numbers the easement lines done

Read-only: tables in model space, sites/parcels, ParcelSegments and every Civil 3D label with its style and parent, to work out where the L16 numbering comes from.

Script file
C3D-BLK-TABLES.cs
Target
SS_BLOCK_22X17 · model space
Author
claude
Approved
yes · reviewer
Timeout
180s

C# payload

// READ-ONLY: what is numbering the sewer easement lines - find the tables and the labels that
// feed them, so a renumber from L1 can be planned.
var cd = CivilDoc;
var ms = (BlockTableRecord)Tx.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(Db), OpenMode.ForRead);

Log("=== tables in model space ===");
foreach (ObjectId id in ms) {
    var e = Tx.GetObject(id, OpenMode.ForRead) as Autodesk.AutoCAD.DatabaseServices.Entity;
    if (e == null) continue;
    var tn = e.GetType().Name;
    if (!tn.Contains("Table")) continue;
    Log("  " + tn + " h=" + e.Handle + " layer='" + e.Layer + "'");
}

Log("=== sites and their parcels/segments ===");
foreach (ObjectId sid in cd.GetSiteIds()) {
    var site = Tx.GetObject(sid, OpenMode.ForRead) as Site;
    if (site == null) continue;
    var pids = site.GetParcelIds();
    Log("  Site '" + site.Name + "' parcels=" + pids.Count);
    foreach (ObjectId pid in pids) {
        var p = Tx.GetObject(pid, OpenMode.ForRead) as Parcel;
        if (p == null) continue;
        Log("      Parcel '" + p.Name + "' layer='" + p.Layer + "' area=" + p.Area.ToString("F0"));
    }
}

Log("=== ParcelSegments + their labels ===");
foreach (ObjectId id in ms) {
    var e = Tx.GetObject(id, OpenMode.ForRead) as Autodesk.AutoCAD.DatabaseServices.Entity;
    if (e == null) continue;
    if (e is ParcelSegment) Log("  ParcelSegment h=" + e.Handle + " layer='" + e.Layer + "'");
    var lbl = e as Autodesk.Civil.DatabaseServices.Label;
    if (lbl != null) {
        string par = "none";
        try { var pid = lbl.FeatureId;
              if (!pid.IsNull) { var pe = Tx.GetObject(pid, OpenMode.ForRead) as Autodesk.AutoCAD.DatabaseServices.Entity;
                                 par = pe == null ? "?" : pe.GetType().Name + " on '" + pe.Layer + "'"; } } catch {}
        Log("  " + lbl.GetType().Name + " h=" + lbl.Handle + " layer='" + lbl.Layer + "' style='" + lbl.StyleName + "' parent=" + par);
    }
}

Result

Status
success
Drawing file
C:\Users\sanja\OneDrive\_SurveyDisco\260613 - 5030 E Lake Pkwy, Stockbridge, GA 30281, USA\SS_BLOCK_22X17.dwg
Message
Executed C3D-BLK-TABLES (0 entities touched).
Entities
Duration
357 ms
Civil 3D
25.0.0.0

Log

=== tables in model space ===
  ParcelSegmentTable h=23934 layer='0'
=== sites and their parcels/segments ===
  Site '{DBBA330E-324D-4F34-97479ABEBDCF917D}|2' parcels=0
  Site 'CURB' parcels=0
  Site 'SITE|1' parcels=0
  Site 'CURB|1' parcels=0
  Site '{DBBA330E-324D-4F34-97479ABEBDCF917D}|3' parcels=0
  Site '{DBBA330E-324D-4F34-97479ABEBDCF917D}' parcels=0
  Site '{DBBA330E-324D-4F34-97479ABEBDCF917D}|4' parcels=0
  Site 'Site 1' parcels=1
      Parcel 'Standard : 2' layer='WATER_LINE' area=11562
  Site '{DBBA330E-324D-4F34-97479ABEBDCF917D}|1' parcels=0
  Site 'SITE' parcels=0
=== ParcelSegments + their labels ===
  ParcelSegment h=101C9 layer='C-PROP-LINE'
  ParcelSegment h=23924 layer='SEWER_EASEMENT'
  ParcelSegmentLabel h=23925 layer='0' style='Standard.Tag.1' parent=ParcelSegment on 'SEWER_EASEMENT'
  ParcelSegmentLabel h=23926 layer='0' style='Standard.Tag.1' parent=ParcelSegment on 'SEWER_EASEMENT'
  ParcelSegmentLabel h=23927 layer='0' style='Standard.Tag.1' parent=ParcelSegment on 'SEWER_EASEMENT'
  ParcelSegmentLabel h=23928 layer='0' style='Standard.Tag.1' parent=ParcelSegment on 'SEWER_EASEMENT'
  ParcelSegmentLabel h=23929 layer='0' style='Standard.Tag.1' parent=ParcelSegment on 'SEWER_EASEMENT'
  ParcelSegmentLabel h=2392A layer='0' style='Standard.Tag.1' parent=ParcelSegment on 'SEWER_EASEMENT'
  ParcelSegmentLabel h=2392B layer='0' style='Standard.Tag.1' parent=ParcelSegment on 'SEWER_EASEMENT'
  ParcelSegmentLabel h=2392C layer='0' style='Standard.Tag.1' parent=ParcelSegment on 'SEWER_EASEMENT'
  ParcelSegmentLabel h=2392D layer='0' style='Standard.Tag.1' parent=ParcelSegment on 'SEWER_EASEMENT'
  ParcelSegmentLabel h=2392E layer='0' style='Standard.Tag.1' parent=ParcelSegment on 'SEWER_EASEMENT'
  ParcelSegmentLabel h=2392F layer='0' style='Standard.Tag.1' parent=ParcelSegment on 'SEWER_EASEMENT'
  ParcelSegmentLabel h=23930 layer='0' style='Standard.Tag.1' parent=ParcelSegment on 'SEWER_EASEMENT'
  ParcelSegmentLabel h=23931 layer='0' style='Standard.Tag.1' parent=ParcelSegment on 'SEWER_EASEMENT'
  ParcelSegmentLabel h=23932 layer='0' style='Standard.Tag.1' parent=ParcelSegment on 'SEWER_EASEMENT'
  ParcelSegmentLabel h=23933 layer='0' style='Standard.Tag.1' parent=ParcelSegment on 'SEWER_EASEMENT'

Notes

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

No notes yet.