C3D-0432 · Dump SS_BLOCK attribute tags + values (read-only) [C3D-0431] done
Read-only: list SS_BLOCK* defs + attdef tags, dump every inserted ref attribute tag=value across all spaces.
C# payload
var bt = (BlockTable)Tx.GetObject(Db.BlockTableId, OpenMode.ForRead);
Log("=== BLOCK DEFS (SS_BLOCK*) ===");
foreach (ObjectId btrId in bt) {
var btr = (BlockTableRecord)Tx.GetObject(btrId, OpenMode.ForRead);
string n = btr.Name;
if (n.IndexOf("SS_BLOCK", StringComparison.OrdinalIgnoreCase) < 0) continue;
Log("DEF: '" + n + "' isLayout=" + btr.IsLayout + " hasAttDef=" + btr.HasAttributeDefinitions);
foreach (ObjectId eid in btr) {
var ad = Tx.GetObject(eid, OpenMode.ForRead) as AttributeDefinition;
if (ad != null) Log(" ATTDEF tag='" + ad.Tag + "' default='" + ad.TextString + "'");
}
}
Log("=== INSERTED REFERENCES (all spaces) ===");
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);
string bn = bd.Name;
if (bn.IndexOf("SS_BLOCK", StringComparison.OrdinalIgnoreCase) < 0) continue;
Log("REF of '" + bn + "' in space '" + space.Name + "'");
foreach (ObjectId arId in br.AttributeCollection) {
var ar = Tx.GetObject(arId, OpenMode.ForRead) as AttributeReference;
if (ar != null) Log(" ATT tag='" + ar.Tag + "' value='" + ar.TextString + "'");
}
}
}
Result
Log
=== BLOCK DEFS (SS_BLOCK*) === DEF: 'SS_BLOCK_11X17' isLayout=False hasAttDef=True ATTDEF tag='JOB_NO' default='JOB NO.: 251002' ATTDEF tag='SITE_ADDRESS' default='SITE_ADDRESS' ATTDEF tag='REF_DB_PG' default='REF DB xxx Page xxx' ATTDEF tag='LAND_LOT' default='LAND LOT: ###' ATTDEF tag='DISTRICT' default='DISTRICT: #TH' ATTDEF tag='COUNTY' default='COUNTY: CLAYCO' ATTDEF tag='DATE' default='DATE: 10/16/25' ATTDEF tag='SUBDIVISION_NAME_LOT' default='SUBDIVISION_NAME LOT ##' ATTDEF tag='PREP_FOR' default='PREP_FOR' ATTDEF tag='SURVEY_TYPE' default='BOUNDARY SURVEY' ATTDEF tag='FIRM_PANEL' default='13135C0016G' ATTDEF tag='FIRM_DATE' default='FEBRUARY 4, 2013' ATTDEF tag='FLOOD_ZONE' default='X' === INSERTED REFERENCES (all spaces) === REF of 'SS_BLOCK_11X17' in space '*Paper_Space' ATT tag='JOB_NO' value='JOB NO.: 251002' ATT tag='SITE_ADDRESS' value='SITE_ADDRESS' ATT tag='REF_DB_PG' value='REF DB xxx Page xxx' ATT tag='LAND_LOT' value='LAND LOT: ###' ATT tag='DISTRICT' value='DISTRICT: #TH' ATT tag='COUNTY' value='COUNTY: CLAYCO' ATT tag='DATE' value='DATE: 10/16/25' ATT tag='SUBDIVISION_NAME_LOT' value='SUBDIVISION_NAME LOT ##' ATT tag='PREP_FOR' value='PREP_FOR' ATT tag='SURVEY_TYPE' value='BOUNDARY SURVEY' ATT tag='FIRM_PANEL' value='13135C0016G' ATT tag='FIRM_DATE' value='FEBRUARY 4, 2013' ATT tag='FLOOD_ZONE' value='X'
Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.