← Inbox

C3D-0057 · READ-ONLY: re-count and list everything on SEWER_MANHOLE_TEXT [MHTXT-COUNT-2] done

Earlier audit reported 21 MText + 5 Leader on SEWER_MANHOLE_TEXT and the user does not see that many. Lists every entity on the layer with its text, position and height, plus the layer on/off/frozen state. No changes.

Script file
C3D-0057.cs
Target
260612 · model space
Author
claude
Approved
yes · reviewer
Timeout
180s

C# payload

// READ-ONLY. Re-count SEWER_MANHOLE_TEXT. Earlier audit said 21 MText + 5 Leader; user does not
// see that many. Print EVERY entity on the layer with its text and position so any duplicate,
// stacked or off-site one is visible. Also report the layer's on/off/frozen state, since a frozen
// or off layer would explain a count that cannot be seen. Nothing is modified.
var ms = (BlockTableRecord)Tx.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(Db), OpenMode.ForRead);
var lt = (LayerTable)Tx.GetObject(Db.LayerTableId, OpenMode.ForRead);

const string LAY = "SEWER_MANHOLE_TEXT";
if (lt.Has(LAY)) {
    var l = (LayerTableRecord)Tx.GetObject(lt[LAY], OpenMode.ForRead);
    Log("layer " + LAY + ":  off=" + l.IsOff + "  frozen=" + l.IsFrozen + "  locked=" + l.IsLocked);
}

var rows = new List<string>();
int nm = 0, nl = 0, no = 0;
foreach (ObjectId id in ms) {
    Autodesk.AutoCAD.DatabaseServices.DBObject o;
    try { o = Tx.GetObject(id, OpenMode.ForRead); } catch { continue; }
    var ent = o as Autodesk.AutoCAD.DatabaseServices.Entity;
    if (ent == null || ent.Layer != LAY) continue;

    var mt = o as MText;
    var ld = o as Leader;
    if (mt != null) {
        nm++;
        string t = mt.Contents.Replace(@"\P", " | ");   // verbatim: \P is the MText newline code
        rows.Add(String.Format("  MText  [{0}]  at {1:F2},{2:F2}  h={3:F2}  \"{4}\"",
            o.Handle, mt.Location.X, mt.Location.Y, mt.TextHeight, t));
    } else if (ld != null) {
        nl++;
        rows.Add(String.Format("  Leader [{0}]  verts={1}  start {2:F2},{3:F2}",
            o.Handle, ld.NumVertices,
            ld.VertexAt(0).X, ld.VertexAt(0).Y));
    } else {
        no++;
        rows.Add("  " + o.GetType().Name + " [" + o.Handle + "]");
    }
}
rows.Sort();
foreach (var r in rows) Log(r);
Log("");
Log("SEWER_MANHOLE_TEXT: MText=" + nm + "  Leader=" + nl + "  other=" + no + "  TOTAL=" + (nm + nl + no));

Result

Status
success
Drawing file
C:\Users\sanja\OneDrive\_SurveyDisco\260613 - 5030 E Lake Pkwy, Stockbridge, GA 30281, USA\260612 - CSTORE WATER ABS 30.dwg
Message
Executed C3D-0057 (0 entities touched).
Entities
Duration
343 ms
Civil 3D
25.0.0.0

Log

layer SEWER_MANHOLE_TEXT:  off=False  frozen=False  locked=False
  Leader [2EDAA]  verts=3  start 2296651.99,1280058.10
  Leader [2EDAF]  verts=3  start 2296685.19,1280052.35
  Leader [2EDB3]  verts=3  start 2296604.65,1280046.20
  Leader [2EDB7]  verts=3  start 2296690.96,1280045.90
  Leader [2EDBB]  verts=3  start 2296714.07,1280025.30
  MText  [2ED70]  at 2296341.54,1279963.01  h=4.00  "MH  A16 | RIM  751.17 | IN   N/A | OUT  N/A"
  MText  [2ED72]  at 2296515.73,1279921.78  h=4.00  "MH  A14 | RIM  734.14 | IN   722.02 | OUT  721.82"
  MText  [2ED74]  at 2296614.34,1279988.73  h=4.00  "MH  A12 | RIM  727.40 | IN   N/A | OUT  N/A"
  MText  [2ED76]  at 2296603.69,1280087.47  h=4.00  "TEST MH | RIM  727.72 | IN   N/A | OUT  N/A"
  MText  [2ED78]  at 2296719.11,1280063.42  h=4.00  "TEST MH | RIM  727.68 | IN   718.33 | OUT  718.13"
  MText  [2ED7A]  at 2296663.25,1279990.70  h=4.00  "MH  A10 | RIM  727.55 | IN   717.37 | OUT  717.17"
  MText  [2ED7C]  at 2296746.75,1279995.71  h=4.00  "MH  A9 | RIM  726.97 | IN   714.42 | OUT  714.22"
  MText  [2ED7E]  at 2296835.49,1280097.09  h=4.00  "MH  A6 | RIM  724.78 | IN   712.49 | OUT  712.49"
  MText  [2ED80]  at 2296844.60,1280009.00  h=4.00  "MH  A5 | RIM  721.41 | IN   699.94 | OUT  699.56"
  MText  [2ED82]  at 2296997.36,1279916.07  h=4.00  "MH  A4 | RIM  691.53 | IN   679.57 | OUT  677.97"
  MText  [2ED84]  at 2297204.67,1279650.20  h=4.00  "MH  A3 | RIM  682.94 | IN   673.80 | OUT  673.72"
  MText  [2ED86]  at 2297229.59,1279569.54  h=4.00  "MH  A2 | RIM  688.33 | IN   673.34 | OUT  673.34"
  MText  [2ED88]  at 2297436.05,1279626.17  h=4.00  "MH  A1 | RIM  687.05 | IN   672.41 | OUT  672.31"
  MText  [2ED8A]  at 2297429.21,1279569.39  h=4.00  "MH 384 | RIM  686.70 | IN   671.84 | OUT  N/A"
  MText  [2EDAC]  at 2296636.40,1280090.29  h=3.60  "\A1;"
  MText  [2EDB0]  at 2296719.16,1280065.31  h=3.60  "\A1;"
  MText  [2EDB4]  at 2296613.48,1280013.46  h=3.60  "\A1;"
  MText  [2EDB8]  at 2296691.43,1280012.72  h=3.60  "\A1;"
  MText  [2EDBC]  at 2296746.76,1280010.88  h=3.60  "\A1;"
  MText  [2EDF8]  at 2296825.45,1280095.99  h=3.60  "\A1;"
  MText  [2EDFA]  at 2296821.13,1280100.25  h=3.60  "\A1;"

SEWER_MANHOLE_TEXT: MText=21  Leader=5  other=0  TOTAL=26

Notes

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

No notes yet.