← Inbox

C3D-ANNOSTATE · Where are the bearings now (read-only) done

ParcelSegmentLabel count per layer + hero anno layer lineweights, to see if normal copies remain.

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

C# payload

// READ-ONLY: where are the bearing labels now? count ParcelSegmentLabels per layer, and the
// lineweight of the hero anno layers, so we know if a normal-weight copy still exists on C-PROP-LINE-TEXT.
using System;
using System.Collections.Generic;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.Civil.DatabaseServices;

var db=Db;
using (var tr=db.TransactionManager.StartTransaction())
{
    var ms=(BlockTableRecord)tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db),OpenMode.ForRead);
    var byLayer=new SortedDictionary<string,int>(StringComparer.OrdinalIgnoreCase);
    foreach(ObjectId id in ms){ var e=tr.GetObject(id,OpenMode.ForRead);
        if(e is ParcelSegmentLabel ps){ byLayer[ps.Layer]=byLayer.TryGetValue(ps.Layer,out var c)?c+1:1; } }
    Log("ParcelSegmentLabels by layer:");
    foreach(var kv in byLayer) Log($"   {kv.Key}: {kv.Value}");

    var lt=(LayerTable)tr.GetObject(db.LayerTableId,OpenMode.ForRead);
    foreach(var n in new[]{"SS-HERO TRACT A ANNO","SS-HERO TRACT B ANNO","C-PROP-LINE-TEXT"})
        if(lt.Has(n)){ var l=(LayerTableRecord)tr.GetObject(lt[n],OpenMode.ForRead); Log($"layer '{n}': lw={l.LineWeight} frozen={l.IsFrozen}"); }
    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-ANNOSTATE (0 entities touched).
Entities
Duration
354 ms
Civil 3D
25.0.0.0

Log

ParcelSegmentLabels by layer:
   C-PROP-LINE-TEXT: 1
   SS-HERO TRACT A ANNO: 6
   SS-HERO TRACT B ANNO: 5
layer 'SS-HERO TRACT A ANNO': lw=LineWeight035 frozen=False
layer 'SS-HERO TRACT B ANNO': lw=LineWeight035 frozen=False
layer 'C-PROP-LINE-TEXT': lw=LineWeight035 frozen=False

Notes

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

No notes yet.