AlibrePDMObjectModel 1.0.3

There is a newer version of this package available.
See the version list below for details.
dotnet add package AlibrePDMObjectModel --version 1.0.3
                    
NuGet\Install-Package AlibrePDMObjectModel -Version 1.0.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="AlibrePDMObjectModel" Version="1.0.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AlibrePDMObjectModel" Version="1.0.3" />
                    
Directory.Packages.props
<PackageReference Include="AlibrePDMObjectModel" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add AlibrePDMObjectModel --version 1.0.3
                    
#r "nuget: AlibrePDMObjectModel, 1.0.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package AlibrePDMObjectModel@1.0.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=AlibrePDMObjectModel&version=1.0.3
                    
Install as a Cake Addin
#tool nuget:?package=AlibrePDMObjectModel&version=1.0.3
                    
Install as a Cake Tool

AlibrePDMObjectModel (.NET library)

AlibrePDMObjectModel wraps the Alibre PDM vault API (safes, projects, libraries, folders, files, properties, classes, version history) in a VBA-style object model. PDMApplication is the entry point. Call it from VB.NET or C#.

Package ID AlibrePDMObjectModel
Entry point PDMApplication
Target frameworks net481, net8.0
Runtime Windows only, x64
License MIT

Requirements

  • Windows x64.
  • Alibre Design 29.x with Alibre PDM, installed. The library drives PDM over COM. It does not redistribute AlibreX.dll; it loads that at runtime from your licensed Alibre install.
  • A reachable Alibre PDM vault.

Installation

dotnet add package AlibrePDMObjectModel

Or add a PackageReference:

<PackageReference Include="AlibrePDMObjectModel" Version="1.0.3" />

Getting started

Connect with credentials, or reuse a PDM Browser session you already signed into:

Dim app As New PDMApplication()
app.Connect("http://localhost:8099/", "MYDOMAIN", "user", "password")
' Or reuse the Alibre UI's connection:
' app.UseActiveConnection()

For Each safe In app.Safes
    Console.WriteLine(safe.Name)
Next

Browse a safe and read file metadata:

Dim safe = app.GetSafe("Alibre Safe")
Dim proj = safe.Projects("bore")

For Each f As PDMFile In proj.Files
    Console.WriteLine($"{f.FullName}  v{f.CurrentVersion}")
    For Each p As PDMProperty In f.Properties
        Console.WriteLine($"  {p.DisplayName} = {p.ValueText}")
    Next
Next

C# reads the same way:

var app = new PDMApplication();
app.UseActiveConnection();
var safe = app.GetSafe("Alibre Safe");
foreach (PDMFile f in safe.Projects["bore"].Files)
    Console.WriteLine($"{f.FullName} v{f.CurrentVersion}");

Object model

  • PDMApplication: entry point. Connect / UseActiveConnection / Disconnect, Safes, GetSafe(name).
  • PDMSafe: Projects, Libraries, Classes, PropertyDefinitions.
  • PDMFolder: Folders, Files, create / upload / check-in.
  • PDMFile: Properties, History, Lock / Unlock, CheckIn, Rename, SetPropertyValue.
  • PDMProperty / PDMPropertyDefinition: metadata values and the definitions behind them.
  • PDMClass / PDMClassDataItem: vault classes and their data items.

Every call throws a PDMException on failure, with a friendly message. PDMApplication.LastError holds the most recent one.


Not implemented in this build

PDMFile.CheckIn and PDMFolder.UploadFiles throw NotImplementedException. The asynchronous PDM upload/check-in hangs when driven over a reused Alibre Design connection, because the completion callback never reaches the calling thread. Check in and upload from the Alibre PDM Browser instead.

Everything else is verified against a live vault: create, copy, move, rename, delete, lock, unlock, property get and set, revisions, and the full read and browse surface.

PDMFile.Copy returns Nothing: the copied file materializes asynchronously. Wait, then look the file up by name in the destination folder.


Notes

One client at a time holds the active PDM connection. A second concurrent client gets "another client instance is already accessing the Server."


© 2026 Stephen S. Mitchell. Released under the MIT License.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Framework net481 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 4.8.1

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.4 101 7/26/2026
1.0.3 92 7/25/2026
1.0.2 95 7/25/2026

v1.0.3 - Package metadata only: removed the misleading "VBA" tag (this is a VBA-style object model for .NET, not a VBA package) and replaced it with object-model and COM. No code changes from v1.0.2. v1.0.2 -Fix: PDMFolder.Files and PDMFolder.Folders no longer throw NullReferenceException on a freshly created project (the COM collection is Nothing until the folder is re-fetched); they now return an empty collection. Disabled (throw NotImplementedException instead of failing badly, implementation retained): PDMFile.CheckIn and PDMFolder.UploadFiles, because the asynchronous PDM upload/check-in hangs when driven over a reused Alibre Design connection (the completion callback never reaches the STA thread); Use the Alibre PDM Browser for check-in and upload. Fix: PDMFolder.CreateFolder returned a folder whose underlying COM object was unpopulated, which made any later use of it (for example PDMFile.Move into that folder) fail with a null reference; it now re-fetches the new folder by name. PDMFile.Move also rejects an unbound destination folder with a clear message. All other operations (create/copy/move/rename/delete/lock/unlock/property get+set/revisions and the full read+browse surface) are verified against a live vault. v1.0.1 - PDMFiles.Item(name) falls back to Name/FullName enumeration when COM GetFileItemByName returns nothing.