US$0.00
0

Category: SOLIDWORKS

A Practical Guide to the SOLIDWORKS PDM API in 2026

The SOLIDWORKS PDM API is one of the most capable developer tools in the SOLIDWORKS ecosystem. It is built as a Windows COM object library. This architecture provides very deep access to the vault, workflows, variables, and the entire PDM client environment. Many developers expect a modern HTTP interface similar to typical cloud APIs. The PDM API works differently. It is stateful, local, and tightly integrated with the Windows process that runs the PDM client. A good place to start with the SOLIDWORKS PDM API is the official documentation. Most API calls have examples in C#, VB.NET and VBA. A COM Object Model, Not a REST API Since the PDM API is COM-based, your application (If it is a .NET application) interacts with DLLs that are registered in Windows: From the context of VBA macros, the references are slightly different. When you install the PDM client, a reference called PDMWorks Enterprise XXXX Type Library is installed for you: There are no HTTP requests, no token-based authentication, no JSON data formats, and no web callbacks. You communicate directly with PDM using COM interfaces such as: IEdmVault5IEdmFile5IEdmFolder5 This gives developers immediate, high-performance access to metadata, folders, variables, references, and workflow information. Because the calls happen inside the PDM client session, they can respond instantly to events such as check-in, state change, add file, add folder, or card interactions. Which Programming Languages Work With the SOLIDWORKS PDM API Any language that supports COM interop can be used. The most common today are: Python can also be used, but only through external COM wrappers. Simple VBA Macro to Log Into a Vault Below is a simple VBA example that connects to a PDM Professional vault. This can be used inside a SOLIDWORKS macro or Excel macro. This is the most basic example but it shows how COM objects are created and used. PDM Convert Task PDM ships with the SOLIDWORKS Task Add-in. This add-in can be used to create tasks (Scripts that run on the user’s machine or delegated to other computers on the network). These tasks have scripting pages where administrators can add/edit the VBA logic of the task. These types of scripts are commonly used in PDM tasks that generate PDF, DXF, or STEP documents. Developing With C# in .NET Most modern PDM development is done in C#. To use the PDM API, reference the assemblies mentioned above. A simple C# example to log into a vault looks like this: From there, developers typically work with interfaces like: IEdmFolder5IEdmFile5IEdmBatchGetIEdmBatchUpdateIEdmEnumeratorVariable5 These provide almost complete access to files, references, variables, and metadata. Types of Applications You Can Build Developers use the PDM API to create many types of solutions. The most common categories are shown below. PDM Add InsRuns directly inside the PDM client. Best for deep automations like revision control logic, approval logic, or multi-file processing. A great example of this is our free column set customizer.PDM TasksAutomate file conversion, data extraction, printing, publishing, or scripted actions. Tasks run inside a controlled environment and support COM, .NET, and native add-ins. PDMPublisher, a Blue Byte Systems Inc product, is another example.Desktop UtilitiesStandalone EXE tools that use IEdmVault5 to log in and perform batch actions such as metadata cleanup or migration. Check out PDMShell: our data management solution inside of SOLIDWORKS PDM. Learn the PDM API in Three Days With Blue Byte Systems If you want to master the PDM API quickly, Blue Byte Systems offers a hands-on three-day training course that covers the full API stack. You learn how to build real add-ins, tasks, macros, workflow hooks, batch tools, and event-driven automations. The course walks you through live examples and real vault scenarios so you can apply everything immediately in your environment. If you or your team would like details, you can reach out directly at amen@bluebyte.biz

Read More »

Why “Class Not Registered” Happens When Loading SOLIDWORKS PDM Add-ins

