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.
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
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.