AlibrePDMObjectModel 1.0.4

dotnet add package AlibrePDMObjectModel --version 1.0.4
                    
NuGet\Install-Package AlibrePDMObjectModel -Version 1.0.4
                    
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.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AlibrePDMObjectModel" Version="1.0.4" />
                    
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.4
                    
#r "nuget: AlibrePDMObjectModel, 1.0.4"
                    
#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.4
                    
#: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.4
                    
Install as a Cake Addin
#tool nuget:?package=AlibrePDMObjectModel&version=1.0.4
                    
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.4" />

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, PDMFolder.UploadFiles and PDMFile.Move 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. PDMFile.Move reports success but the file leaves the source folder without arriving in the destination. Check in, upload and move from the Alibre PDM Browser instead.

Everything else is verified against a live vault: create, copy, 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.4 - Version alignment release: all three Alibre packages published together at 1.0.4. No code changes from v1.0.3. v1.0.3 - Removed the misleading "VBA" tag (this is a VBA-style object model for .NET, not a VBA package). Disabled PDMFile.Move (throws NotImplementedException, implementation retained): verified against a live vault, the move reports success but the file leaves the source folder without arriving in the destination. Use the Alibre PDM Browser to move files. Fix: PropertyDefinitions(name) now resolves either the definition's underlying name or its display name, instead of failing when given the identifier the caller happens to hold. 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.