If you have ever tried loading a PDM add-in and hit a confusing startup error, understanding why “class not registered” happens when loading SOLIDWORKS PDM add-ins is the first step to fixing it. This issue usually points to a broken or incomplete COM registration, often caused by mismatched permissions or missing system components. When a SOLIDWORKS PDM add-in fails to load with the message: Failed to load add-inReason: Class not registered the cause often isn’t the add-in code or COM registration itself: It’s the elevation context in which the host application runs. Windows isolates COM registrations between two different scopes: COM Registration Scope Registry Location Accessible When Per-User HKEY_CURRENT_USER\Software\Classes\CLSID The process runs non-elevated (normal user context). Per-Machine HKEY_LOCAL_MACHINE\Software\Classes\CLSID The process runs elevated (as Administrator) or system-wide. When you register your SOLIDWORKS PDM add-in (e.g. CardSync.dll) using regasm or the PDM Administration tool, it is normally stored under the current user’s profile (HKCU). However, if the host process like File Explorer, PDM Explorer, or even your test harness (Orca.Tests.exe – At Blue Byte Systems, we have developed our very own unit testing framework for add-ins), runs as Administrator, Windows will block access to any COM object registered per user. That’s exactly what the “Class not registered” dialog means. SOLIDWORKS PDM Explorer itself is not designed to run elevated. When your own executable or service is launched as Administrator, it now operates in a different COM security boundary and cannot see the user-level registration of your add-in. In the example of the screenshot above, I’m debugging inside Visual Studio (ADMIN) and launching my process from there. The moment Visual Studio is elevated, every child process (including your test harness) inherits that elevation, and therefore loses access to the per-user COM registry hive. Microsoft’s Official Explanation Applications that are run-elevated (whether manifested as RequireAdministrator or selected via Run as Administrator), as well as applications run from an Administrator account where UAC is disabled, cannot access any COM objects configured per-user. (Source: MSDN – “Manifestation” and Stack Overflow discussion) How to Fix or Avoid It Our Practical Advice If your application interacts with SOLIDWORKS PDM’s COM APIs, never run it as Administrator unless the add-in is registered per-machine.

Read More »

What’s New in PDM2Excel 2025

PDM2Excel has become the go-to tool for companies looking to automate the export of Bills of Materials (BOMs) from SOLIDWORKS PDM into Excel spreadsheets. It streamlines workflows by reducing manual work, ensuring consistency across teams, and giving businesses a reliable way to format and distribute engineering data. With the 2025 release, and especially with the focus on what’s new in PDM2Excel 2025, the tool introduces several highly-requested improvements, simplifying setup, expanding export capabilities, and improving output customization. Key Features in 2025 1. No Need for a Document Manager API Key In earlier versions, administrators had to configure the Document Manager API license key before using PDM2Excel. 2. Create New Display States and Export in One Spreadsheet Engineers often need BOMs with different views or display states in one place. 3. Background Color Customization Presentation and readability matter when sharing BOMs with management or suppliers. 4. Weldment Quantity Aggregation For companies using weldments, handling quantities in BOMs has always been a challenge. Why These Updates Matter These changes aren’t just incremental — they reflect feedback from real-world engineering teams: PDM2Excel continues to evolve as the standard for PDM-to-Excel BOM automation, ensuring teams can spend less time exporting data and more time building products.

Read More »

Building a Connector Between SOLIDWORKS PDM and PLM Systems

