This tool allows you to create and manage Expressions against the class names in various contexts and categories. Based on the Context and Category, the OpenPlant Support Engineering program will pick the expression and use it when executing a script.
Expression Manager Keywords
The expansion of an expression works based on the following five keywords. All of these keywords are followed by a dot "." and property name which will be explained below.
All of these keywords are followed by a dot "." and property name which will be explained below.
|??NXT||NXT stands for next. It picks the sequence name from
the sequence manager, increments the value and returns the value. You can
define a new sequence in Sequence Manager and use it to get an incremental
Example: <??NXT.First>This expression will be interpreted as pick sequence with name First from Sequence table, increment it with current incremental value and replace this expression with that number.
|??NXTD||Same as ??NXT. Only difference is that if a sequence
is not defined then a sequence with given property will be created on the fly.
Example: <??NXT.PIPLIN>This expression will read the pipeline property of current component that is globally set and return the value based on that. For example, if the line number of component is LXY, then it will create a LXY entry in sequence table and return the current value. If that entry is already in the sequence table then it will return the current incremented value.
|??PRV||PRV stands for Property value and this expression
will get expanded based on current component set in the session and under
Example: <??PRV.PIPLIN>This will get expanded to line number property of the support in process.
|??PRU||PRU stands for property unit. This keyword is only
valid for properties that have a unit of measure like length, weight etc.
Example: <??PRV.Weight>It will return KG or LB based on the given unit set. Normally this expression is used in conjunction with PRV to report both dimensional value and its unit of measure.
|??PJV||PJV stands for Project value and it will return the
constant value defined at the project level. Project value has a big deep
hierarchy. These values can be set using the "Project Parameter" pane in
Example: <??PJV.Project.DGNStamp.ProjectName>This expression will be translated to value defined at project level as shown below.
|??PJU||PJU stands for Project Unit and it will return the
UOM value of a given project property. Again it will be used in conjunction
with Project parameter value to report its unit.
Example: <??PJU.Environment.Geography. Elevation>It will return the unit of elevation as set in project parameters.
Expression Manager Context
Currently, expressions are used in two contexts:
How each context is used is explained below.
BOM stands for Bill of Material and in this context there are three categories defined.
|BOM: Support||Support category is used to define a Bill of Material
for a support based on the support Class Name.
Note: For PipeAttachment this is the out of box expression defined that one can modify to get customized results. Before reading this make sure you know how the keyword works as explained in section above.
[<??PRV.PartType> <??PRV.CatalogTag>] <??PRV.Description> <??PRV.PrimSize> <??PRU.PrimSize>
PipeAttachment is the parent class of all supports that are in direct contact with piping components. If there is no explicit entry for a particular class then all piping supports will inherit this definition. If you want to change the behavior of various classes then individual entries can be made, or, changing something against this entry will change it for all pipe attachments.
When a support drawing is generated and a pipe attachment is encountered, then based on current support properties, this expression will be evaluated and data will be placed in the Bill of Material table.
In this expression PRV and PRU is used to pick data from the support property and put it into the Bill of Material table of the support drawing.
The PartType is the catalog identifier to uniquely identify the type of support. It's a property of the PipeAttachment class and its value gets printed out based on this.
If you attempt to place a clamp, the following property dialog displays where you select the type of clamp to place. Highlighted properties will get printed to bill of material based on this expression.
[<??PRV.PartType> <??PRV.CatalogTag>] <??PRV.Standard> <??PRV.Description> <??PRV.PrimSize> <??PRU.PrimSize>To view the different properties available, refer to Class Browser help.
|BOM: General||BOM Expressions in the General category work the same
way as mentioned in previous section. However in this case one may want to see
the project specific properties. For this section the pipe attachment get
selected for reporting component properties e.g. linenumber, unit,&ldots;
Similarly some project properties are reported such as elevation.
To automatically populate the MS tags this entry is defined. The MS tag attributes name needs to be matched with the Expression name. The default properties can be seen below.
The template can be modified to define new tags and a corresponding entry can be made to automatically populate it. MicroStation tags are also synchronized with ProjectWise, so it can be used for ProjectWise enabled projects as well.The default output information looks similar to below:
The other context in which expressions are used is for defining tags. Every class can have a different format for a tag. However out of the box tags are defined in a consistent way for pipe attachments. To achieve that a tag format is defined at a higher class level so the same format gets propagated to all of the classes underneath that. However different classes can be overridden to achieve the specific format according to project requirements.??NXTD keyword is used which reads the line property of a support and assigns the unique number based on that.
SupportMark is the concatenation of line and support id to make the support tag readable but as well as unique on that line. This support mark can be customized consciously to make sure it will generate unique tag.PartID is something internal and it is a sequence number to uniquely identify the number of support in the assembly.