ProjectWise SDK
The Bentley ProjectWise SDK provides a very powerful set of low-level C/C++ APIs capable of providing robust, seamless, and deep levels of integration with: ProjectWise Server Document Management System (DMS), supported client applications, and stand-alone command line utilities; a variety of customization options available to meet and address a wide variety programming situations and needs. Such a powerful set of APIs requires highly skilled/experienced native code C/C++ professional software developers obtaining ProjectWise Client and Server administration workflows and capabilities, and ProjectWise SDK training.
Please note at this time the [[ProjectWise SDK does not provide direct support for higher-level languages]] like: VBA/COM, or Microsoft .NET. Enhancement 155117/Defect 598431 has been filed for future consideration and access to be made available.
ProjectWise Customization Options
Fortunately, there exist a number of very robust ways to customize ProjectWise that do not require highly skilled developers and can be accomplished by existing ProjectWise Workflows and Tools associated with the Product. Also, another light-weight robust programming option is available to highly consider - the Web Services Gateway (WSG REST API). Let's explore some of these customization options and entry points from the ground up to help you identify the most correct options to learn and/or leverage existing functionality and your customization experience and needs.
Bentley Document Management System (DMS) Automation and Customization options
Depending on your administration and customization needs the following options are available and listed from: ease of Administration and Automation, to an easy and robust REST API capable of the most common integration needs, or full featured SDKs allowing for creation of seamless integration programming solutions.
Let's get started by reviewing the Administration and Automation options first.
- ProjectWise Explorer - (Release, Download, Command Line Arguments/Switches, ProjectWise Menu Editor)
Consider this option if you need to occasionally start a single instance of ProjectWise Explorer and direct it to perform one of its documented command features. The post provides a number of common tasks you can determine if this can help meet your occasional non-programming needs. If you do not see an immediate task/command listed, feel free to Search then Post questions on the: [[Bentley Communities - Content Management Forum]] to identify alternate product workflows or to request a product enhancement.
- ProjectWise PowerShell Extensions (Readme, Install, [[Examples]], Forum, ProjectWise Scripting Blog)
Consider this option if you are in need of easily performing or automating/scripting some of your more common or challenging ProjectWise administrator needs and may not be a programmer by trait and not discouraged at learning one of Microsoft's greatest administrator tools; Microsoft PowerShell (Learn PowerShell). Also note the ProjectWise PowerShell Extensions are intended for use as highly effective "scripting solutions" and are not intended to "extend" or "be excessively called" from other programming languages "like functions"; where direct native code API calls, or a "wrapper library" is preferred.
Related Content and Sample Projects:
- Screencasts: [[ProjectWise PowerShell Videos]], Dave Brumbaugh's Videos
- Scripting the whole Project Lifecycle
- Oregon DOT ProjectWise Explorer File Naming Add-On
NOTE: Make sure to Search and Ask - All Questions, Issues or Enhancements requests directly on the PowerShell Extension Forum.
- ProjectWise Design Integration Connector for Microsoft Flow (Overview, STATUS: Early Access)
Consider this option to automate repetitive tasks, interact with Office 365, connect to a growing number of other cloud services, and more. Visit Microsoft Flow to learn how you can leverage Flow to connect and get more work done from anywhere. See also: Microsoft Connector Reference (ProjectWise Design Integration, ProjectWise Share).
Related Content: ProjectWise Project Templating Service for Robotic Process Automation (Power Automate)
- ProjectWise Insights
Start making data-driven decisions and performing root-cause analysis on your own projects - with real-time dashboards for analysis of project performance, trends and risks. Here's how to get started with your own Project Insights.
- ProjectWise Components Center
Though not automation or programming specific in nature; an essential cloud service resource to consider for managing digital components across organizations, projects, disciplines and design applications.
Programming Options
- Bentley Web Services Gateway (WSG REST API)
Consider this option when needing to (relatively quickly and easily) create your own application integrations with ProjectWise, [[supported providers]], or even your own custom provider providing secure access to your own custom data and libraries mapped via schema to expose your own REST API extensions to be called from any operating system client API providing HttpClient APIs. Make sure to visit these helpful resources:
- Getting Started: Bentley WSG REST API
- ProjectWise PowerShell WSG Extensions (PWPS_WSG)
- [[ProjectWise SDK]] ([[Overview]]: Native code C/C++ highly skilled developers).
Requires: BDN Access to Download the SDK)
Consider this option if you are or have a very experienced C/C++ developer available having these highly recommended skills, training and requirements:
- Requires:
- BDN Access to Download the SDK
- Microsoft Visual Studio 2015 Update 3 or later (See: ..\SDK\htmlhelp\ProjectWiseSdkImpactStatement.html)
- Intermediate to Advanced:
- Microsoft C/C++ developer coding skills, familiarity of Microsoft Visual Studio IDE, debugging and library development skills.
- ProjectWise Explorer Training
- ProjectWise Administrator Training
- ProjectWise SDK Training
NOTE: The following resources are presented in Chinese, but Google Translate Page can be used to translate the contents to other languages to read:
- Learn ProjectWise Programming Step By Step
- ProjectWise Programming Wiki
See Also:
[Not Supported]