Bentley Communities
Bentley Communities
  • Site
  • User
  • Site
  • Search
  • User
Developers and Programming
  • Product Communities
Developers and Programming
Developers and Programming Wiki Customizing and Programming ProjectWise
    • Sign In
    Developers and Programming requires membership for participation - click to join
    • -Programming - Wiki
      • -Bentley APIs and SDKs
        • Access and Download Bentley SDKs
        • Published APIs and SDKs for Various Bentley Products
        • Bridge Analysis
        • Building
        • Civil
        • Digital Twins and iModels
        • Electrical and Instrumentation
        • Geotechnical Engineering
        • Hydraulics and Hydrology
        • Modeling and Visualization
        • Plant
        • -Project Delivery
          • -Customizing and Programming ProjectWise
            • +SDK FAQs
            • SDK Topics
          • Getting Started: Bentley Web Services Gateway (WSG)
          • Introduction to the ProjectWise SDK
        • Reality Modeling
        • Structural
      • +MicroStation
      • +Frequently Asked Questions (FAQ)
    • +Programming Topics

     
     Questions about this article, topic, or product? Click here. 

    Customizing and Programming ProjectWise

    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.

    1. ProjectWise Explorer - (Download, Command Line Arguments/Switches)

      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.

    2. 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 ProjecWise 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.

    3. 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)

    4. 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.

    5. 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

    1. 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:

      1. Getting Started: Bentley WSG REST API
      2. ProjectWise PowerShell WSG Extensions (PWPS_WSG)

    2. 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:

      1. Requires:
        • BDN Access to Download the SDK
        • Microsoft Visual Studio 2015 Update 3 or later (See: ..\SDK\htmlhelp\ProjectWiseSdkImpactStatement.html)
      2. Intermediate to Advanced:
        • Microsoft C/C++ developer coding skills, familiarity of Microsoft Visual Studio IDE, debugging and library development skills.
      3. ProjectWise Explorer Training
      4. ProjectWise Administrator Training
      5. 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:
        1. Learn ProjectWise Programming Step By Step
        2. ProjectWise Programming Wiki

    See Also:

    • Admin Resources
      • ProjectWise Scripting Blog
      • ProjectWise Implementation (a.k.a. ProjectWise Implementation Guides)
      • ProjectWise Scan for References (Verifies Design Files [dgn, dwg, etc.] Attachments are synchronized within DMS sets)
    • Developer Resources
      • ProjectWise Programming Wiki
      • Project Delivery Programming Links
      • GitHub (Dave Brumbaugh, Dan Williams)
      • LinkedIn (Dave Brumbaugh - Articles)
    • MicroStation ProjectWise MCM Integration Key-ins
      ProjectWise Explorer Help See: Key-ins for Integrated MicroStation
      Open a Design File rd=pw:\\mypwsrv.mycompany.com:mydatasource\Documents\RHook\LotsOfLevelsTest.dgn
      Attach a Reference File rf=pw:\\mypwsrv.mycompany.com:mydatasource\Documents\RHook\LotsOfLevelsTest.dgn,Default,MyLogicalName,MyDescription,Top;SELV ALL
      Attach a Raster Reference RASTER ATTACH [fixed|interactive] pw:\\mypwsrv.mycompany.com:mydatasource\Documents\images\test.tif

    [Not Supported]

    • Managed Code - See Note and existing Enhancement Above
      • Most of Dave's Classes (Wraps the ProjectWise native code API)
        • C# Add-Ins for MicroStation (Examples: SetPWVarsCE, PolyhedraCE, QRCodeAddInForMSCE)
      • Searches: ProjectWise AND .NET
    • MicroStation VBA/COM - See Note and existing Enhancement Above
      • A MicroStation VBA Example With Bentley ProjectWise
      • Using The ProjectWise API In VBA
      • Searches: ProjectWise AND VBA
    • Utilities
      • Most of Dave's Tools (Download)
    • CustomizingAndProgrammingProjectWise
    • Share
    • History
    • More
    • Cancel
    • Robert Hook Created by Bentley Colleague Robert Hook
    • When: Mon, Nov 25 2019 10:53 AM
    • Robert Hook Last revision by Bentley Colleague Robert Hook
    • When: Fri, Sep 8 2023 10:40 AM
    • Revisions: 40
    • Comments: 0
    Recommended
    Related
    Communities
    • Home
    • Getting Started
    • Community Central
    • Products
    • Support
    • Secure File Upload
    • Feedback
    Support and Services
    • Home
    • Product Support
    • Downloads
    • Subscription Services Portal
    Training and Learning
    • Home
    • About Bentley Institute
    • My Learning History
    • Reference Books
    Social Media
    •    LinkedIn
    •    Facebook
    •    Twitter
    •    YouTube
    •    RSS Feed
    •    Email

    © 2023 Bentley Systems, Incorporated  |  Contact Us  |  Privacy |  Terms of Use  |  Cookies