# System.tag.exists on a Vision Visible Property

**URL:** <https://forum.inductiveautomation.com/t/system-tag-exists-on-a-vision-visible-property/68229>\
**Category:** Ignition\
**Tags:** ignition81, vision\
**Created:** [January 4, 2023, 7:06pm UTC](https://forum.inductiveautomation.com/t/system-tag-exists-on-a-vision-visible-property/68229 "2023-01-04T19:06:24Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Michael\_Gemme](https://avatars.discourse-cdn.com/v4/letter/m/9d8465/32.png) [@Michael\_Gemme](https://forum.inductiveautomation.com/u/Michael_Gemme)\
**Post date:** [January 4, 2023, 7:06pm UTC](https://forum.inductiveautomation.com/t/system-tag-exists-on-a-vision-visible-property/68229/1 "2023-01-04T19:06:24Z")

</div>

I'm trying to use the system.tag.exists on an expression for a visible property on certain components part of a faceplate. I can't get this to work. I have a tag path for CO2 level {co2TagPath}. A moving analog indicator that I'd like to hide if the CO2 level tag doesn't exists. I've read through some other posts on this topic and I couldn't find much on using this function in an expression specifically for the visible property. Is this allowed? What is the syntax? If not is there a workaround? I'm using version 8.1.22

---

<div class="post-metadata">

**Author:** ![dkhayes117](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/dkhayes117/32/68344_2.png) [@dkhayes117](https://forum.inductiveautomation.com/u/dkhayes117)\
**Post date:** [January 4, 2023, 7:09pm UTC](https://forum.inductiveautomation.com/t/system-tag-exists-on-a-vision-visible-property/68229/2 "2023-01-04T19:09:13Z")

</div>

The expression language is separate from the scripting language and system functions do not work in expressions.

You probably could use the tag quality in the visible expression.

---

<div class="post-metadata">

**Author:** ![jlandwerlen](https://avatars.discourse-cdn.com/v4/letter/j/bc8723/32.png) [@jlandwerlen](https://forum.inductiveautomation.com/u/jlandwerlen)\
**Post date:** [January 4, 2023, 7:09pm UTC](https://forum.inductiveautomation.com/t/system-tag-exists-on-a-vision-visible-property/68229/3 "2023-01-04T19:09:25Z")

</div>

For an expression, something like this:

```auto
runScript("system.tag.exists", 0, "YourTagPath")

```

---

<div class="post-metadata">

**Author:** ![dkhayes117](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/dkhayes117/32/68344_2.png) [@dkhayes117](https://forum.inductiveautomation.com/u/dkhayes117)\
**Post date:** [January 4, 2023, 7:10pm UTC](https://forum.inductiveautomation.com/t/system-tag-exists-on-a-vision-visible-property/68229/4 "2023-01-04T19:10:07Z")

</div>

Uh, I never thought of calling system functions with `runScript`. Interesting.

---

<div class="post-metadata">

**Author:** ![Michael\_Gemme](https://avatars.discourse-cdn.com/v4/letter/m/9d8465/32.png) [@Michael\_Gemme](https://forum.inductiveautomation.com/u/Michael_Gemme)\
**Post date:** [January 4, 2023, 7:15pm UTC](https://forum.inductiveautomation.com/t/system-tag-exists-on-a-vision-visible-property/68229/5 "2023-01-04T19:15:05Z")

</div>

I tried this right before my post. But instead of using a 0 between your commas, I used 1. It locked up my designer. What does the zero represent?

---

<div class="post-metadata">

**Author:** ![dkhayes117](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/dkhayes117/32/68344_2.png) [@dkhayes117](https://forum.inductiveautomation.com/u/dkhayes117)\
**Post date:** [January 4, 2023, 7:18pm UTC](https://forum.inductiveautomation.com/t/system-tag-exists-on-a-vision-visible-property/68229/6 "2023-01-04T19:18:20Z")

</div>

That's the time parameter. 0 means it will update only as the tag path changes. 1 means it will try to run every 1 ms, which is why it locked it up.

---

<div class="post-metadata">

**Author:** ![Michael\_Gemme](https://avatars.discourse-cdn.com/v4/letter/m/9d8465/32.png) [@Michael\_Gemme](https://forum.inductiveautomation.com/u/Michael_Gemme)\
**Post date:** [January 4, 2023, 7:25pm UTC](https://forum.inductiveautomation.com/t/system-tag-exists-on-a-vision-visible-property/68229/7 "2023-01-04T19:25:34Z")

</div>

This worked. Thank you both!

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [January 4, 2023, 8:54pm UTC](https://forum.inductiveautomation.com/t/system-tag-exists-on-a-vision-visible-property/68229/8 "2023-01-04T20:54:45Z")

</div>

I prefer using the `isAvailable` expression function provided by @paul-griffith 's module [Ignition Extensions - Convenience utilities for advanced users](https://forum.inductiveautomation.com/t/ignition-extensions-convenience-utilities-for-advanced-users/64615)

It's far better/faster/more efficient/prettier than using runScript.  
There's also `isGood` provided in the standard igntion platform. isAvailable however checks specifically if the tag is both not disabled and exists. Whereas isGood only checks if it's Good, so will not be good if it has any config errors or other qualities you probably want to know about