Integrating SOLIDWORKS PDM (Product Data Management) with a PLM (Product Lifecycle Management) system is one of the most effective ways for companies to streamline their product development process. In fact, building a connector between SOLIDWORKS PDM and PLM systems helps bridge the gap between engineering and enterprise operations. While PDM ensures files and revisions are controlled locally, PLM provides enterprise-wide visibility, connecting engineering data to the wider business, including manufacturing, supply chain, and quality teams. The scope of a connector is not to replace either system, but to create a bridge that ensures the right information flows between them. Most companies do not require an exhaustive integration of every field or object instead, they typically need a few key workflows automated. What Most Companies Need Through our experience working with manufacturing and engineering firms, we’ve found that almost 90% of companies ask for the same three capabilities when planning a PDM-to-PLM connector: These three elements cover many use cases and represent the backbone of most PDM-to-PLM connectors. Triggers for Synchronization For a connector to be practical, it must support flexible triggers that PDM administrators can configure. Based on real-world requests, there are three primary trigger methods: This three-pronged approach balances user control with automation, making it easy for administrators to configure the right level of synchronization for their company. Saving Settings A PDM-to-PLM connector requires configuration, and one of the key considerations is how and where to save settings. In addition to credentials, variable mapping is a critical part of the setup: By keeping settings lightweight encrypted credentials plus variable mappings companies ensure the connector is secure, adaptable, and easy to maintain. Technical Requirements At a technical level, the PLM system must expose a method for receiving data. The most straightforward option is a REST API: Ultimately, while workarounds exist, the presence of a well-documented REST API significantly reduces development cost and improves long-term reliability. Conclusion Creating a connector between SOLIDWORKS PDM and a PLM system is less about building an all-encompassing integration and more about solving a handful of core use cases. Nearly every company benefits from building a connector between SOLIDWORKS PDM and PLM systems that supports: When paired with flexible triggers (manual or automatic) and secure settings management (encrypted credentials + variable mapping), these features ensure smooth collaboration between engineering and the rest of the business. At the technical level, a REST API is strongly recommended, but not strictly required, to implement a reliable connector. About Blue Byte Systems Inc. Blue Byte Systems Inc. is a Canadian software company specializing in SOLIDWORKS API and PDM automation. With over a decade of experience, we have built tools and connectors that help engineering teams eliminate manual steps and keep their data in sync across platforms.Our solutions, including PDMShell, PDMPublisher, and PDM2Excel, are trusted by companies worldwide to streamline workflows and improve efficiency. Whether you need a custom connector to your PLM or a turnkey automation solution, Blue Byte Systems delivers software that puts engineers back in control of their time.

Read More »

Virtual Machine Checklist for Your SOLIDWORKS PDM Large Data Transformation/Migration

Performing a large dataset transformation in SOLIDWORKS PDM vault—whether for cleaning up, updating existing drawings, or merging with a new vault—is not just a technical task; it’s a business-critical operation. At Blue Byte Systems Inc., we’ve led many data migration projects and learned that success starts with a solid virtual machine setup. That’s why this virtual machine checklist for your SOLIDWORKS PDM large data transformation helps ensure IT infrastructure is properly prepared before any migration work begins If you’re planning a PDM migration, automation-based renaming, or metadata/files export, use this field-proven checklist to avoid costly disruptions and ensure a smooth process. System Configuration Start with a robust system foundation to avoid performance or permission issues: Environment Stability Unattended automation demands reliability: Exporting Files to Network Drives If part of your migration involves exporting files to a shared directory: SOLIDWORKS Setup (for API-Dependent Tools) Even PDM-focused tasks may rely on SOLIDWORKS for: Verify the environment: Renaming Files? Do This First If you’re renaming files as part of the migration—especially in batch using the API or scripts—vault consistency is critical. Before running the migration: Renaming in a live vault with active users or cached files can lead to reference corruption, rename failures, and broken assemblies. Don’t skip this step. Why This Checklist Matters PDM migrations are high-risk if not managed carefully. Misconfigured VMs, insufficient permissions, or unlocked files can turn a one-day export into a week-long recovery job. By following this checklist, you ensure: At Blue Byte Systems Inc., we help companies automate, migrate, and modernize their SOLIDWORKS PDM environments with confidence.📩 Need expert guidance? 🌐Schedule a discovery call or request a free vault readiness review today.

Read More »

Why I Still Love SOLIDWORKS PDM Tasks (And What Needs to Change)

