How do I turn on IAREA to Automatically Populate when a Control Valve is placed?


How to Turn on IAREA for Control Valves Automatically and also have it appear below the Fail Mode?

1. Close all Bentley apps.
2. Browse to the PID-SUP.LSP file in the location below:

 Windows 32 bit OS: Location = C:\Documents and Settings\All Users\Application Data\Bentley\Plant V8i\P&ID

Windows 64 bit OS: Location = C:\ProgramData\Bentley\Plant V8i\P&ID

 3. Open the PID-SUP.LSP file in Notepad.

4. Insert the attached LSP routine just above the “Drawing Initialization” section in the Pid-Sup.lsp file.

5. Save and Exit.
5. Re-open P&ID edit the valve's Symbol in Symbol Manager.
6. Add user_gate to the user function for the Valve wanting Automatic placement of the data. Save.
7. Place a new control valve.

;;;

(defun MoveOrGetAttributePosstion ( en tag p2 GetPointVal / el p4 p5)

   (setq tag (strcase tag))

   (while (and (setq el (entget (entnext en)))

               (= (cdr (assoc 0 el)) (strcase "attrib"))

               (/= (setq p4 (strcase (cdr (assoc 2 el)))) tag)

          )

         (setq en (entnext en))

   )

   (if (and el (= p4 tag))

       (progn

          (setq p4 (cdr (assoc 11 el))

                p5 (cdr (assoc 10 el))

          )

          (if (not GetPointVal)

              (progn

                 (setq  el (subst (cons 10 (polar p5 (angle p4 p2)(distance p4 p2)))(assoc 10 el) el)

                        el (subst (cons 11 p2)(assoc 11 el) el)

                        el (entmod el)

                  )

                  (entupd en)

              )

          )

      )

   )

   p4

)

 

 

(defun user_cvalve (link)

   (if (and(setq XdataGot (at_asi_get_xgroup link -18002 ))

           (setq eHand (cdar xdatagot))

           (setq egot (handent eHand))

           (entget egot)

       )

       (progn

          (princ "\nUpdating...")

          ; 0 turn visibility on

          ; 1 turn visibility off

         ; (attvis egot "typ"   0)

          (attvis egot "area"  0)

        ;  (attvis egot "num"   0)

        ;  (attvis egot "sz"    0)

        ;  (attvis egot "ail_mode"  1)

 

          (setq ptM (MoveOrGetAttributePosstion  egot "FAIL_MODE" () T))

 

          ;;Uncomment and adjust for size attribute placement

          (setq ptm (polar ptm 1.57 -.5))

 

          (MoveOrGetAttributePosstion egot "PSZ" ptM ())

 

       )

   )

)

 

 

(princ)