C#/Visual Studio Vault numbering scheme
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hello,
I've started developing a desktop application that will modify parameters in a model and then save that model according to the naming scheme used in Vault. However, I'm facing an issue where the application doesn't recognize the Vault connection. The Vault is running when the application is launched. The error I'm encountering is:
"The type initializer for 'Autodesk.DataManagement.Client.Framework.Forms.Library' threw an exception."
Sometimes, theConnection variable is null.
I found this code on the forum, but it was written in VB, so I translated it into C#. I do everything from within Visual Studio.
Code is below:
Using ACW = Autodesk.Connectivity.WebServices; Using VDF = Autodesk.DataManagement.Client.Framework; Using Autodesk.DataManagement.Client.Framework.Vault; Using Autodesk.DataManagement.Client.Framework.Vault.Forms; Using edm = Connectivity.InventorAddin.EdmAddin; Using Autodesk.DataManagement.Client.Framework.Internal.ExtensionMethods;
Public void GetFilenamesFromVaultNamingScheme(String RequiredSchemeName, String RequiredSchemeString, Int numberOfNames) { VDF.Vault.Currency.Connections.Connection Connection = edm.EdmSecurity.Instance.VaultConnection; String genNum = String.Empty; String first = String.Empty; String last = String.Empty; If (Connection != null) { var entityClassId = VDF.Vault.Currency.Entities.EntityClassIds.Files; ACW.NumSchm[] numSchemes = Connection.WebServiceManager.NumberingService.GetNumberingSchemes(entityClassId, 0); ACW.NumSchm requiredScheme = numSchemes.FirstOrDefault(sch => sch.Name == RequiredSchemeName); If (requiredScheme != null) { String[] numGenArgs = { RequiredSchemeString }; For (Int i = 1; i <= numberOfNames; i++) { genNum = Connection.WebServiceManager.DocumentService.GenerateFileNumber(requiredScheme.SchmID, numGenArgs); If (i == 1) first = genNum; If (i == numberOfNames) last = genNum; } MessageBox.Show($"Numbers generated: {first} to {last}", "Success!"); } Else { MessageBox.Show("Vault didn't work", "Fail!"); } } }
@JhoelForshav I mentioned you because I saw that you wrote this code. Can you help me?
EDIT;
When I use this code directly in Inventor, it works correctly