ProjectWise from Bentley - Document Management Software
ProjectWise is a Document Management Solution (DMS) from Bentley. Its key use case is supporting BIM.
Architecture: It appears to have a pretty old architecture with the ability to "webify" the DMS.
Integration: There are APIs and Power Connectors, but they are extremely limited and not developer-friendly. You can also extend the capability using PowerShell. Be warned: Bentley does not support this, but the ProjectWise community does help to solve the issue.
There are add-ins for office software (word, excel, pptx) and some CAD products to make the BIM process easier.
This post outlines how I have extended ProjectWise to build out a pre-populated folder structure using PowerShell. I then wrap the PS code in an HTTP Azure HTTP-triggered function to call.
Connecting to ProjectWise using PowerShell Example 1:
PS> New-PWLogin -BentleyIMS
Note: You need to already have Bentley's federation auth set up on the local machine running the "CONNECTION Client."
| Machine running PS must use the CONNECTION Client from Bentley and the user will be prompted to login. |
Connecting to ProjectWise using PowerShell Example 2:
Login using Federated identity without a popup to select the datasource
PS> Import-Module pwps_dab
PS> New-PWLogin -Datasource 'org-pw.bentley.com:Org Delivery' -BentleyIMS
Connecting to ProjectWise using PowerShell Example 3:
Login with a local account - No Federated account needed.
PS> $Password = ConvertTo-SecureString "passwrdxxx" -AsPlainText -Force
PS> $Cred = New-Object System.Management.Automation.PSCredential ("my_user_logical", $Password)
PS> New-PWLogin -Datasource 'org-pw.bentley.com:Org Delivery' -UserName $Cred.UserName -Password $Cred.Password
Below are two error codes that tell you if your datasource or login credentials are incorrect.
| Example 3. Error code: 32768 - Datasource not found. |
Problem: PWPS_DAB requires headers, and no serverless function will support PowerShell modules that require interaction/headered calls.
ERROR: The property 'ThreadOptions' cannot be found on this object. Verify that the property exists and can be set.
Initial Hypothesis: There is no way around using PWPS_DAB as it does not support running in a headless mode. Ouch, and i'm paying for this heavily :)
Possible Resolution: Run a VM or Docker container and expose the function via an HTTP endpoint. It will be a mission, so i guess it docker.
AutoDesk Revit
ProjectWise Posts by me:
Introduction to ProjectWise and BIM
ProjectWise from Bentley - extend with Powershell (this post)
Postman Collection to connect to Bentley's REST API for ProjectWise (WSG)
Power BI reporting against ProjectWise (Project Insights)































