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
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.
"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"
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
"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.
communities.bentley.com/.../4870.named-expressions-managing-component-symbology-in-openplant-modeler
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!