IteratePageSetups (Iterate PlotSettingsDicitionary)

IteratePageSetups (Iterate PlotSettingsDicitionary)

Anonymous
Not applicable
860 Views
2 Replies
Message 1 of 3

IteratePageSetups (Iterate PlotSettingsDicitionary)

Anonymous
Not applicable
    <CommandMethod("IterateSetups")> _
    Public Sub IteratePageSetups()
        '' Get the current document and database, and start a transaction
        Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
        Dim acCurDb As Database = acDoc.Database
        Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
            '' This example returns the PageSetup table for the current database
            Dim acPltDic As DBDictionary
            acPltDic = acTrans.GetObject(acCurDb.PlotSettingsDictionaryId, _
                                               OpenMode.ForRead)
            '' Step through the PageSetup table and print each PageSetup name
            For Each acObjId In acPltDic
                Dim acPlotSet As PlotSettings
                acPlotSet = acTrans.GetObject(acObjId, OpenMode.ForRead)
                acDoc.Editor.WriteMessage(vbLf & acPlotSet.PlotSettingsName)
            Next
            '' Dispose of the transaction
        End Using
    End Sub

 What's the sub object for a PlotSettings Dicitionary here? I'm just trying to iterate through them. 

 

0 Likes
Accepted solutions (1)
861 Views
2 Replies
Replies (2)
Message 2 of 3

Anonymous
Not applicable
Accepted solution

Okay so I Figured out the object I needed

 Dim acPltDic As DBDictionary     

 Dim acPltDicEntry As DBDictionaryEntry

 

In business: 

 

    <CommandMethod("its")> _
    Public Sub IteratePage()
        '' Get the current document and database, and start a transaction
        Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
        Dim acCurDb As Database = acDoc.Database
        Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
            '' This example returns the PageSetup table for the current database
            Dim acPltDic As DBDictionary
            Dim acPltDicEntry As DBDictionaryEntry
            Dim acPageSetup As PlotSettings

            acPltDic = acTrans.GetObject(acCurDb.PlotSettingsDictionaryId, _
                                               OpenMode.ForRead)
            '' Step through the PageSetup table and print each PageSetup name

            Dim objId As ObjectId
            For Each acPltDicEntry In acPltDic
                MsgBox("Key: " & acPltDicEntry.Key)

                'Get PageSetup
                ObjId = acPltDic.GetAt(acPltDicEntry.Key)
                acPageSetup = objID.GetObject(OpenMode.ForRead)
                MsgBox("Pagesetup: " & acPageSetup.PlotSettingsName)

            Next

            '' Dispose of the transaction
        End Using
    End Sub

 Maybe this will help someone else. 


Message 3 of 3

Dave_B
Enthusiast
Enthusiast

Yes, it helped alot - a very straightforward anwser.

0 Likes