C3D-0408 · READ-ONLY: state of the 7 target layers after the failed C3D-0407 [C3D-KILLCHK] done
After C3D-0407 aborted with eInvalidLayer, reports for each of the 7 target layers whether it still exists and how many top-level/guts entities remain, plus the current layer, to see what the failed run actually did.
C# payload
// Read the state of the 7 target layers after the failed C3D-0407: do they still exist, and
// how much is on each. Determines what actually happened before the eInvalidLayer abort.
Log("drawing: " + Db.Filename);
var bt = (BlockTable)Tx.GetObject(Db.BlockTableId, OpenMode.ForRead);
var lt = (LayerTable)Tx.GetObject(Db.LayerTableId, OpenMode.ForRead);
string[] tgt = { "WATER_LINE_PTS","SS-0-FRAME","SEWER_EASEMENT 1 ORNAGE","SEWER_EASEMENT 1 YELLOW","SEWER_EASEMENT E2","SEWER_EASEMENT RED","PDF2_E IPF-SET" };
foreach (var n in tgt){
if(!lt.Has(n)){ Log(" " + n + " : DELETED (gone)"); continue; }
int top=0,blk=0;
foreach (ObjectId bid in bt){ var def=(BlockTableRecord)Tx.GetObject(bid,OpenMode.ForRead); foreach (ObjectId sid in def){ var e=Tx.GetObject(sid,OpenMode.ForRead) as Autodesk.AutoCAD.DatabaseServices.Entity; if(e==null||e.IsErased||!e.Layer.Equals(n,StringComparison.OrdinalIgnoreCase))continue; if(def.IsLayout)top++; else blk++; } }
var l=(LayerTableRecord)Tx.GetObject(lt[n],OpenMode.ForRead);
Log(string.Format(" {0} : EXISTS top={1} guts={2} {3}", n, top, blk, l.IsFrozen?"FRZ":""));
}
Log("current layer: " + ((LayerTableRecord)Tx.GetObject(Db.Clayer,OpenMode.ForRead)).Name);
Result
Log
drawing: C:\Users\sanja\OneDrive\_SurveyDisco\260613 - 5030 E Lake Pkwy, Stockbridge, GA 30281, USA\ACAD-260612-C-Store As-Built 60 H2O wPROFILE.dwg WATER_LINE_PTS : EXISTS top=0 guts=50 SS-0-FRAME : EXISTS top=0 guts=4 SEWER_EASEMENT 1 ORNAGE : EXISTS top=1 guts=0 SEWER_EASEMENT 1 YELLOW : EXISTS top=1 guts=0 FRZ SEWER_EASEMENT E2 : EXISTS top=1 guts=0 FRZ SEWER_EASEMENT RED : EXISTS top=13 guts=0 FRZ PDF2_E IPF-SET : EXISTS top=0 guts=16 current layer: WATER_LINE_PTS
Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.