• Industries
  • Products
  • Buy
  • Services & Support
  • Communities
  • Discussion Groups

    .NET

    Reply
    Distinguished Contributor
    VB_Autocad_guy
    Posts: 136
    Registered: ‎07-24-2009
    Accepted Solution

    IteratePageSetups (Iterate PlotSettingsDicitionary)

    164 Views, 2 Replies
    06-13-2011 12:09 PM
        <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. 

     

    Please use plain text.
    Distinguished Contributor
    VB_Autocad_guy
    Posts: 136
    Registered: ‎07-24-2009

    Re: IteratePageSetups (Iterate PlotSettingsDicitionary)

    06-13-2011 01:38 PM in reply to: VB_Autocad_guy

    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. 


    Please use plain text.
    Contributor
    Posts: 22
    Registered: ‎03-25-2009

    Re: IteratePageSetups (Iterate PlotSettingsDicitionary)

    01-26-2012 09:45 AM in reply to: VB_Autocad_guy

    Yes, it helped alot - a very straightforward anwser.

    Please use plain text.