C3D-0059 · READ-ONLY: confirm fire hydrant / water line / electrical layer names [LAYER-TARGETS] done
Lists every existing layer whose name contains HYDRANT/FH/FIRE/WATER_LINE/ELEC/POWER/UTIL/METER so the point moves use real layer names rather than guessed ones. No changes.
C# payload
// READ-ONLY. Confirm the exact target layer names before moving any points.
// Need: a fire-hydrant layer (item 2) and the water-line layer (items 4,6,7,9,10), plus anywhere
// an electrical meter/shutoff would belong (item 11). Print every layer whose name looks relevant
// rather than assuming a name exists. Nothing is modified.
var lt = (LayerTable)Tx.GetObject(Db.LayerTableId, OpenMode.ForRead);
string[] KEYS = new string[] { "HYDRANT", "FH", "FIRE", "WATER_LINE", "WATERLINE",
"ELEC", "POWER", "PWR", "UTIL", "METER" };
var names = new List<string>();
foreach (ObjectId id in lt) {
var l = (LayerTableRecord)Tx.GetObject(id, OpenMode.ForRead);
string u = l.Name.ToUpper();
foreach (string k in KEYS) {
if (u.IndexOf(k) >= 0) { names.Add(l.Name); break; }
}
}
names.Sort();
foreach (var n in names) Log(" " + n);
Log("");
Log("matched " + names.Count + " layers");
Result
Log
A-BLDG-UTIL FIRE_HYDRANT FIRE_HYDRANT_EXISTING FIRE_HYDRANT_EXISTING_TEXT FIRE_HYDRANT_MANUFACTURED_YEAR FIRE_HYDRANT_MANUFACTURER FIRE_HYDRANT_TEXT FIRE_HYDRANT_VALVE FIRE_HYDRANT_VALVE_EXISTING FIRE_HYDRANT_VALVE_EXISTING_TEXT FIRE_HYDRANT_VALVE_TEXT PDF2_E POWER UTILITY_EASEMENT UTILITY_EASEMENT_EXISTING UTILITY_EASEMENT_EXISTING_TEXT UTILITY_EASEMENT_TEXT WATER_LINE WATER_LINE_EXISTING WATER_LINE_EXISTING_TEXT WATER_LINE_TEXT WATER_METER WATER_METER_TEXT matched 22 layers
Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.