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

VB.NET: Deleting Custom Properties using SheetSet Manager API in VB.NET

2 REPLIES 2
SOLVED
Reply
Message 1 of 3
jshimkus
6321 Views, 2 Replies

VB.NET: Deleting Custom Properties using SheetSet Manager API in VB.NET

I currently use code similar to Lee Ambrosius's 2009 AU handout that shows how to set/create custom properties.  It can be seen here http://adndevblog.typepad.com/autocad/2013/09/using-sheetset-manager-api-in-vbnet.html, search for the header 'Adding Sheet Set and Sheet Properties'.

 

I have now accumulated numerous unused custom properties in my sheet set.  I haven't been able to find a way to delete these additional custom properties.

 

Because I use multiple subsets with multiple sheets for printing, I would rather not have to go through all the sheets, store all the custom properties I need, destroy all the existing custom properties, and then re-create just the ones I need.

 

Any suggestions on how to delete individual custom properties would be helpful.

 

MEP 2012 with VB.NET

 

Thanks

2 REPLIES 2
Message 2 of 3
Balaji_Ram
in reply to: jshimkus

Hi John,

 

Can you please try using "IAcSmCustomPropertyBag.SetProperty" and pass a null custom property value ?

 

Here is a sample code to remove a few custom properties

 

        sheetSetMgr = New AcSmSheetSetMgr

        Dim iterDb As IAcSmEnumDatabase
        iterDb = sheetSetMgr.GetDatabaseEnumerator

        Dim ItemDb As IAcSmPersist
        ItemDb = iterDb.Next

        sheetdb = ItemDb

        LockDatabase()

        Dim cBag As IAcSmCustomPropertyBag
        cBag = sheetdb.GetSheetSet().GetCustomPropertyBag()

        Dim enumeratorProperty As IAcSmEnumProperty
        enumeratorProperty = cBag.GetPropertyEnumerator()
        enumeratorProperty.Reset()

        Dim name As String = ""
        Dim customPropertyValue As AcSmCustomPropertyValue = Nothing

        enumeratorProperty.Next(name, customPropertyValue)

        Dim customPropNames As System.Collections.Specialized.StringCollection
        customPropNames = New System.Collections.Specialized.StringCollection
        customPropNames.Add("Test3")
        customPropNames.Add("Test6")

        Do While Not customPropertyValue Is Nothing

            If customPropertyValue.GetFlags() = PropertyFlags.CUSTOM_SHEETSET_PROP And customPropNames.Contains(name) Then
                cBag.SetProperty(name, Nothing)
            End If

            enumeratorProperty.Next(name, customPropertyValue)
        Loop

        UnlockDatabase()

 

Regards,



Balaji
Developer Technical Services
Autodesk Developer Network

Message 3 of 3
jshimkus
in reply to: Balaji_Ram

Using the statement 'cBag.SetProperty(name, Nothing)' did the trick.

 

Thank You

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