C3D-FEMAFIX · Fix flood note on 11X17 (wrong county panel) + remove my model-space duplicate done
The REAL note on layout 11X17 reads panel 13135C0016G eff 02/04/2013 - that is a GWINNETT panel carried in from another job. Job 260702 is FULTON: panel 13121C0359F eff 09/18/2013 (per job record). Also erases the duplicate FEMA note I wrongly added to model space. Reads back + verifies; idempotent.
C# payload
// Fix the REAL flood note on layout 11X17 (was a stale Gwinnett panel 13135C0016G from another job)
// and erase the duplicate note I added to model space. Reads back + verifies. Idempotent.
var bt = (BlockTable)Tx.GetObject(Db.BlockTableId, OpenMode.ForRead);
string NEW = "FLOOD NOTE:\\PTHIS PROPERTY IS NOT LOCATED WITHIN A SPECIAL FLOOD HAZARD AREA (SFHA) "
+ "AS SHOWN ON F.I.R.M. COMMUNITY PANEL NO. 13121C0359F, EFFECTIVE SEPTEMBER 18, 2013, AND LIES IN ZONE X.";
// 1) fix the paper-space note (handle 158D1 on layout 11X17)
var h = new Handle(System.Convert.ToInt64("158D1", 16));
ObjectId noteId;
if (Db.TryGetObjectId(h, out noteId) && !noteId.IsNull) {
var mt = (MText)Tx.GetObject(noteId, OpenMode.ForWrite);
string oldv = mt.Contents;
if (oldv == NEW) { Log("11X17 flood note already correct (no change)."); }
else {
mt.Contents = NEW;
var chk = (MText)Tx.GetObject(noteId, OpenMode.ForRead);
Log($"11X17 flood note UPDATED (verified):");
Log($" OLD: \"{oldv.Replace("\\P", " / ")}\"");
Log($" NEW: \"{chk.Contents.Replace("\\P", " / ")}\"");
}
} else { Log("WARNING: handle 158D1 not found — 11X17 note NOT updated."); }
// 2) erase my duplicate model-space note
var ms = (BlockTableRecord)Tx.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForRead);
int killed = 0;
var toKill = new List<ObjectId>();
foreach (ObjectId id in ms) {
var mt = Tx.GetObject(id, OpenMode.ForRead) as MText;
if (mt != null && mt.Layer == "C-ANNO" && mt.Contents.Contains("FLOOD NOTE")) toKill.Add(id);
}
foreach (var id in toKill) {
var mt = (MText)Tx.GetObject(id, OpenMode.ForWrite);
mt.Erase(); killed++;
}
Log($"Model-space duplicate flood note(s) erased: {killed}.");
Log("Note: block def 'A$C3840e5d8' (BLOCK_TB2) also carries a stale panel 13121C0087 F — left alone, appears unused.");
Result
Log
11X17 flood note UPDATED (verified):
OLD: "FLOOD NOTE: / THIS PROPERTY IS NOT LOCATED WITHIN A SPECIAL FLOOD HAZARD AREA (SFHA) AS SHOWN ON F.I.R.M. COMMUNITY PANEL NO. 13135C0016G, EFFECTIVE FEBRUARY 4, 2013, AND LIES IN ZONE X."
NEW: "FLOOD NOTE: / THIS PROPERTY IS NOT LOCATED WITHIN A SPECIAL FLOOD HAZARD AREA (SFHA) AS SHOWN ON F.I.R.M. COMMUNITY PANEL NO. 13121C0359F, EFFECTIVE SEPTEMBER 18, 2013, AND LIES IN ZONE X."
Model-space duplicate flood note(s) erased: 1.
Note: block def 'A$C3840e5d8' (BLOCK_TB2) also carries a stale panel 13121C0087 F — left alone, appears unused.Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.