Tag number parsing and the results. These are defined in the OpenPlant_Supplemental_Tagging schema. Class ANNOTATION_COMPONENTS ECExpression this.GetRelatedInstance("PLANT_AREA_HAS_NAMED_ITEM:1:PLANT_AREA, NAME:?").NAME & "-" & this.DEVICE_TYPE_CODE & "-" & this.NUMBER ParserRegularExpression ^[?\w]*-(? [?\w]*)-(? .*)|(? .*) Result A1-SP-0001 Class EQUIPMENT ECExpression this.DEVICE_TYPE_CODE & "-" & this.NUMBER ParserRegularExpression ^(? .*)-(? .*)|(? .*) Result PMP-0001 Class FLUID_REGULATOR ECExpression this.DEVICE_TYPE_CODE & "-" & this.NUMBER ParserRegularExpression ^(? .*)-(? .*)|(? .*) Result HV-0001 Class INSTRUMENT ECExpression this.GetRelatedInstance("PLANT_AREA_HAS_NAMED_ITEM:1:PLANT_AREA, NAME:?").NAME & "-" & this.DEVICE_TYPE_CODE & "-" & this.NUMBER ParserRegularExpression ^[?\w]*-(? [?\w]*)-(? .*)|(? .*) Result A1-FT-0001 Class INSTRUMENT_LOOP/LOOP ECExpression this.GetRelatedInstance("PLANT_AREA_HAS_NAMED_ITEM:1:PLANT_AREA, NAME:?").NAME & "-" & this.DEVICE_TYPE_CODE & "-" & this.NUMBER ParserRegularExpression ^[?\w]*-(? [?\w]*)-(? .*)|(? .*) Result A1-L-0001 Class NOZZLE ECExpression this.GetRelatedInstance("EQUIPMENT_HAS_NOZZLE:1:EQUIPMENT, DEVICE_TYPE_CODE:?").DEVICE_TYPE_CODE & "-" & this.GetRelatedInstance("EQUIPMENT_HAS_NOZZLE:1:EQUIPMENT, NUMBER:?").NUMBER & "-" & this.DEVICE_TYPE_CODE & this.NUMBER ParserRegularExpression ^[?\w]*-[?\w]*-(? .)(? .*)|(? .*) Result PMP-0001-N-1 Class PIPING_NETWORK_SYSTEM ECExpression this.UNIT_NAME & "-" & this.SERVICE_NAME & "-" & this.NUMBER & "-" & this.SPECIFICATION ParserRegularExpression ^[?\w]*-[?\w]*-(? [?\w]*)-(? .*)|(? .*) Result U1-Oil-0001-Ductile Copy and paste table below to add new table. Class Any class Comment This simple example checks to see if it's an email address, there are many ways to do it. This is a simple example looking for any characters, and seperated by an "@" symbol ECExpression this.AccountName&"-"&this.Company ParserRegularExpression ^(? [A-Z0-9._%+-]*)@(? [\w]*). Result Bentley_Software1234@bentley_systems.com Class Any property example Comment this will look for digits and then parse out the " inches character. Example Size=12" would parse to Size=12 (had this request for annotation purposes, and they didn't want inches shown. Note: the value must be followed by a " inches character. ECExpression this.Size ParserRegularExpression ^(? [\d]{1,3})" Result 1 or 12 or 123 Class PIPING_NETWORK_SYSTEM Comment This allows for a Pipeline tag of Area-Service-Design Size-Specification-Number where the Design Size has the "inch" mark on the size value. In the parser expression note the /" (Forward Slash and Inch mark in the section for DESIGN_SIZE ECExpression this.AREA_NAME & "-" & this.SERVICE_NAME & "-" & this.DESIGN_SIZE & "-" & this.SPECIFICATION & "-" & this.NUMBER Parser Regular Expression ^(? [?\w]*)-(? [?\w]*)-(? [?\w /" ]*)-(? .*)-(? [?\w]*) Result 10-STM-4"-CS150-2222 Class PIPING_NETWORK_SYSTEM Comment A tag format where the first value is SERVICE and SERVICE has spaces in the value. The SERVICE property is an Associated Item so it must be stripped out. ECExpression this.SERVICE & "-" & this.NUMBER & "-" & this.SUFFIX Parser Regular Expression ^[?\w\s]*-(? .*)-(? .*) Result CM F-1234-1 Class VALVE Comment This allows for tag format without a delimiter and an unknown number of alpha characters in the first property (Device Type Code) of the expression. ECExpression this.DEVICE_TYPE_CODE & this.NUMBER Parser Regular Expression ^(? [\D]*)(? .*) Result V1234 and HV1234 and HVG1234567
↧