Imports Autodesk.Connectivity.Explorer.Extensibility
Imports Autodesk.Connectivity.Extensibility.Framework
<Assembly: ApiVersion("10.0")>
<Assembly: ExtensionId("F184B08F-C81C-46F6-A58F-55BD9991F28F")>
Public Class VENs
Implements IExplorerExtension
Public Property VltApp As IApplication ' Пришлось создать публичный параметр для доступа к приложению
Public Function CommandSites() As IEnumerable(Of CommandSite) Implements IExplorerExtension.CommandSites
Return Nothing
End Function
Public Function CustomEntityHandlers() As IEnumerable(Of CustomEntityHandler) Implements IExplorerExtension.CustomEntityHandlers
Return Nothing
End Function
Public Function DetailTabs() As IEnumerable(Of DetailPaneTab) Implements IExplorerExtension.DetailTabs
Return Nothing
End Function
Public Function HiddenCommands() As IEnumerable(Of String) Implements IExplorerExtension.HiddenCommands
Return Nothing
End Function
Public Sub OnLogOff(application As IApplication) Implements IExplorerExtension.OnLogOff
End Sub
Public Sub OnLogOn(application As IApplication) Implements IExplorerExtension.OnLogOn
' Создание соединения
Dim Connection As Autodesk.DataManagement.Client.Framework.Vault.Currency.Connections.Connection = application.Connection
' Подключаем менеджер сервисов
Dim WebManager As Autodesk.Connectivity.WebServicesTools.WebServiceManager = Connection.WebServiceManager
' Устанавливаем значение параметра для доступа к приложению
VltApp = application
' Регстрируем обработчик события UpdateFileLifecycleStateEvents.Post и привязываем его к процедуре, которая его обработает
AddHandler Autodesk.Connectivity.WebServices.DocumentServiceExtensions.UpdateFileLifecycleStateEvents.Post, AddressOf Get_Lifecycle_Changes
End Sub
' Процедура обработки события
Public Sub Get_Lifecycle_Changes(ByVal sender As Object, ByVal e As Autodesk.Connectivity.WebServices.UpdateFileLifeCycleStateCommandEventArgs)
' Создание соединения
Dim Connection As Autodesk.DataManagement.Client.Framework.Vault.Currency.Connections.Connection = VltApp.Connection
' Подключаем менеджер сервисов
Dim WebManager As Autodesk.Connectivity.WebServicesTools.WebServiceManager = Connection.WebServiceManager
' Определяем все версии файлой текущего/выделенного файла
Dim files As Autodesk.
Connectivity.
WebServices.
File() = WebManager.
DocumentService.
FindLatestFilesByMasterIds(e.
FileMasterIds) ' Получаем значения всех свойств текущей (надеюсь, что 0 - индекс текущего файла) версии файла
Dim values
As Autodesk.
Connectivity.
WebServices.
PropInst() = WebManager.
PropertyService.
GetPropertiesByEntityIds("FILE",
New Long() {files(0).
Id}) ' Перебираем все свойства в цикле и выводим в сообщении их имя и значение
For Each vl As Autodesk.Connectivity.WebServices.PropInst In values
' Имя свойства
Dim propName As String = WebManager.PropertyService.GetPropertyDefinitionInfosByEntityClassId("FILE", New Long() {vl.PropDefId})(0).PropDef.DispName
' Значение свойства
Dim propValue As String = vl.Val.ToString
' Сообщение
MsgBox(propName & vbCrLf & propValue)
Next
End Sub
Public Sub OnShutdown(application As IApplication) Implements IExplorerExtension.OnShutdown
End Sub
Public Sub OnStartup(application As IApplication) Implements IExplorerExtension.OnStartup
End Sub
End Class