ADN Open CIS
Сообщество программистов Autodesk в СНГ

15/08/2014

Лёгкое программирование под Autodesk Vault Часть 31

Создание папок

Методы

Самая простая операция в работе с папками. Осуществляется одним из двух методов:

  • public new Folder AddFolder( System.string name, System.long parentId, System.bool isLibrary)
  • public new Folder AddFolderWithCategory( System.string name, System.long parentId, System.bool isLibrary, System.long categoryId)

Оба метода возвращают объект Folder из пространства имен Autodesk.Connectivity.WebServices. При этом второй может сразу задавать категорию папки, однако он находится в классе DocumentServiceExtensions, а не DocumentService.

Ошибки

В процессе работы могут возникнуть ошибки, идентифицировать которые можно по их кодам:

Код

Название

Описание

1011

AddFolderExists

Папка не может быть создана, поскольку такая уже существует.

1042

AddFolderChildRootInvalid

Сбой проверки правила создания папки: родитель дожен существовать у всех, за исключением корневой папки.

1043

AddFolderLibraryRelationshipInvalid

Сбой проверки правила создания папки: библиотечные папки могут иметь не-библиотечного родителя, только если он - корневая папка. Библиотечные папки не могут иметь не-библиотечные дочерние папки.

1120

FolderFileNameCollision

AddFile, CheckinFile, MoveFile, ShareFile, AddFolder

 

Пример использования

Предлагаю для ознакомления части модуля Vault2014PowerPack

Add-VaultFolder

Аналог команды mkdir (или md) для файловых систем – создает каталог.

 

Код - PowerShell: [Выделить]
  1. function Add-VaultFolder
  2. {
  3.                 [OutputType([Autodesk.Connectivity.WebServices.Folder])]
  4.     param(
  5.                 [Parameter(Position=0, Mandatory=$true)]
  6.                 [System.String]
  7.                 $name,
  8.  
  9.                 [Parameter(Position=1, Mandatory=$false)]
  10.                 [System.String]
  11.                 $parentPath
  12.                 )
  13. $parentPath
  14. if (($parentPath -eq "") -or ($parentPath -eq $null)) {$parentPath = $vltFolderCurrent.FullName}
  15.     try {
  16.     $pFolder = $vltDocumentSvc.GetFolderByPath($parentPath)
  17.     $newFolder = $vltDocumentSvc.AddFolder($name, $pFolder.ID, $false)
  18.     $newFolder
  19.     }
  20.     catch {
  21.                 throw
  22.              }
  23. }

Автор: Дмитрий Емельянов
Автор перевода: Дмитрий Емельянов

Обсуждение: http://adn-cis.org/forum/index.php?topic=914

Опубликовано 15.08.2014
Отредактировано 15.08.2014 в 11:08:33