← Inbox

C3D-VPSTATE · Read per-VP freeze on sheets A/B (read-only) done

Current frozen SS-BOUNDARY/SS-HERO layers in 22X17 A and B viewports.

Script file
C3D-VPSTATE.cs
Target
active document · paper space
Author
claude
Approved
yes · claude (read-only)
Timeout
60s

C# payload

// READ-ONLY: current per-VP frozen layers on 22X17 A and 22X17 B (SS-BOUNDARY / SS-HERO only),
// so we know what still needs freezing so each sheet shows only its own bold hero.
using System;
using System.Collections.Generic;
using Autodesk.AutoCAD.DatabaseServices;

var db=Db;
using (var tr=db.TransactionManager.StartTransaction())
{
    var ld=(DBDictionary)tr.GetObject(db.LayoutDictionaryId,OpenMode.ForRead);
    foreach(var name in new[]{"22X17 A","22X17 B"})
    {
        foreach(DBDictionaryEntry e in ld){var lay=(Layout)tr.GetObject(e.Value,OpenMode.ForRead);
            if(!string.Equals(lay.LayoutName,name,StringComparison.OrdinalIgnoreCase))continue;
            foreach(ObjectId vid in lay.GetViewports()){var vp=tr.GetObject(vid,OpenMode.ForRead) as Viewport;
                if(vp==null||vp.Number==1)continue;
                var fl=vp.GetFrozenLayers(); var names=new List<string>();
                if(fl!=null)foreach(ObjectId lid in fl){var n=((LayerTableRecord)tr.GetObject(lid,OpenMode.ForRead)).Name;
                    if(n.IndexOf("SS-BOUNDARY",StringComparison.OrdinalIgnoreCase)>=0||n.IndexOf("SS-HERO",StringComparison.OrdinalIgnoreCase)>=0) names.Add(n);}
                names.Sort(StringComparer.OrdinalIgnoreCase);
                Log($"[{name}] frozen: {(names.Count==0?"<none>":string.Join(", ", names))}");
            }
        }
    }
    tr.Commit();
}

Result

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

Log

[22X17 A] frozen: SS-HERO TRACT B
[22X17 B] frozen: SS-HERO TRACT A
[22X17 B] frozen: SS-HERO TRACT A

Notes

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

No notes yet.