Public Function Get_Required_Vault_Folder(ByVal RevitCentralPath As String) As String
' Параметр для хранения строк будущего xml-файла
Dim myXML As New List(Of String)
' Параметр для соединения с Vault из Revit
Dim conn As VDF.Vault.Currency.Connections.Connection = Connectivity.Application.VaultBase.ConnectionManager.Instance.Connection
' Параметр для определения связанных папок между Revit и Vault
Dim GVO As String = conn.WebServiceManager.KnowledgeVaultService.GetVaultOption("RevitVaultFolderMapping")
' Добавляем текст связанных папок между Revit и Vault
myXML.Add(GVO)
' Определение папки на сервере для центральной модели проекта
Dim cmFolder As String = IO.Path.GetDirectoryName(RevitCentralPath)
' Параметр для хранения соответствующей папки в хранилище Vault
Dim vltFolder As String = ""
' Сохранение xml-файла
Dim xmlFile As String = Environ("TEMP") & "\RevitVaultFolderMapping.xml"
IO.
File.
WriteAllLines(xmlFile, myXML
) ' Читаем получившийся xml-файл
Dim xdoc As XDocument = XDocument.Load(xmlFile)
' Перебираем все элементы xml-файла внутри элемента "MappingItems"
For Each xmlItem As XElement In xdoc.Element("MappingItems").Elements
' Если аттрибут "PhysicalPath" = пути к файлу проекта на сервере, то получаем его папку в хранилище Vault
If xmlItem.Attribute("PhysicalPath").Value = cmFolder Then
vltFolder = xmlItem.Attribute("VaultPath").Value
End If
Next
' Возвращаем папку в Vault
Return vltFolder
End Function