← Inbox

C3D-260619-R910 · Redline 9+10 - 2nd owner sig, notary, seal box done

Adds tract captions over the existing signature columns, a second owner-of-record signature block and a notary block (Fulton 4.1.1 requires EACH owner to sign), plus an (AFFIX SEAL) placeholder box in the surveyor's certificate.

Script file
C3D-260619-R910.cs
Target
260619 · paper space
Author
claude
Approved
yes · auto-auth
Timeout
60s

C# payload

// REDLINE #9 + #10.
//  #9  Owner's Acknowledgement needs TWO owners, EACH signing (Fulton Sec. 4.1.1). Adds tract
//      captions over the two existing signature columns (Tract "A" = subdivider/applicant,
//      Tract "B" = Enon First Baptist Church by Pastor), a SECOND owner-of-record signature
//      block, and a notary block.
//  #10 Surveyor's seal - draws an (AFFIX SEAL) placeholder box beside the surveyor signature
//      rule in the certificate. The seal itself is the surveyor's to apply.
// Style follows what is already on the sheet: separate MText per label at explicit X, real Line
// entities for rules, 0.08" text on C-ANNO-CERT / C-ANNO-CERT-LINE (see cookbook 13).
// ADDS ONLY - nothing existing is erased. Host owns Tx; host regens after commit.
const string LAYOUT = "22X17 C", TLAYER = "C-ANNO-CERT", LLAYER = "C-ANNO-CERT-LINE";
const double H = 0.08;

var texts = new (double x, double y, double w, string t)[] {
    (11.56, 11.06, 2.6, @"TRACT ""A""  (SUBDIVIDER / APPLICANT)"),
    (15.13, 11.06, 2.6, @"TRACT ""B""  ENON FIRST BAPTIST CHURCH (BY PASTOR)"),
    (11.56, 9.45, 6.6, @"SECOND OWNER OF RECORD  (Fulton Co. Sec. 4.1.1 - EACH owner must sign)"),
    (11.56, 9.025, 2.6, @"Typed Name of Owner of Record"),
    (15.13, 9.025, 2.6, @"Typed Name of Owner of Record"),
    (11.56, 8.545, 2.6, @"Signature of Owner of Record"),
    (15.13, 8.545, 2.6, @"Signature of Owner of Record"),
    (11.56, 8.066, 2.6, @"Date"),
    (15.13, 8.066, 2.6, @"Date"),
    (11.56, 7.742, 6.6, @"NOTARY"),
    (11.56, 7.526, 6.6, @"Sworn to and subscribed before me this ______ day of ______________, 20____."),
    (11.56, 6.993, 2.6, @"Notary Public"),
    (15.13, 6.993, 2.6, @"My Commission Expires"),
    (11.56, 6.804, 6.6, @"(SEAL)"),
    (15.26, 14.05, 2.2, @"(AFFIX SEAL)")
};
var rules = new (double x1, double y1, double x2, double y2)[] {
    (11.56, 9.153, 14.11, 9.153),
    (15.13, 9.153, 17.68, 9.153),
    (11.56, 8.674, 14.11, 8.674),
    (15.13, 8.674, 17.68, 8.674),
    (11.56, 8.194, 14.11, 8.194),
    (15.13, 8.194, 17.68, 8.194),
    (11.56, 7.121, 14.11, 7.121),
    (15.13, 7.121, 17.68, 7.121),
    (15.16, 12.55, 15.16, 14.15),
    (17.16, 12.55, 17.16, 14.15),
    (15.16, 12.55, 17.16, 12.55),
    (15.16, 14.15, 17.16, 14.15)
};

var layDict = (DBDictionary)Tx.GetObject(Db.LayoutDictionaryId, OpenMode.ForRead);
var layout  = (Layout)Tx.GetObject(layDict.GetAt(LAYOUT), OpenMode.ForRead);
var ps      = (BlockTableRecord)Tx.GetObject(layout.BlockTableRecordId, OpenMode.ForWrite);
EnsureLayer(TLAYER, 7);
EnsureLayer(LLAYER, 7);

foreach (var t in texts)
{
    var mt = new MText {
        Location   = new Point3d(t.x, t.y, 0.0),
        Contents   = t.t,
        TextHeight = H,
        Width      = t.w,
        Attachment = AttachmentPoint.TopLeft,
        LineSpacingFactor = 1.0,
    };
    mt.Layer = TLAYER;
    ps.AppendEntity(mt);
    Tx.AddNewlyCreatedDBObject(mt, true);
}
foreach (var r in rules)
{
    var l2 = new Line(new Point3d(r.x1, r.y1, 0.0), new Point3d(r.x2, r.y2, 0.0));
    l2.Layer = LLAYER;
    ps.AppendEntity(l2);
    Tx.AddNewlyCreatedDBObject(l2, true);
}
Log("Added " + texts.Length + " text items and " + rules.Length + " rules (redline #9 second owner + notary, #10 seal box).");

Result

Status
success
Drawing file
C:\Users\sanja\OneDrive\_SurveyDisco\260619 - 3625 Stonewall Tell Rd, Atlanta, GA 30349, USA\260619 - 3625 Stonewall Tell Rd ROTATE.dwg
Message
Executed C3D-260619-R910 (0 entities touched).
Entities
Duration
661 ms
Civil 3D
25.0.0.0

Log

Added 15 text items and 12 rules (redline #9 second owner + notary, #10 seal box).

Notes

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

No notes yet.