C3D-ANNOSTATE · Where are the bearings now (read-only) done
ParcelSegmentLabel count per layer + hero anno layer lineweights, to see if normal copies remain.
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
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.