# Do we have Timer in perspective?

**URL:** <https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102>\
**Category:** Ignition\
**Tags:** perspective, vision\
**Created:** [April 15, 2025, 10:20am UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102 "2025-04-15T10:20:05Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![TechEnlive](https://avatars.discourse-cdn.com/v4/letter/t/3be4f8/32.png) [@TechEnlive](https://forum.inductiveautomation.com/u/TechEnlive)\
**Post date:** [April 15, 2025, 10:20am UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/1 "2025-04-15T10:20:05Z")

</div>

Hi,  
I was using timer in Vision, but in the Perspective i can not find it.  
Does anybody know the solution?

Thanks.

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [April 15, 2025, 10:21am UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/2 "2025-04-15T10:21:39Z")

</div>

No there isn't one - but there are ways to do timer functions.  
What problem are you trying to solve?

---

<div class="post-metadata">

**Author:** ![TechEnlive](https://avatars.discourse-cdn.com/v4/letter/t/3be4f8/32.png) [@TechEnlive](https://forum.inductiveautomation.com/u/TechEnlive)\
**Post date:** [April 15, 2025, 11:08am UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/3 "2025-04-15T11:08:13Z")

</div>

I show pipe and the flow direction with and arrow. Now i want to animate arrow using timer.  
If the Pump state is running i want to change arrow color as animation.  
"Blue then Green then Blue" and continue as the pump state running. I hope you understand what i want to achieve. If you have another way please share.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/5/a/5ae7854bfdd6d26fe94549996409bb2498faa029.png)

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [April 15, 2025, 11:15am UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/4 "2025-04-15T11:15:34Z")

</div>

A timer would be a bad way to do this as the timing would be done on the gateway and every change of state would require messaging to the client.

Instead use CSS animation.

> **[How to Create a Flashing Component | Ignition User Manual](https://www.docs.inductiveautomation.com/docs/8.1/ignition-modules/perspective/styles/style-classes/how-to-create-a-flashing-component)**
>
> In some cases you may want to have a label or other display component flash, standing out from other components on the screen. This can easily be accomplished by creating an animated style class, as they have a built-in mechanism to change styling...

---

<div class="post-metadata">

**Author:** ![TechEnlive](https://avatars.discourse-cdn.com/v4/letter/t/3be4f8/32.png) [@TechEnlive](https://forum.inductiveautomation.com/u/TechEnlive)\
**Post date:** [April 15, 2025, 12:38pm UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/5 "2025-04-15T12:38:20Z")

</div>

Hi, i have implemented as advised in the manual, but it changes the color of the background but not the shape. As you can see in the attached images.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/6/2/62f330ef4a60e21746ffc899989fd2525d341955.png)

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/2/1/216ddfc1836e02e80bcc6f3d560306b128b7b45a.png)

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [April 15, 2025, 1:02pm UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/6 "2025-04-15T13:02:06Z")

</div>

Show how you have the style set up.

---

<div class="post-metadata">

**Author:** ![TechEnlive](https://avatars.discourse-cdn.com/v4/letter/t/3be4f8/32.png) [@TechEnlive](https://forum.inductiveautomation.com/u/TechEnlive)\
**Post date:** [April 15, 2025, 1:17pm UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/7 "2025-04-15T13:17:09Z")

</div>

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/6/d/6dacd7cc65e8695262b206f9e2a1037a86a09a89.png)

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/8/8/8817a7256fe5c9153a8c3350d189f867c2e4f2d2.png)

---

<div class="post-metadata">

