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.
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
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.