Let me start by saying this: I love SOLIDWORKS PDM tasks. And I know many people will disagree with that statement. Yes, we’re inevitably moving toward cloud-based solutions—and that’s a good thing—but small changes can still go a long way in improving an application that hasn’t seen substantial UI or UX updates in years. As a SOLIDWORKS PDM developer, I’ve spent the last five years building custom add-ins, task scripts, and automation solutions for customers across a variety of industries. I’ve even developed a framework—PDMSDK—to help developers get started with PDM add-in development quickly and consistently. After half a decade of building the same types of solutions, I’d like to share some constructive feedback—things I genuinely hope Dassault Systèmes considers improving around the PDM task framework. TaskDetails Dialog The Task Details window is used to show the result of a task execution—such as exporting a BOM or converting a file. You can access it by: Unfortunately, the current implementation has some frustrating limitations: ❌ Current Pain Points: ✅ Suggested Improvements: 🌐 Bonus Suggestion: Developer-Friendly Help Enhance the Help button by allowing developers to redirect users to a custom help page, using the existing IEdmTaskInstance.SetStatus method to capture the help page URL. This could link to internal documentation, support articles, or troubleshooting guides—far more helpful than the generic SOLIDWORKS documentation that many users are currently redirected to. Task List This is the admin’s go-to view for tracking scheduled and completed tasks. Currently, it’s only available through the PDM Administration tool. ❌ Usability Friction: Accessing the task list involves: That’s at least 4 clicks and multiple credential fields—just to view task history. For admins who check this daily, this feels excessive. ✅ Suggested Improvements: The Task Setup Dialog The Task Setup interface is generally well designed, but there are a few important areas where improvements could go a long way, especially for custom task developers. ❌ Pain Points: The dialog has a fixed width and height. While this is acceptable for built-in tasks provided by SOLIDWORKS, the available UI space becomes minimal when developing custom tasks with custom pages. For example, on the Options page, a vertical scrollbar appears—not because of too much content, but because the parent dialog’s width is fixed. Ideally, the task setup dialog should use a resizable tool window (SizableToolWindow in WinForms/Win32 API terms) Rather than a fixed tool window, it allows developers more flexibility in designing user-friendly interfaces. The Execution Method requires prior permission for the task’s add-in to be granted through the Task Host Configuration dialog—a step that is often overlooked by many PDM administrators. To permit an add-in, you must: Unfortunately, these steps are time-consuming and not immediately obvious. ✅ Suggested Improvements: Here are a few miscellaneous issues that make working with tasks harder than it needs to be: 2. No filtering in permission dialogs: Vaults with many users/groups suffer from a lack of search or filtering options when assigning permissions to run or edit tasks 3. Increase or remove the character limit for Text content in notifications. 4. Custom notification text (email or dialog): Custom notification text in SOLIDWORKS PDM tasks supports HTML, but the current character limit severely restricts how much formatting or content can be included. This makes it difficult to implement even basic branding or effective communication practices. For example, adding structured sections, links to support resources, or styled text is often impossible due to these constraints. This is especially limiting when trying to deliver modern, user-friendly notifications similar to what users might expect from platforms like the 3DEXPERIENCE Marketplace, which uses rich HTML formatting to provide clear instructions, embedded links, and visually branded experiences. Adding to the frustration, the PDM Inbox uses an ActiveX browser control, which limits rendering to legacy standards. However, newer versions of Windows and .NET support using the Microsoft Edge WebView2 control—a modern, Chromium-based browser component that supports full HTML5, CSS3, and JavaScript. 5. Parallel Execution for the Same Task Type One of the long-standing limitations in SOLIDWORKS PDM is that tasks of the same type can only run one at a time per Task Host. For example, if you trigger ten Convert to PDF operations, they will be executed sequentially, even if the machine has 16 cores and plenty of RAM.This creates a bottleneck, especially for organizations running high volumes of repeatable, lightweight operations like: if you love SOLIDWORKS PDM tasks, imagine how much more powerful they could be with parallel execution. What if administrators could specify how many instances of the same task type are allowed to run in parallel on the same host? Imagine a “Maximum Concurrency” setting in the task definition that allows 2, 3, or more simultaneous executions of that task—on the same machine. Of course, allowing multiple task instances on the same machine introduces complexity: That said, these are solvable problems—especially for tasks that are stateless and read-only. And in some environments, admins would gladly accept the risk in exchange for faster throughput.

Read More »
0
0
Your Cart
Your cart is emptyReturn to Shop