Most ProjectWise users understand the difference between “customization” and “configuration”. In short, the former generally refers to using the ProjectWise SDK to develop C++ programs that will alter existing or create new options in ProjectWise. The latter uses nothing more than built-in processes to extend delivered ProjectWise functionality. In my experience, most users fall into the configuration category; it is cleaner and easier to maintain a ProjectWise system, plus many users have neither the in-house expertise nor budget to modify code, relying only on ProjectWise out-of-the-box features. In these instances, I will work with users to try and develop configuration that can achieve their desired result, so long as it is not a large administrative or end user burden.
One such challenge was a recent request to have an event-driven “stamp” placed across a drawing title block. This is not a process that can be easily automated, but I began thinking that I could come close by using four core components of ProjectWise: a workflow, document attribute, Attribute Exchange and the new Rules Engine.
For those of you not familiar, the Rules Engine (introduced in the ProjectWise SELECTseries 4 .559 build) is a new ProjectWise Explorer extension that allow administrators to configure document processing events for each State in a Workflow. When the Rules Engine is applied to a Workflow, it replaces the standard ProjectWise Explorer Change State commands (Next, Previous and Change) with user-defined operations. A Rule can be defined to run a set of “Actions” that are configured to run in a specific, sequential, order. The Action is a ProjectWise task that may be carried out on the document – such as setting an attribute value – before changing the document State.
Armed with this new idea, I worked with the user to develop a stamping process. Their need was to clearly mark a PDF (or Plot) as PRELIMINARY or SUPERSEDED in their title block, automating the process as much as possible. This user does not use ProjectWise Workflows, so I created a mock one, which contained only one state. In this case, the name of the State (Approved) and Workflow (Stamp) is arbitrary since their usage is only to link to the Rules Engine. Next, I added an attribute (Stamp) to their existing ProjectWise Environment. The Stamp attribute does not require any special value settings, although it may later. Therefore, the Stamp attribute starts out blank:
To ensure that only the Rules Engine updates this attribute, it is configured as “read only”. Next, I created a MicroStation Tag Set and Tag (both named Stamp), with the tag itself placed in the drawing title block on a 45 degree angle in a light gray, block font. Like that Stamp attribute, the Stamp Tag is blank to start. I then created a corresponding ProjectWise Attribute Exchange Class Name and Attribute and “bound” it to the MicroStation Stamp tag.
With the configuration complete, I can start the stamp process. First, the users highlight the drawing(s) that require the stamp, right-click and select Change State. Since the Rules Engine is attached to my Stamp Workflow, the standard commands Next, Previous and Change are grayed out and replaced with my new Actions:
Keep in mind that this simple process can be imbedded in a deeper, more complex Workflow strategy. As with many other ProjectWise commands, there are several configuration notes for the Rules Engine that you need to be mindful of, including but not limited to:
– Setting an Attribute: There is a Rules Engine variable called SET_ATTR (1 of 8 variables) that will populate a ProjectWise Environment attribute automatically. However, it can only populate Environment Attributes and not standard ProjectWise attributes such a Description.
– Working with existing Workflows: When you configure the Rules Engine, you identify what Workflow it will run on top of. It will not affect any other Workflow in your datasource
– Condition Checks: Using the Rules Engine, it is possible to check on whether or not an attribute is populated before changing a document(s) to the next State in the Workflow. However, it does not validate what is in the field.
– Permissions: Although the Rules Engine can override or disable some standard ProjectWise commands such as New Version and the State Change commands, a user must have the relevant ProjectWise rights to carry out these actions.