**Author:** ![Felipe\_CRM](https://avatars.discourse-cdn.com/v4/letter/f/dfb087/32.png) [@Felipe\_CRM](https://forum.inductiveautomation.com/u/Felipe_CRM)\
**Post date:** [April 15, 2025, 1:32pm UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/8 "2025-04-15T13:32:07Z")

</div>

You're setting `background-color` which changes the background color.

Try using `fill`:

> **[fill - CSS: Cascading Style Sheets | MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/fill)**
>
> The fill CSS property defines how SVG text content and the interior canvas of SVG shapes are filled or painted. If present, it overrides the element's fill attribute.

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [April 15, 2025, 1:32pm UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/9 "2025-04-15T13:32:38Z")

</div>

Well, you followed the tutorial exactly, which changes the background color. Try adjusting something like the fill color, or whichever property you need to adjust.

---

<div class="post-metadata">

**Author:** ![TechEnlive](https://avatars.discourse-cdn.com/v4/letter/t/3be4f8/32.png) [@TechEnlive](https://forum.inductiveautomation.com/u/TechEnlive)\
**Post date:** [April 15, 2025, 2:01pm UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/10 "2025-04-15T14:01:31Z")

</div>

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/6/3/638b68801d9d37b221d6252bcf981a42dba4460e.png)

tried this but arrow is not animating...

---

<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:** [April 15, 2025, 2:25pm UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/11 "2025-04-15T14:25:59Z")

</div>

I'm fairly certain the fill color is overriding the class. Try removing fill property and just use the class.

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [April 15, 2025, 2:49pm UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/12 "2025-04-15T14:49:23Z")

</div>

... and then create a second non-blinking style class.  
Then create an expression binding on the `classes` property to select which class to apply to the object when the controlling property or tag changes.  
e.g.,

```python
if({[default]myBool},
	"ArrowBlinking",
	"ArrowSteady"
)

```

---

<div class="post-metadata">

**Author:** ![Steve\_Laubach](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/steve_laubach/32/60900_2.png) [@Steve\_Laubach](https://forum.inductiveautomation.com/u/Steve_Laubach)\
**Post date:** [April 15, 2025, 6:37pm UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/13 "2025-04-15T18:37:16Z")

</div>

That often solves problems with animating colors on SVGs with style classes. I've had similar experiences.

---

<div class="post-metadata">

**Author:** ![TechEnlive](https://avatars.discourse-cdn.com/v4/letter/t/3be4f8/32.png) [@TechEnlive](https://forum.inductiveautomation.com/u/TechEnlive)\
**Post date:** [April 16, 2025, 6:32am UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/14 "2025-04-16T06:32:04Z")

</div>

Hi Steve can you share it please?  
Thanks

---

<div class="post-metadata">

**Author:** ![Steve\_Laubach](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/steve_laubach/32/60900_2.png) [@Steve\_Laubach](https://forum.inductiveautomation.com/u/Steve_Laubach)\
**Post date:** [April 16, 2025, 12:33pm UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/15 "2025-04-16T12:33:01Z")

</div>

The fix varies depending on how the SVG is built. I back up the element and work off of a copy. I also use undo as I try stuff.

Generally I have to add a "style" property to a section of the SVG. Then I apply a style class to it to see what happens. If it doesn't change anything I systematically delete things from the SVG to see if I can get it to change. If you can get your styles to impact the SVG as you want them to you can then animate it. You often have to use the advanced style sheet because some sections of SVGs will fill with properties like "fill".

My general recommendation is to work off a copy and try stuff.

---

<div class="post-metadata">

**Author:** ![TechEnlive](https://avatars.discourse-cdn.com/v4/letter/t/3be4f8/32.png) [@TechEnlive](https://forum.inductiveautomation.com/u/TechEnlive)\
**Post date:** [April 16, 2025, 2:50pm UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/16 "2025-04-16T14:50:06Z")

</div>

Hi, First thanks for all your support.  
I have achieved the Blinking arrow by adding the style class inside the element and it's working fine.  
Use as a second class as "Transistor" advised.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/9/c/9c3b65f10e4eca67aed9c89648b07999d0ed5a38.png)

---

<div class="post-metadata">

**Author:** ![David\_Gomez\_Alarcon](https://avatars.discourse-cdn.com/v4/letter/d/7ea924/32.png) [@David\_Gomez\_Alarcon](https://forum.inductiveautomation.com/u/David_Gomez_Alarcon)\
**Post date:** [April 16, 2025, 2:56pm UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/17 "2025-04-16T14:56:56Z")

</div>

You can use a gif like this and if you want other color you can change with inkscape or other software

> **[Redirect Notice](https://www.google.com/url?sa=i&url=https%3A%2F%2Fcommons.wikimedia.org%2Fwiki%2FFile%3AGreen-animated-arrow-right.gif&psig=AOvVaw0XM5NWZ5teA1P_EMCDyy9y&ust=1744901685954000&source=images&cd=vfe&opi=89978449&ved=0CBMQjRxqFwoTCIjN9rrn3IwDFQAAAAAdAAAAABAE)**

---

<div class="post-metadata">

**Author:** ![James.Sletten](https://avatars.discourse-cdn.com/v4/letter/j/7ea924/32.png) [@James.Sletten](https://forum.inductiveautomation.com/u/James.Sletten)\
**Post date:** [April 18, 2025, 12:13pm UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/18 "2025-04-18T12:13:03Z")

</div>

Just wanted to share an alternate approach to this topic. While using CSS is likely more performant, this method may be useful in certain scenarios.

You can create an expression tag that uses the now() function to generate a clock pulse. This pulse can then be used to drive screen animations or trigger periodic updates in your view.

**Expression function setup.**

 ![Now Expression](https://us1.discourse-cdn.com/inductiveautomation/original/3X/9/d/9dc3ada4496be07ee36e418322dd79b28942cb2a.png)

**Perspective session custom properties that can be used thought the application to provide the various timer pulses.**

 ![Session Props](https://us1.discourse-cdn.com/inductiveautomation/original/3X/f/e/fe9cdad96c5abfbaa453ebcff2d4ade8a2219c29.png)

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [April 18, 2025, 12:24pm UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/19 "2025-04-18T12:24:24Z")

</div>

> [@James.Sletten](#):
>
> You can create an expression tag that uses the now() function to generate a clock pulse.

That is not recommended. The expressions run on the gateway, take up gateway resources (firing up the Jython script interpreter) and generate a traffic between the gateway and the browser. There is also likely to be noticeable jitter on shorter time periods.

---

<div class="post-metadata">

**Author:** ![James.Sletten](https://avatars.discourse-cdn.com/v4/letter/j/7ea924/32.png) [@James.Sletten](https://forum.inductiveautomation.com/u/James.Sletten)\
**Post date:** [April 18, 2025, 12:52pm UTC](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102/20 "2025-04-18T12:52:02Z")

</div>

Thanks for the additional insight. Do you have a source that indicated where the now() function runs? I just want to learn more about where expressions are executed.

The manual makes it seem like the now() expression runs on the client PC.

From the manual  
_Returns the current time. The host computer's system clock is used, meaning that if this expression is being evaluated in a running client, the computer running the client's system clock is used._

[Next page](https://forum.inductiveautomation.com/t/do-we-have-timer-in-perspective/105102.md?page=2)
