← Inbox

C3D-0005 · Title block 22X17 for job 260612 [TB-260612] done

Fills the 22X17 title block for job 260612 (5030 East Lake Pkwy, LL 4, 11th district, Henry County, 07/31/26, CIVILWORKS, As Built Water & Sewer). The block was carrying stale job 260104 data. Only the 22X17 layout is touched; REF_DB_PG and SUBDIVISION are left alone.

Script file
C3D-0005.cs
Target
260612 · paper space
Author
claude
Approved
yes · reviewer
Timeout
180s

C# payload

// Fill the title block on the 22X17 layout ONLY, for job 260612 (5030 East Lake Pkwy).
//
// The block was carrying STALE data from job 260104 (6333 GA-42, Rex / Clayton County / ALTA
// retracement / Curry Leaves LLC) - the copied-template hazard that title-block-fill's
// knownGaps calls out as the #1 problem. The 11X17 and 13709-779 layouts carry the same stale
// block but the user asked for 22X17 only, so they are LEFT ALONE.
//
// Values: job number, land lot, district and date from the user; address, county, preparedFor
// and service type from the SurveyDisco record for 260612/260613.
// REF_DB_PG and SUBDIVISION_NAME_LOT are NOT touched - the job record has no deed book/page or
// subdivision, and inventing one would be worse than leaving what is there.
// Reads each attribute back after writing. Host owns Tx; host regens after commit.
const string LAYOUT = "22X17";

var vals = new (string tag, string val)[] {
    (@"JOB_NO", @"JOB NO.: 260612"),
    (@"SITE_ADDRESS", @"5030 EAST LAKE PKWY, STOCKBRIDGE, GA 30281"),
    (@"LAND_LOT", @"LAND LOT: 4"),
    (@"DISTRICT", @"DISTRICT: 11TH"),
    (@"COUNTY", @"COUNTY: HENRY"),
    (@"DATE", @"DATE: 07/31/26"),
    (@"PREP_FOR", @"CIVILWORKS"),
    (@"SURVEY_TYPE", @"AS BUILT SURVEY - WATER & SEWER")
};

var layDict = (DBDictionary)Tx.GetObject(Db.LayoutDictionaryId, OpenMode.ForRead);
if (!layDict.Contains(LAYOUT)) { Log("layout '" + LAYOUT + "' not found"); return; }
var layout = (Layout)Tx.GetObject(layDict.GetAt(LAYOUT), OpenMode.ForRead);
var ps = (BlockTableRecord)Tx.GetObject(layout.BlockTableRecordId, OpenMode.ForRead);

int refs = 0, set = 0, same = 0;
foreach (ObjectId id in ps)
{
    var br = Tx.GetObject(id, OpenMode.ForRead) as BlockReference;
    if (br == null || br.AttributeCollection.Count == 0) continue;
    var def = (BlockTableRecord)Tx.GetObject(br.BlockTableRecord, OpenMode.ForRead);
    refs++;
    Log("block '" + def.Name + "' h=" + br.Handle);

    foreach (ObjectId aid in br.AttributeCollection)
    {
        var ar = Tx.GetObject(aid, OpenMode.ForRead) as AttributeReference;
        if (ar == null) continue;
        string want = null;
        foreach (var v in vals) if (v.tag == ar.Tag) { want = v.val; break; }
        if (want == null) { Log("    " + ar.Tag.PadRight(22) + " = '" + ar.TextString + "'  (left alone)"); continue; }
        string old = ar.TextString;
        if (old == want) { Log("    " + ar.Tag.PadRight(22) + " already '" + want + "'"); same++; continue; }
        var w = (AttributeReference)Tx.GetObject(aid, OpenMode.ForWrite);
        w.TextString = want;
        string now = ((AttributeReference)Tx.GetObject(aid, OpenMode.ForRead)).TextString;
        Log("    " + ar.Tag.PadRight(22) + " '" + old + "'  ->  '" + now + "'" + (now == want ? "  (verified)" : "  (MISMATCH)"));
        set++;
    }
}
Log("updated " + set + " attribute(s) (" + same + " already correct) on " + refs + " block(s) in '" + LAYOUT + "'");

Result

Status
success
Drawing file
C:\Users\sanja\OneDrive\_SurveyDisco\260613 - 5030 E Lake Pkwy, Stockbridge, GA 30281, USA\260612 - CSTORE WATER ABS BOUNDARY.dwg
Message
Executed C3D-0005 (0 entities touched).
Entities
Duration
531 ms
Civil 3D
25.0.0.0

Log

block 'SS_BLOCK_11X17' h=23273
    JOB_NO                 'JOB NO.: 260104'  ->  'JOB NO.: 260612'  (verified)
    SITE_ADDRESS           '6333 GA-42, Rex, GA 30273, USA'  ->  '5030 EAST LAKE PKWY, STOCKBRIDGE, GA 30281'  (verified)
    REF_DB_PG              = 'REF DB 13594 Page 389'  (left alone)
    LAND_LOT               'LAND LOT: 119'  ->  'LAND LOT: 4'  (verified)
    DISTRICT               'DISTRICT: 12th'  ->  'DISTRICT: 11TH'  (verified)
    COUNTY                 'COUNTY: CLAYTON'  ->  'COUNTY: HENRY'  (verified)
    DATE                   'DATE: 10/16/25'  ->  'DATE: 07/31/26'  (verified)
    SUBDIVISION_NAME_LOT   = 'SUBDIVISION_NAME LOT ##'  (left alone)
    PREP_FOR               'Curry Leaves 6333 LLC & SERVISFIRST BANK'  ->  'CIVILWORKS'  (verified)
    SURVEY_TYPE            'ALTA retracement Survey'  ->  'AS BUILT SURVEY - WATER & SEWER'  (verified)
updated 8 attribute(s) (0 already correct) on 1 block(s) in '22X17'

Notes

What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.

No notes yet.