← Inbox

C3D-0396 · READ-ONLY: E2 and water-valve layers [C3D-E2WVREAD] done

Lists layers whose name contains E2 or WATER/VALVE/WV with top-level and in-block counts, to identify exactly what 'kill E2 and water valve' targets.

Script file
C3D-0396.cs
Target
ACAD-260612-C-Store Sewer As-Built 60 EASEMENT PLAT LEGAL.dwg · model space
Author
claude
Approved
yes · auto-auth
Timeout
120s

C# payload

Log("drawing: " + Db.Filename);
var bt = (BlockTable)Tx.GetObject(Db.BlockTableId, OpenMode.ForRead);
var lt = (LayerTable)Tx.GetObject(Db.LayerTableId, OpenMode.ForRead);
var top=new Dictionary<string,int>(); var blk=new Dictionary<string,int>();
foreach (ObjectId bid in bt){ var def=(BlockTableRecord)Tx.GetObject(bid,OpenMode.ForRead); var d=def.IsLayout?top:blk; foreach (ObjectId sid in def){ var e=Tx.GetObject(sid,OpenMode.ForRead) as Autodesk.AutoCAD.DatabaseServices.Entity; if(e==null)continue; if(!d.ContainsKey(e.Layer))d[e.Layer]=0; d[e.Layer]++; } }
foreach (ObjectId id in lt){
    var l=(LayerTableRecord)Tx.GetObject(id,OpenMode.ForRead);
    string n=l.Name;
    if (n.IndexOf("E2",StringComparison.Ordinal)<0 && n.IndexOf("WATER",StringComparison.OrdinalIgnoreCase)<0 && n.IndexOf("VALVE",StringComparison.OrdinalIgnoreCase)<0 && n.IndexOf("WV",StringComparison.OrdinalIgnoreCase)<0) continue;
    int t=top.ContainsKey(n)?top[n]:0, b=blk.ContainsKey(n)?blk[n]:0;
    Log(string.Format("  {0,-34} top={1,-4} inblk={2,-4} {3}{4}", n, t, b, l.IsFrozen?"FRZ ":"", l.IsOff?"OFF":""));
}

Result

Status
success
Drawing file
C:\Users\sanja\OneDrive\_SurveyDisco\260613 - 5030 E Lake Pkwy, Stockbridge, GA 30281, USA\ACAD-260612-C-Store Sewer As-Built 60 EASEMENT PLAT LEGAL.dwg
Message
Executed C3D-0396 (0 entities touched).
Entities
Duration
340 ms
Civil 3D
25.0.0.0

Log

drawing: C:\Users\sanja\OneDrive\_SurveyDisco\260613 - 5030 E Lake Pkwy, Stockbridge, GA 30281, USA\ACAD-260612-C-Store Sewer As-Built 60 EASEMENT PLAT LEGAL.dwg
  FIRE_HYDRANT_VALVE                 top=0    inblk=3    
  WATER_VALVE                        top=0    inblk=5    FRZ 
  SEWER_MANHOLE E2                   top=0    inblk=6    FRZ 

Notes

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

No notes yet.