C3D-0014 · Check sewer text layers [SEW-CHK] done
Read-only: every entity on SEWER_LINE_TEXT and SEWER_MANHOLE_TEXT with type, handle, position and content.
C# payload
// READ-ONLY: what is actually on the two sewer text layers right now.
var ms = (BlockTableRecord)Tx.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(Db), OpenMode.ForRead);
foreach (var lay in new string[] { "SEWER_LINE_TEXT", "SEWER_MANHOLE_TEXT" })
{
int n = 0;
var kinds = new Dictionary<string,int>();
Log("=== " + lay);
foreach (ObjectId id in ms)
{
var e = Tx.GetObject(id, OpenMode.ForRead) as Autodesk.AutoCAD.DatabaseServices.Entity;
if (e == null || e.Layer != lay) continue;
n++;
var k = e.GetType().Name;
kinds[k] = kinds.ContainsKey(k) ? kinds[k]+1 : 1;
var mt = e as MText;
if (mt != null) Log(" MTEXT h=" + e.Handle + " at (" + mt.Location.X.ToString("F2") + "," +
mt.Location.Y.ToString("F2") + ") " + mt.Contents.Replace("\u005CP"," / "));
var ld = e as Leader;
if (ld != null) Log(" LEADER h=" + e.Handle + " (" + ld.StartPoint.X.ToString("F2") + "," +
ld.StartPoint.Y.ToString("F2") + ") -> (" + ld.EndPoint.X.ToString("F2") + "," +
ld.EndPoint.Y.ToString("F2") + ") verts=" + ld.NumVertices);
}
var parts = new List<string>();
foreach (var kv in kinds) parts.Add(kv.Value + " " + kv.Key);
Log(" TOTAL " + n + " [" + string.Join(", ", parts) + "]");
}
Result
Log
=== SEWER_LINE_TEXT MTEXT h=2ED70 at (2296397.85,1279971.52) MH A16 / RIM 751.17 / IN N/A / OUT N/A LEADER h=2ED71 (2296379.85,1279953.52) -> (2296397.85,1279971.52) verts=2 MTEXT h=2ED72 at (2296573.05,1279948.25) MH A14 / RIM 734.14 / IN 722.02 / OUT 721.82 MTEXT h=2ED74 at (2296622.65,1280064.20) MH A12 / RIM 727.40 / IN N/A / OUT N/A LEADER h=2ED75 (2296604.65,1280046.20) -> (2296622.65,1280064.20) verts=2 MTEXT h=2ED76 at (2296669.99,1280076.10) TEST MH / RIM 727.72 / IN N/A / OUT N/A LEADER h=2ED77 (2296651.99,1280058.10) -> (2296669.99,1280076.10) verts=2 MTEXT h=2ED78 at (2296703.19,1280070.35) TEST MH / RIM 727.68 / IN 718.33 / OUT 718.13 LEADER h=2ED79 (2296685.19,1280052.35) -> (2296703.19,1280070.35) verts=2 MTEXT h=2ED7A at (2296708.96,1280063.90) MH A10 / RIM 727.55 / IN 717.37 / OUT 717.17 LEADER h=2ED7B (2296690.96,1280045.90) -> (2296708.96,1280063.90) verts=2 MTEXT h=2ED7C at (2296732.07,1280043.30) MH A9 / RIM 726.97 / IN 714.42 / OUT 714.22 LEADER h=2ED7D (2296714.07,1280025.30) -> (2296732.07,1280043.30) verts=2 MTEXT h=2ED7E at (2296845.25,1280113.99) MH A6 / RIM 724.78 / IN 712.49 / OUT 712.49 LEADER h=2ED7F (2296827.25,1280095.99) -> (2296845.25,1280113.99) verts=2 MTEXT h=2ED80 at (2296896.69,1280052.22) MH A5 / RIM 721.41 / IN 699.94 / OUT 699.56 LEADER h=2ED81 (2296878.69,1280034.22) -> (2296896.69,1280052.22) verts=2 MTEXT h=2ED82 at (2296998.45,1279930.31) MH A4 / RIM 691.53 / IN 679.57 / OUT 677.97 LEADER h=2ED83 (2296980.45,1279912.31) -> (2296998.45,1279930.31) verts=2 MTEXT h=2ED84 at (2297267.93,1279693.24) MH A3 / RIM 682.94 / IN 673.80 / OUT 673.72 LEADER h=2ED85 (2297249.93,1279675.24) -> (2297267.93,1279693.24) verts=2 MTEXT h=2ED86 at (2297287.03,1279615.72) MH A2 / RIM 688.33 / IN 673.34 / OUT 673.34 LEADER h=2ED87 (2297269.03,1279597.72) -> (2297287.03,1279615.72) verts=2 MTEXT h=2ED88 at (2297440.96,1279636.78) MH A1 / RIM 687.05 / IN 672.41 / OUT 672.31 LEADER h=2ED89 (2297422.96,1279618.78) -> (2297440.96,1279636.78) verts=2 MTEXT h=2ED8A at (2297442.71,1279617.32) MH 384 / RIM 686.70 / IN 671.84 / OUT N/A LEADER h=2ED8B (2297424.71,1279599.32) -> (2297442.71,1279617.32) verts=2 TOTAL 27 [14 MText, 13 Leader] === SEWER_MANHOLE_TEXT TOTAL 0 []
Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.