To set predefined levels for piping components based on the Service name of the pipeline without usi


Applies To
Product(s):OpenPlant Modeler
Version(s):08.11.11.XX (SS6)
Environment:Windows 7/8.1/10 (64 bit)
Area:Settings/Attributes
Subarea:-
Original Author:Kunal Kiran, Bentley Product Advantage Group

To set predefined levels for piping components based on the Service name of the pipeline without using Element Templates

Background

OpenPlant component symbology is managed in the typical Microstation fashion. It is controlled through a combination of Named Expressions (used to read attributes assign the Levels and the Element Templates accordingly) and Element Templates (where symbology is defined for the elements identified by the Named Expression).

A modification in ‘Named Expression’, which can be found in the ‘Utilities’ Menu, is required for assigning the piping components' level from predefined list based on the Service Name, without using Element Templates.

In OpenPlant Modeler, sometimes it could be the modeler's choice or as per project specific requirement it has been envisioned to get some piping component for instance a a pipe to a different level based on service. A modification in ‘Named Expression’ should require for changing the Component level as per service used. For example, Level assigned is to be "PIPELINE.NAME-Servicelevel1" when PIPELINE.SERVICE is Service1; and level to be assigned is to be "PIELINE.NAME-Servicelevel2" when PIPELINE.SERVICE is Service2.

Steps to Accomplish

  1. All of component symbology settings are usually set in OPmodeler.dgnlib file, located in WorkSpace\Projects\%project_name%\DataSet\Dgnlibs folder. Navigate to mentioned path to open the file.
  2. Click on Utilities and then Named Expressions



  3. In the Expressions pane, scroll down and select OP SYMBOLOGY PIPING



  4. Below are the Symbology pasted to copy from here and to get it pasted to the respective Expression of OP_SYMBOLOGY_PIPING:

    "BY_LEVEL_AND_TEMPLATE:" & PIPELINE.NAME & IIF( PIPELINE.SERVICE_NAME="Service1", "Servicelevel1:",
    IIF( PIPELINE.SERVICE_NAME="Service2", "Servicelevel2:",":")) & "OpenPlant\Piping\" &
    IIF( OPITEM.IsOfClass( "INSTRUMENT", "OpenPlant_3D" ), "Instrument:",
    IIF( OPITEM.IsOfClass( "CONTROL_VALVE", "OpenPlant_3D" ), "Instrument:",
    IIF( OPITEM.NOMINAL_DIAMETER <= 100 , "DiameterRange1:",
    IIF( OPITEM.NOMINAL_DIAMETER > 100 AND OPITEM.NOMINAL_DIAMETER <= 200, "DiameterRange2:",
    IIF( OPITEM.NOMINAL_DIAMETER > 200 AND OPITEM.NOMINAL_DIAMETER <= 300, "DiameterRange3:",
    IIF( OPITEM.NOMINAL_DIAMETER > 300 AND OPITEM.NOMINAL_DIAMETER <= 400, "DiameterRange4:",
    IIF( OPITEM.NOMINAL_DIAMETER > 400 AND OPITEM.NOMINAL_DIAMETER <= 500, "DiameterRange5:",
    IIF( OPITEM.NOMINAL_DIAMETER > 500, "DiameterRange6:", "Default:" ) ) ) ) ) ) ) ) & "Model"




    See the image below for reference




    NOTE- The text in red background depicts the actual change in Expression

  5. Save the Expression which turns blue. Save option will get enabled once you modify the Expressions: See below for reference.


  6. Launch OpenPlant Modeler and verify results. See the image below for reference

    Pipeline level as 'PIPELINE.NAME-Servicelevel1" when service is Service1



    Pipeline level as "PIPELINE.NAME-Servicelevel2" when service is Service2


  7. To add another clause such that level assigned is "Servicelevel3" when Service is Service3,
    The Expression of OP SYMBOLOGY PIPING should be modified as

    "BY_LEVEL_AND_TEMPLATE:" & PIPELINE.NAME & "-" & IIF( PIPELINE.SERVICE_NAME="Service1", "Servicelevel1:",
    IIF( PIPELINE.SERVICE_NAME="Service2", "Servicelevel2:",IIF( PIPELINE.SERVICE_NAME="Service3", "Servicelevel3:",":"))) & "OpenPlant\Piping\" &
    IIF( OPITEM.IsOfClass( "INSTRUMENT", "OpenPlant_3D" ), "Instrument:",
    IIF( OPITEM.IsOfClass( "CONTROL_VALVE", "OpenPlant_3D" ), "Instrument:",
    IIF( OPITEM.NOMINAL_DIAMETER <= 100 , "DiameterRange1:",
    IIF( OPITEM.NOMINAL_DIAMETER > 100 AND OPITEM.NOMINAL_DIAMETER <= 200, "DiameterRange2:",
    IIF( OPITEM.NOMINAL_DIAMETER > 200 AND OPITEM.NOMINAL_DIAMETER <= 300, "DiameterRange3:",
    IIF( OPITEM.NOMINAL_DIAMETER > 300 AND OPITEM.NOMINAL_DIAMETER <= 400, "DiameterRange4:",
    IIF( OPITEM.NOMINAL_DIAMETER > 400 AND OPITEM.NOMINAL_DIAMETER <= 500, "DiameterRange5:",
    IIF( OPITEM.NOMINAL_DIAMETER > 500, "DiameterRange6:", "Default:" ) ) ) ) ) ) ) ) & "Model"    

    --------------------------------------------------------------------------------------

    Note the text in bold.  The same syntax is used to add more cases.

See Also

communities.bentley.com/.../4870.named-expressions-managing-component-symbology-in-openplant-modeler

Comments or Corrections?

Bentley's Product Advantage Group requests that you please confine any comments you have on this Wiki entry to this "Comments or Corrections?" section. THANK YOU!