.NET
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IteratePageSetups (Iterate PlotSettingsDicitionary)

2 REPLIES 2
SOLVED
Reply
Message 1 of 3
VB_Autocad_guy
499 Views, 2 Replies

IteratePageSetups (Iterate PlotSettingsDicitionary)

    <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. 

 

2 REPLIES 2
Message 2 of 3

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
in reply to: VB_Autocad_guy

Yes, it helped alot - a very straightforward anwser.

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk DevCon in Munich May 28-29th


Autodesk Design & Make Report

”Boost