C3D-0163 · READ-ONLY: the FEMA / flood note as it stands [FEMA-READ-4] done
Finds the flood note wherever it lives - block attribute, attribute definition inside a block definition, or plain text - across every layout and block definition, reporting exact text, tag, height and layer. No changes.
C# payload
// READ-ONLY. The FEMA / flood note as it exists right now - the exact text, whether it is an
// attribute or plain text, and where it lives. Searched across every layout AND every block
// definition, since the note lives inside the title block definition rather than model space.
// Nothing is modified.
var bt = (BlockTable)Tx.GetObject(Db.BlockTableId, OpenMode.ForRead);
Log("drawing: " + Db.Filename);
Log("=== ATTRIBUTES mentioning flood / firm / panel / zone ===");
foreach (ObjectId btrId in bt) {
var btr = (BlockTableRecord)Tx.GetObject(btrId, OpenMode.ForRead);
foreach (ObjectId id in btr) {
var br = Tx.GetObject(id, OpenMode.ForRead) as BlockReference;
if (br == null) continue;
foreach (ObjectId aid in br.AttributeCollection) {
var at = Tx.GetObject(aid, OpenMode.ForRead) as AttributeReference;
if (at == null) continue;
string blob = (at.Tag + " " + at.TextString).ToUpper();
if (blob.IndexOf("FLOOD") < 0 && blob.IndexOf("FIRM") < 0 && blob.IndexOf("PANEL") < 0
&& blob.IndexOf("ZONE") < 0 && blob.IndexOf("FEMA") < 0) continue;
Log(String.Format(" [{0}] block \"{1}\" in {2}", at.Handle, br.Name, btr.Name));
Log(String.Format(" TAG \"{0}\" = \"{1}\"", at.Tag, at.TextString));
}
}
}
Log("");
Log("=== ATTRIBUTE DEFINITIONS in block definitions (the template side) ===");
foreach (ObjectId btrId in bt) {
var btr = (BlockTableRecord)Tx.GetObject(btrId, OpenMode.ForRead);
if (btr.IsLayout) continue;
foreach (ObjectId id in btr) {
var ad = Tx.GetObject(id, OpenMode.ForRead) as AttributeDefinition;
if (ad == null) continue;
Log(String.Format(" [{0}] in \"{1}\" TAG \"{2}\" prompt \"{3}\" default \"{4}\" h={5:F3}",
ad.Handle, btr.Name, ad.Tag, ad.Prompt, ad.TextString, ad.Height));
}
}
Log("");
Log("=== TEXT mentioning flood / firm / panel / zone (all spaces + block defs) ===");
foreach (ObjectId btrId in bt) {
var btr = (BlockTableRecord)Tx.GetObject(btrId, OpenMode.ForRead);
foreach (ObjectId id in btr) {
Autodesk.AutoCAD.DatabaseServices.DBObject o;
try { o = Tx.GetObject(id, OpenMode.ForRead); } catch { continue; }
string s = null;
var mt = o as MText; if (mt != null) s = mt.Contents;
var dt = o as DBText; if (dt != null) s = dt.TextString;
if (s == null) continue;
string u = s.ToUpper();
if (u.IndexOf("FLOOD") < 0 && u.IndexOf("FIRM") < 0 && u.IndexOf("PANEL") < 0 && u.IndexOf("FEMA") < 0) continue;
var ent = (Autodesk.AutoCAD.DatabaseServices.Entity)o;
Log("");
Log(String.Format(" [{0}] {1} in {2} layer={3} h={4:F3}", o.Handle, o.GetType().Name, btr.Name, ent.Layer,
mt != null ? mt.TextHeight : dt.Height));
Log(" " + s.Replace(@"P", " | "));
}
}
Result
Log
drawing: C:\Users\sanja\OneDrive\_SurveyDisco\SS_BLOCK_11X17.dwg
=== ATTRIBUTES mentioning flood / firm / panel / zone ===
=== ATTRIBUTE DEFINITIONS in block definitions (the template side) ===
[12409] in "_TagCircle" TAG "TAGNUMBER" prompt "Enter tag number" default "TAGNUMBER" h=0.094
[2034B] in "SS_BLOCK_11X17" TAG "JOB_NO" prompt "JOB NO.: 251002" default "JOB NO.: 251002" h=0.117
[2034C] in "SS_BLOCK_11X17" TAG "SITE_ADDRESS" prompt "SITE_ADDRESS" default "SITE_ADDRESS" h=0.117
[2034D] in "SS_BLOCK_11X17" TAG "REF_DB_PG" prompt "REF DB xxx Page xxx" default "REF DB xxx Page xxx" h=0.117
[2034E] in "SS_BLOCK_11X17" TAG "LAND_LOT" prompt "LAND LOT: ###" default "LAND LOT: ###" h=0.117
[2034F] in "SS_BLOCK_11X17" TAG "DISTRICT" prompt "DISTRICT: #TH" default "DISTRICT: #TH" h=0.117
[20350] in "SS_BLOCK_11X17" TAG "COUNTY" prompt "COUNTY: CLAYCO" default "COUNTY: CLAYCO" h=0.117
[20351] in "SS_BLOCK_11X17" TAG "DATE" prompt "DATE: 10/16/25" default "DATE: 10/16/25" h=0.117
[20352] in "SS_BLOCK_11X17" TAG "SUBDIVISION_NAME_LOT" prompt "SUBDIVISION_NAME LOT ##" default "SUBDIVISION_NAME LOT ##" h=0.117
[20353] in "SS_BLOCK_11X17" TAG "PREP_FOR" prompt "PREP_FOR" default "PREP_FOR" h=0.150
[20354] in "SS_BLOCK_11X17" TAG "SURVEY_TYPE" prompt "BOUNDARY SURVEY" default "BOUNDARY SURVEY" h=0.200
[1FE91] in "11x17 COVER SHEET SS" TAG "SITE_ADDRESS" prompt "" default "SITE ADDRESS" h=0.447
[1FE92] in "11x17 COVER SHEET SS" TAG "CITY" prompt "" default "CITY" h=0.447
[1FE93] in "11x17 COVER SHEET SS" TAG "COUNTY_STATE" prompt "" default "COUNTY , STATE" h=0.447
[1FE94] in "11x17 COVER SHEET SS" TAG "ZONING" prompt "" default "ZONING" h=0.400
[1FE95] in "11x17 COVER SHEET SS" TAG "CLIENT_CONTACT_NAME" prompt "" default "CONTACT: PERSONS NAME" h=0.300
[1FE96] in "11x17 COVER SHEET SS" TAG "CLIENT_COMPANY" prompt "" default "COMPANY" h=0.300
[1FE97] in "11x17 COVER SHEET SS" TAG "CLIENT_ADDRESS" prompt "" default "ADDRESS" h=0.300
[1FE98] in "11x17 COVER SHEET SS" TAG "CLIENT_CITY_STATE_ZIP" prompt "" default "CITY , STATE ZIP" h=0.300
[1FE99] in "11x17 COVER SHEET SS" TAG "CLIENT_PHONE" prompt "" default "(XXX) XXX XX XX" h=0.300
[1FE9A] in "11x17 COVER SHEET SS" TAG "GF_CONTACT" prompt "" default "CONTACT: PROJECT MANAGER'S NAME" h=0.300
[1FE9B] in "11x17 COVER SHEET SS" TAG "GF_ADDRESS" prompt "" default "OFFICE ADDRESS" h=0.300
[1FE9C] in "11x17 COVER SHEET SS" TAG "GF_CITY_STATE_ZIP" prompt "" default "CITY , STATE ZIP" h=0.300
[1FE9D] in "11x17 COVER SHEET SS" TAG "GF_PHONE" prompt "" default "(XXX) XXX XX XX" h=0.300
[1FE9E] in "11x17 COVER SHEET SS" TAG "CLIENT_COMPANY_NAME" prompt "" default "COMPANY NAME" h=0.400
[1FE9F] in "11x17 COVER SHEET SS" TAG "PROJECT_NO." prompt "" default "200XXXXX" h=0.249
[1FEA2] in "11x17 COVER SHEET SS" TAG "DATECOVER" prompt "" default "XX-XX-XX" h=0.249
[1FEA7] in "11x17 COVER SHEET SS" TAG "FEMA_MAP1" prompt "" default "FLOOD INSURANCE RATE MAP" h=0.213
[1FEA8] in "11x17 COVER SHEET SS" TAG "FEMA_MAP2" prompt "" default "(N.T.S.)" h=0.213
[1FEA9] in "11x17 COVER SHEET SS" TAG "ATT_SURV2" prompt "" default "ALTA/ACSM LAND TITLE SURVEY" h=0.150
[1FEAA] in "11x17 COVER SHEET SS" TAG "SURV_NAME" prompt "" default "SURVEYOR'S NAME" h=0.200
[1FEAB] in "11x17 COVER SHEET SS" TAG "SURV_ADDRESS_1" prompt "" default "ADDRESS" h=0.150
[1FEAC] in "11x17 COVER SHEET SS" TAG "ATT_SURV1" prompt "" default "SURVEYOR" h=0.300
[1FEAD] in "11x17 COVER SHEET SS" TAG "SURV_ADDRESS_2" prompt "" default "ADDRESS2" h=0.150
[1FEAE] in "11x17 COVER SHEET SS" TAG "SURV_PHONE" prompt "" default "(XXX) XXX-XXXX" h=0.150
[1FEAF] in "11x17 COVER SHEET SS" TAG "SURV_PROJ#" prompt "" default "SURVEYOR'S PROJECT NO. " h=0.150
[1FEB0] in "11x17 COVER SHEET SS" TAG "GEO_NAME" prompt "" default "SURVEYOR'S NAME" h=0.200
[1FEB1] in "11x17 COVER SHEET SS" TAG "GEO_ADDRESS_1" prompt "" default "ADDRESS" h=0.150
[1FEB2] in "11x17 COVER SHEET SS" TAG "ATT_GEO1" prompt "" default "GEOTECHNICAL ENGINEER:" h=0.300
[1FEB3] in "11x17 COVER SHEET SS" TAG "GEO_ADDRESS_2" prompt "" default "ADDRESS2" h=0.150
[1FEB4] in "11x17 COVER SHEET SS" TAG "GEO_PHONE" prompt "" default "(XXX) XXX-XXXX" h=0.150
[1FEB5] in "11x17 COVER SHEET SS" TAG "GEO_PROJ#" prompt "" default "PROJECT NO. " h=0.150
[1FEBA] in "11x17 COVER SHEET SS" TAG "GF_EMAIL" prompt "" default "XXXX" h=0.300
[1FF48] in "SS_BLOCK_11X17 (1)" TAG "JOB_NO" prompt "JOB NO.: 251002" default "JOB NO.: 251002" h=0.117
[1FF49] in "SS_BLOCK_11X17 (1)" TAG "SITE_ADDRESS" prompt "2499 E Maddox Rd, Buford, GA 30519" default "2499 E Maddox Rd, Buford, GA 30519" h=0.117
[1FF4A] in "SS_BLOCK_11X17 (1)" TAG "REF_DB_PG" prompt "REF DB 61982 Page 308" default "REF DB 61982 Page 308" h=0.117
[1FF4B] in "SS_BLOCK_11X17 (1)" TAG "LAND_LOT" prompt "LAND LOT: 226" default "LAND LOT: 226" h=0.117
[1FF4C] in "SS_BLOCK_11X17 (1)" TAG "DISTRICT" prompt "DISTRICT: 7TH" default "DISTRICT: 7TH" h=0.117
[1FF4D] in "SS_BLOCK_11X17 (1)" TAG "COUNTY" prompt "COUNTY: GWINNETT" default "COUNTY: GWINNETT" h=0.117
[1FF4E] in "SS_BLOCK_11X17 (1)" TAG "DATE" prompt "DATE: 10/16/25" default "DATE: 10/16/25" h=0.117
[1FF4F] in "SS_BLOCK_11X17 (1)" TAG "SUBDIVISION_NAME_LOT" prompt "GLENDALE ESTATES LOT 10" default "GLENDALE ESTATES LOT 10" h=0.117
[1FF50] in "SS_BLOCK_11X17 (1)" TAG "PREP_FOR" prompt "PHILLIP KIM RENOVATIONS" default "PHILLIP KIM RENOVATIONS" h=0.150
[1FF51] in "SS_BLOCK_11X17 (1)" TAG "SURVEY_TYPE" prompt "BOUNDARY SURVEY" default "BOUNDARY SURVEY" h=0.200
[1FFCB] in "SS_BLOCK_11X17 (2)" TAG "JOB_NO" prompt "JOB NO.: 251002" default "JOB NO.: 251002" h=0.117
[1FFCC] in "SS_BLOCK_11X17 (2)" TAG "SITE_ADDRESS" prompt "2499 E Maddox Rd, Buford, GA 30519" default "2499 E Maddox Rd, Buford, GA 30519" h=0.117
[1FFCD] in "SS_BLOCK_11X17 (2)" TAG "REF_DB_PG" prompt "REF DB 61982 Page 308" default "REF DB 61982 Page 308" h=0.117
[1FFCE] in "SS_BLOCK_11X17 (2)" TAG "LAND_LOT" prompt "LAND LOT: 226" default "LAND LOT: 226" h=0.117
[1FFCF] in "SS_BLOCK_11X17 (2)" TAG "DISTRICT" prompt "DISTRICT: 7TH" default "DISTRICT: 7TH" h=0.117
[1FFD0] in "SS_BLOCK_11X17 (2)" TAG "COUNTY" prompt "COUNTY: GWINNETT" default "COUNTY: GWINNETT" h=0.117
[1FFD1] in "SS_BLOCK_11X17 (2)" TAG "DATE" prompt "DATE: 10/16/25" default "DATE: 10/16/25" h=0.117
[1FFD2] in "SS_BLOCK_11X17 (2)" TAG "SUBDIVISION_NAME_LOT" prompt "GLENDALE ESTATES LOT 10" default "GLENDALE ESTATES LOT 10" h=0.117
[1FFD3] in "SS_BLOCK_11X17 (2)" TAG "PREP_FOR" prompt "PHILLIP KIM RENOVATIONS" default "PHILLIP KIM RENOVATIONS" h=0.150
[1FFD4] in "SS_BLOCK_11X17 (2)" TAG "SURVEY_TYPE" prompt "BOUNDARY SURVEY" default "BOUNDARY SURVEY" h=0.200
[2007C] in "SS_BLOCK_11X17 (3)" TAG "JOB_NO" prompt "JOB NO.: 251002" default "JOB NO.: 251002" h=0.117
[2007D] in "SS_BLOCK_11X17 (3)" TAG "SITE_ADDRESS" prompt "2499 E Maddox Rd, Buford, GA 30519" default "2499 E Maddox Rd, Buford, GA 30519" h=0.117
[2007E] in "SS_BLOCK_11X17 (3)" TAG "REF_DB_PG" prompt "REF DB 61982 Page 308" default "REF DB 61982 Page 308" h=0.117
[2007F] in "SS_BLOCK_11X17 (3)" TAG "LAND_LOT" prompt "LAND LOT: 226" default "LAND LOT: 226" h=0.117
[20080] in "SS_BLOCK_11X17 (3)" TAG "DISTRICT" prompt "DISTRICT: 7TH" default "DISTRICT: 7TH" h=0.117
[20081] in "SS_BLOCK_11X17 (3)" TAG "COUNTY" prompt "COUNTY: GWINNETT" default "COUNTY: GWINNETT" h=0.117
[20082] in "SS_BLOCK_11X17 (3)" TAG "DATE" prompt "DATE: 10/16/25" default "DATE: 10/16/25" h=0.117
[20083] in "SS_BLOCK_11X17 (3)" TAG "SUBDIVISION_NAME_LOT" prompt "GLENDALE ESTATES LOT 10" default "GLENDALE ESTATES LOT 10" h=0.117
[20084] in "SS_BLOCK_11X17 (3)" TAG "PREP_FOR" prompt "PHILLIP KIM RENOVATIONS" default "PHILLIP KIM RENOVATIONS" h=0.150
[20085] in "SS_BLOCK_11X17 (3)" TAG "SURVEY_TYPE" prompt "BOUNDARY SURVEY" default "BOUNDARY SURVEY" h=0.200
=== TEXT mentioning flood / firm / panel / zone (all spaces + block defs) ===
[158D1] MText in *Paper_Space layer=BLOCK_NOTES_FLOOD h=0.055
FLOOD NOTE:\ | THIS | RO | ERTY IS NOT LOCATED WITHIN A S | ECIAL FLOOD HAZARD AREA (SFHA) AS SHOWN ON F.I.R.M. COMMUNITY | ANEL NO. 13135C0016G, EFFECTIVE FEBRUARY 4, 2013, AND LIES IN ZONE X.
[14522] MText in A$C3840e5d8 layer=BLOCK_TB2 h=2.200
FLOOD NOTE:\ | THIS | RO | ERTY IS NOT IN AN AREA HAVING S | ECIAL FLOOD\ | HAZARDS AS | ER COMMUNITY | ANEL NO. 13121C0087 F, DATED\ | SE | TEMBER 18th 2013, ZONE "X".
[14528] MText in A$C3840e5d8 layer=SS-BOUNDARY h=3.000
\pxqc;{\LSITE INFORMATION\ | }\ | \pq*;JURISDICTION: CITY OF JOHNS CREEK\ | | ARCEL ID NO.: 11 055002300102\ | | RO | OSED ZONING: R-4 SINGLE-FAMILY DWELLING\ | OVERLAY DISTRICT: N/A\ | FLOOD ZONE CLASSIFICATION: X\ | \ | \pqc;{\LSETBACK & BUFFERS\ | }BUILDING SETBACKS\ | \ | \pq*;FRONT: 35 FT\ | REAR: 25 FT\ | SIDE: 7 FT\ | LANDSCA | E STRI | : 40 FT (ALONG ABBOTTS BRIDGE ROAD) \ | \ | \pqc;{\LSITE AREA CALCULATIONS\ | }\ | \pq*;SITE: {\Fsimplex|c0;\C4;±}0.87 AC/{\Fsimplex|c0;\C4; }37,779.18 SF\ | BUILDABLE AREA: {\Fsimplex|c0;\C4;±}0.69 AC/ 29933.18 SF\ | UNBUILDABLE AREA: {\Fsimplex|c0;\C4;±}0.18 AC{\Fsimplex|c0;\C4;/ }7846.00 SF\ | MINIMUM LOT SIZE: 9000 SF\ | Subdivision\~Density: 2 LOTS/0.87\~AC ≈ 2.30\~lots\~per\~acre
\ | \pqc;{\LBASE INFORMATION\ | }\ | \pq*;NO | ORTION OF THIS | RO | ERTY IS LOCATED IN A S | ECIAL FLOOD AREA AS | ER F.I.R.M. MA | NO. {\Fsimplex|c0;13121C0087 F, DATED\ | SE | TEMBER 18th 2013, ZONE "X".\ | } \ | BASE CONDITIONS | ROVIDED BY SAWHNEY ASSOCIATES, DATED 6/21/2024\ | \ | \pqc;{\L | RO | OSED VARIANCES\ | \pq*;}\ | 1. Variance to remove 10% open space requirement under section 12.E3 subsection A of the City of Johns Creek building ordinance
[1E7AB] MText in *Paper_Space154 layer=BLOCK_TB2 h=0.055
FLOOD NOTE:\ | THIS | RO | ERTY IS NOT IN AN AREA HAVING S | ECIAL FLOOD AS | ER COMMUNITY | ANEL NO. 13089C0132J, DATED MAY 16th 2013.
[1FEA7] AttributeDefinition in 11x17 COVER SHEET SS layer=G-NOTE h=0.213
FLOOD INSURANCE RATE MA |
[1FEB6] MText in 11x17 COVER SHEET SS layer=C-0-GNRL-NOTE-INDX h=0.100
THE MAJORITY SITE DOES NOT LIE WITHIN A 100 YEAR FLOOD HAZARD AREA AND IS LOCATED IN ZONE "X" , HOWEVER A SMALL | ORTION LOCATED IN THE NORTH EAST CORNER DOES LIE IN ZONE A AS SHOWN ON THE ABOVE FEDERAL EMERGENCY MANAGEMENT AGENCY FLOOD INSURANCE RATE MA | NUMBER 13151CO276D WITH AN EFFECTIVE DATE OF OCTOBER 6, 2016.Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.