OPPID Using TagSets with Custom Annotations

Document Type:TechNote

Product(s):OpenPlant PowerPID

Version(s):SELECTseries 4

Original Author:Asif Khan

With SS4 release of OPPID, custom annotations are being supported. There are two types of custom annotations: tag set and calculated expression. This document explains how to create and use both types. Please note the classes BASE_EQUIPMENT_ANNOTATION and BASE_PIPE_LINE_ANNOTATION mentioned for creation already exist. This was the procedure used to create them. This same procedure would be used for similar annotation classes, for example BASE_INSTRUMENT_ANNOTATION.

OPPID Using TagSets with Custom Annotations 1

Tag Set Annotations 1

EC Calculated Expression Annotations 4

OPPID Use 7

Tag Set Annotations

To define a tagset annotation class for let say “Equipments”

  1. Open OpenPlant_PID schema
  2. add a class BASE_EQUIPMENT_ANNOTATION inherited from pid:COMPONENT_ANNOTATION with IsDomainClass set to False.
  3. Override the property LIMIT_TO_CLASSES
  4. Add custom attribute STRING_LIST to the overridden property
  5. Right click and add an item in the string list. Set the value of Item[0] to oppid:EQUIPMENT. This list can contain multiple classes.

  1. Add properties that should be part of the class (should be displayed). These properties must be part of the class added in Step 5 (oppid:EQUIPMENT) and must exactly match data type.

  1. Derive a class EQUIPMENT_ANNOTATION_ALT1 from BASE_EQUIPMENT_ANNOTATION with IsDomain class set to True
  2. Open OpenPlant_PID_Supplemental_Imperial to add supplemental information for Imperial project.
  3. Add a class BASE_EQUIPMENT_ANNOTATION with IsDomainClass set to False.

  1. Add BMF_ANNO_CUSTOM_ATTRIBUTES on the class

  1. Define the properties added for equipments.

  1. Add custom attribute BMF_PROP_CUSTOM_ATTRIBUTES on each property to define the default value for each property (e.g for Description).

  1. Add a class EQUIPMENT_ANNOTATION_ALT1 with IsDomainClass set to True.

  1. Add SCHEMATICS_CAD_CUSTOM_ATTRIBUTES

  1. Add property ALTERNATE_DISPLAY_LABEL in the above class

  1. Add custom attribute BMF_PROP_CUSTOM_ATTRIBUTES to this property and define a default value. This value is displayed in the custom annotation dialog

  1. Add a cell EQUIPMENT_ANNOTATION_ALT1 in (project specific) Miscellaneous.cel cell library. Add Tagset for each property matching exactly with the property Name.

Once done this class is now accessible in Custom Annotation dialog as well as Equipment Annotations.

EC Calculated Expression Annotations

To define an EC Calculated expression based annotation class for let say Pipeline

  1. Open OpenPlant_PID schema
  2. add class BASE_PIPE_LINE_ANNOTATION inherited from pid:COMPONENT_ANNOTATION with IsDomainClass set to False.

  1. Override the property LIMIT_TO_CLASSES
  2. Add custom attribute STRING_LIST to the overridden property
  3. Right click and add an item in the string list. Set the value of Item[0] to oppid:PIPING_NETWORK_SEGMENT. This list can contain multiple classes.

  1. Add properties that should be part of the class (should be displayed). These properties must be part of the class added in Step 1.d (oppid: PIPING_NETWORK_SEGMENT) and must exactly match data type. To add a property from the Pipe Run’s PIPING_NETWORK_SYSTEM to be part of the annotation, the property must be prefixed with “PIPELINE_”. An example of this is PIPELINE_NAME as shown below.

  1. Derive a class PIPE_LINE_ANNOTATION_ALT1 from BASE_PIPE_LINE_ANNOTATION with IsDomain class set to True
  2. Open OpenPlant_PID_Supplemental_Imperial to add supplemental information for Imperial project.
  3. Add a class BASE_PIPE_LINE_ANNOTATION with IsDomainClass set to False.

  1. Add BMF_ANNO_CUSTOM_ATTRIBUTES on the class

  1. Define the properties added for pipeline.

  1. Add custom attribute BMF_PROP_CUSTOM_ATTRIBUTES on each property to define the default value for each property (e.g for Run).

  1. Add a class PIPE_LINE_ANNOTATION_ALT1 with IsDomainClass set to True.

  1. Add property ALTERNATE_DISPLAY_LABEL in the above class

  1. Add custom attribute BMF_PROP_CUSTOM_ATTRIBUTES to this property and define a default value. This value is displayed in the custom annotation dialog

  1. Add property TEXT in the above class

  1. Add custom attribute CalculatedECPropertySpecification on this property as below

Once done this class is now accessible in Custom Annotation dialog as well as Pipeline Annotations.

Note:

  1. These steps assume that multiple annotation classes are being created from that base class. If only one annotation class is to be created, the main class should remain as Domain class and steps done for derive class(s) should be done for the main class (BASE_EQUIPMENT_ANNOTATION/BASE_PIPE_LINE_ANNOTATION for the given example)
  2. The custom annotation dialog list all domain classes that are inherited from pid:COMPONENT_ANNOTATION. To limit the classes to be displayed, user can input the key in

“pid component annotate [[schema_prefix:] class_name]”

[schama_prefix] à Schema name prefix [Optional parameter]

[class_name] à Class name from which the inherited domain classes to be displayed in the dialog.

e.g.

“pid component annotate” à Display all custom annotations

“pid component annotate oppid:BASE_PIPE_LINE_ANNOTATION” à Display all custom pipeline annotations.

“pid component annotate BASE_EQUIPMENT_ANNOTATION” à Display all custom equipment annotations.

OPPID Use

From task navigation bar select Annotation->Custom Annotation

Select Equipment Annotation

From Dialog select an annotation type: (double click or pick Place)

The annotation is displayed on the screen. Drag annotation over an existing piece of equipment and place.

NOTE:

With Tag Set Annotations, the graphics will not display the actual property values until the user has entered the placement point.

With Calculated Expression Annotations, the graphics will update whenever you dynamically snap to a component of the acceptable type.