C3D-0433 · Fill SS_BLOCK_11X17 title block - 281 Maranatha (250501) done
Fill 11X17 title block attrs from the image: JOB 250501, 281 MARANATHA TRAIL, LL 151, 5TH, GWINNETT, 04/28/25, FOX RUN ESTATES UNIT 2 LOT 10 BLOCK C, FRANCISCO REYES ORTIZ, TOPOGRAPHIC SURVEY. Blank REF_DB_PG + all flood fields.
C# payload
var map = new System.Collections.Generic.Dictionary<string,string>();
map["JOB_NO"] = "JOB NO.: 250501";
map["SITE_ADDRESS"] = "281 MARANATHA TRAIL";
map["REF_DB_PG"] = "";
map["LAND_LOT"] = "LAND LOT: 151";
map["DISTRICT"] = "DISTRICT: 5TH";
map["COUNTY"] = "COUNTY: GWINNETT";
map["DATE"] = "DATE: 04/28/25";
map["SUBDIVISION_NAME_LOT"] = "FOX RUN ESTATES UNIT 2 LOT 10 BLOCK \"C\"";
map["PREP_FOR"] = "FRANCISCO REYES ORTIZ";
map["SURVEY_TYPE"] = "TOPOGRAPHIC SURVEY";
map["FIRM_PANEL"] = "";
map["FIRM_DATE"] = "";
map["FLOOD_ZONE"] = "";
var bt = (BlockTable)Tx.GetObject(Db.BlockTableId, OpenMode.ForRead);
int refs=0, changed=0;
foreach (ObjectId btrId in bt) {
var space = (BlockTableRecord)Tx.GetObject(btrId, OpenMode.ForRead);
foreach (ObjectId eid in space) {
var br = Tx.GetObject(eid, OpenMode.ForRead) as BlockReference;
if (br == null) continue;
var bd = (BlockTableRecord)Tx.GetObject(br.BlockTableRecord, OpenMode.ForRead);
if (bd.Name.IndexOf("SS_BLOCK_11X17", StringComparison.OrdinalIgnoreCase) < 0) continue;
refs++;
foreach (ObjectId arId in br.AttributeCollection) {
var ar = Tx.GetObject(arId, OpenMode.ForRead) as AttributeReference;
if (ar == null) continue;
if (map.ContainsKey(ar.Tag)) {
var w = (AttributeReference)Tx.GetObject(arId, OpenMode.ForWrite);
string old = w.TextString;
w.TextString = map[ar.Tag];
changed++;
Log(ar.Tag + ": '" + old + "' -> '" + map[ar.Tag] + "' (verified='" + w.TextString + "')");
}
}
}
}
Log("refs=" + refs + " changed=" + changed);
Ed.Regen();
Result
Log
JOB_NO: 'JOB NO.: 251002' -> 'JOB NO.: 250501' (verified='JOB NO.: 250501') SITE_ADDRESS: 'SITE_ADDRESS' -> '281 MARANATHA TRAIL' (verified='281 MARANATHA TRAIL') REF_DB_PG: 'REF DB xxx Page xxx' -> '' (verified='') LAND_LOT: 'LAND LOT: ###' -> 'LAND LOT: 151' (verified='LAND LOT: 151') DISTRICT: 'DISTRICT: #TH' -> 'DISTRICT: 5TH' (verified='DISTRICT: 5TH') COUNTY: 'COUNTY: CLAYCO' -> 'COUNTY: GWINNETT' (verified='COUNTY: GWINNETT') DATE: 'DATE: 10/16/25' -> 'DATE: 04/28/25' (verified='DATE: 04/28/25') SUBDIVISION_NAME_LOT: 'SUBDIVISION_NAME LOT ##' -> 'FOX RUN ESTATES UNIT 2 LOT 10 BLOCK "C"' (verified='FOX RUN ESTATES UNIT 2 LOT 10 BLOCK "C"') PREP_FOR: 'PREP_FOR' -> 'FRANCISCO REYES ORTIZ' (verified='FRANCISCO REYES ORTIZ') SURVEY_TYPE: 'BOUNDARY SURVEY' -> 'TOPOGRAPHIC SURVEY' (verified='TOPOGRAPHIC SURVEY') FIRM_PANEL: '13135C0016G' -> '' (verified='') FIRM_DATE: 'FEBRUARY 4, 2013' -> '' (verified='') FLOOD_ZONE: 'X' -> '' (verified='') refs=1 changed=13
Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.