# Feature Request: Invert Visibility Setting

**URL:** <https://community.br-automation.com/t/feature-request-invert-visibility-setting/5746>\
**Category:** How-To & Wikis\
**Tags:** mapp-view\
**Created:** [February 6, 2025, 8:37am UTC](https://community.br-automation.com/t/feature-request-invert-visibility-setting/5746 "2025-02-06T08:37:05Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![Bjorn\_Kanter](https://avatars.discourse-cdn.com/v4/letter/b/FF8800/32.png) [@Bjorn\_Kanter](https://community.br-automation.com/u/Bjorn_Kanter)\
**Post date:** [February 6, 2025, 8:37am UTC](https://community.br-automation.com/t/feature-request-invert-visibility-setting/5746/1 "2025-02-06T08:37:05Z")

</div>

I would like to suggest a feature and, at the same time, ask if there is interest in the community:  
The option to invert the visibility binding in MappView per widget.

**Background:**  
With different machine configurations, the visualization also needs to be different. Some widgets should be visible, while others should be hidden. In our machines, there is one variable that determines the configuration of specific options.

Currently, if I want to set something as invisible when an option is set to “TRUE,” the workflow is not complicated but could be much faster:

1. Go to the “Visualization Control” task (or a similar task).
2. Add another variable.
3. Add a line of code that inverts the value depending on the configuration.
4. Go to OpcUaMap and find the variable.
5. Activate it.
6. Bind it in MappView.

Steps 1–5 could be avoided if there were an option like “Invert Visibility Setting” directly in the widget properties by default.

I understand that there are alternative solutions (event bindings, custom widgets, etc.), but as our number of settings, configurations, and developers increases, we have agreed as a team to use the simplest and quickest method for better understanding.

---

<div class="post-metadata">

**Author:** ![Simon\_Stoll](https://dub1.discourse-cdn.com/brcommunity/user_avatar/community.br-automation.com/simon_stoll/32/445_2.png) [@Simon\_Stoll](https://community.br-automation.com/u/Simon_Stoll)\
**Post date:** [February 6, 2025, 10:23am UTC](https://community.br-automation.com/t/feature-request-invert-visibility-setting/5746/2 "2025-02-06T10:23:00Z")

</div>

Hi Björn,

I would really prefer to get this feature too.

Another (not really simple) workaround is to do this with a ListBinding:

1. Add two Bool-SessionVars (AlwaysTrue and AlwaysFalse)  
1.1 One is true, the other is false
2. Do a ListBinding:

```auto
<Binding mode="oneWay">
	<Source xsi:type="listElement">
		<Selector xsi:type="opcUa" refId="::YourOpcUaVar" attribute="value" />
		<be:List xmlns:be="http://www.br-automation.com/iat2015/bindingListEmbedded/engineering/v2" xsi:type="be:session" attribute="value">				
			<bt:Element index="false" refId="AlwaysTrue" />
			<bt:Default refId="AlwaysFalse" />
		</be:List>
	</Source>
	<Target xsi:type="brease" contentRefId="YourContent" widgetRefId="YourWidget" attribute="visible" />
</Binding>

```

But it would be much easier to invert the binding visibility!

Maybe this is helpful to you 🙂

Sincerly Simon

---

<div class="post-metadata">

**Author:** ![kovarj](https://dub1.discourse-cdn.com/brcommunity/user_avatar/community.br-automation.com/kovarj/32/537_2.png) [@kovarj](https://community.br-automation.com/u/kovarj)\
**Post date:** [February 6, 2025, 11:29am UTC](https://community.br-automation.com/t/feature-request-invert-visibility-setting/5746/3 "2025-02-06T11:29:45Z")

</div>

Hi,

From an application point of view, I completely understand your use case and your thinking. This feature would make development easier for this kind of architecture.

But, **now the interesting part** , since you started this topic: 🙂

- I would recommend using the visible property very carefully. The best is to avoid it. Because the fact that a widget is not visible does not mean it is not loaded, etc. Simply put, more widgets mean higher performance requirements for the hardware, especially for the client hardware. So, we always say better is to use e.g. dedicated content for each machine variant and use the container widget and action `LoadContent()` or `LoadContentInArea()` methods instead of using the visible property of widgets.

- You can certainly find a solution with binding and event binding, but you may not be aware of this yet. However, a big innovation is coming soon to mappView, called **mapp Script** , which will be introduced with version **6.3.** With this, you can solve this kind of use case very easily. ValueChange event can trigger your script and it is up to you what you do inside, you can e.g. set/reset visibility of widgets based on any condition. Refer to small sample…

 ![image](https://europe1.discourse-cdn.com/brcommunity/original/2X/4/4f44a02d57e9f002b9334bde68da406daea40777.png)

And lastly,

I would like **to thank you for opening** this topic here at the B&R Community. It’s great to discuss your ideas here because it can start interesting discussions, give you another perspective, and, last but not least, some product owners are tracking discussions in the community, so generally discussions like this can inspire them.

**BUT** , and this is my last point I have to point out as well 🤣

B&R has **an official process for requesting new features**. So, if you need anything and you are sure your feature makes sense, you should follow this process anyway. 👩‍🎓

I hope my view helped you as well 🙂

---

<div class="post-metadata">

**Author:** ![Bjorn\_Kanter](https://avatars.discourse-cdn.com/v4/letter/b/FF8800/32.png) [@Bjorn\_Kanter](https://community.br-automation.com/u/Bjorn_Kanter)\
**Post date:** [February 6, 2025, 12:28pm UTC](https://community.br-automation.com/t/feature-request-invert-visibility-setting/5746/4 "2025-02-06T12:28:47Z")

</div>

Hi Jaroslav,  
Thank you for your input.  
I’m aware of most of the points you mentioned.  
I did not want to start talking about performance issues with MappView. Thats a completely different topic - but you brought it up 😉  
I understand the technical background of HTML5 and the performance issues with the visible property. But to be completely honest, the tool (MappView & Automation Studio) should help make the process easier for us developers. Restrictions are always there but should be kept in the background. I don’t want to struggle with the performance issue for **one of the simplest requirements** in a visualization: displaying something or not.

We are trying to develop our product in a way that, in 10 or more years, a developer is able to maintain the product and understand how it works as fast as possible, even if they have never worked with it.

Solutions with event bindings, LoadContent, and even the future solution of a script that does something in the background are not solutions that can be understood quickly but instead require relatively in-depth familiarization with the type of implementation. They are also far more difficult to implement and introduce a large number of other possible errors. And I repeat myself: this is an extremely simple function, such as displaying and hiding something—no movement, no huge amount of data.

The ListBinding from Simon is a great idea and understandable for everyone but not as easy as a simple inversion 😉

---

<div class="post-metadata">

**Author:** ![kovarj](https://dub1.discourse-cdn.com/brcommunity/user_avatar/community.br-automation.com/kovarj/32/537_2.png) [@kovarj](https://community.br-automation.com/u/kovarj)\
**Post date:** [February 6, 2025, 12:36pm UTC](https://community.br-automation.com/t/feature-request-invert-visibility-setting/5746/5 "2025-02-06T12:36:00Z")

</div>

That is what I like about the discussion. More views, each of them has cons and pros, and everyone can make the most of it.

I have not had a chance to test the **mapp Script** yet. But I believe, as far as I know the mapp View team, it will be easy to use and understand. But probably not as straightforward as looking into the properties of a widget. Let’s see. 🙂

---

<div class="post-metadata">

**Author:** ![Frederic\_Boyadjian](https://avatars.discourse-cdn.com/v4/letter/f/FF8800/32.png) [@Frederic\_Boyadjian](https://community.br-automation.com/u/Frederic_Boyadjian)\
**Post date:** [February 6, 2025, 7:34pm UTC](https://community.br-automation.com/t/feature-request-invert-visibility-setting/5746/6 "2025-02-06T19:34:12Z")

</div>

Interesting discussion—hope you don’t mind me jumping in! I wanted to share an approach I found particularly effective in an older HMI software, Vijeo Designer from Schneider Electric. It had a built-in formula editor for visibility control, allowing direct entry of logical expressions using variables (e.g., `NOT X` or `X AND Y`). This eliminated the need for additional variables or scripting for simple conditions.

While JavaScript was available for more complex logic, this feature provided an intuitive and efficient way to manage visibility without extra steps. Here’s a screenshot illustrating the functionality:

 ![Vijeo_FormulaEditor](https://europe1.discourse-cdn.com/brcommunity/original/2X/2/2ad9ebd26c5264d102804a94035d013a1b61767e.png)

Would something like this be feasible within mappView’s roadmap, perhaps alongside the upcoming mapp Script? It is one of the cool features I miss from this platform. I could see it being a really powerful addition!

---

<div class="post-metadata">

**Author:** ![Frederic\_Boyadjian](https://avatars.discourse-cdn.com/v4/letter/f/FF8800/32.png) [@Frederic\_Boyadjian](https://community.br-automation.com/u/Frederic_Boyadjian)\
**Post date:** [February 10, 2025, 7:26pm UTC](https://community.br-automation.com/t/feature-request-invert-visibility-setting/5746/7 "2025-02-10T19:26:00Z")

</div>

Hey Jaroslav, could you point me to where I can find the process for requesting new features?

---

<div class="post-metadata">

**Author:** ![kovarj](https://dub1.discourse-cdn.com/brcommunity/user_avatar/community.br-automation.com/kovarj/32/537_2.png) [@kovarj](https://community.br-automation.com/u/kovarj)\
**Post date:** [February 11, 2025, 6:48am UTC](https://community.br-automation.com/t/feature-request-invert-visibility-setting/5746/8 "2025-02-11T06:48:37Z")

</div>

Hi @Frederic_Boyadjian, for this you need to contact the support of your local B&R office. They will provide you with all the necessary information and documents.

---

<div class="post-metadata">

**Author:** ![powolnyp](https://avatars.discourse-cdn.com/v4/letter/p/FF8800/32.png) [@powolnyp](https://community.br-automation.com/u/powolnyp)\
**Post date:** [February 13, 2025, 7:29am UTC](https://community.br-automation.com/t/feature-request-invert-visibility-setting/5746/9 "2025-02-13T07:29:40Z")

</div>

Hi Björn,  
I think this is the perfect use case for Expresions. Expresions are also avaiable in mappView. See the help topic: [B&R Online Help](https://help.br-automation.com/#/en/4/visualization%2Fmappview%2Fengineering%2Fcv_variables_data%2Flv_expressions%2Flv_expressions.html)

---

<div class="post-metadata">

**Author:** ![Vratislav\_Korinek](https://avatars.discourse-cdn.com/v4/letter/v/FF8800/32.png) [@Vratislav\_Korinek](https://community.br-automation.com/u/Vratislav_Korinek)\
**Post date:** [February 13, 2025, 12:57pm UTC](https://community.br-automation.com/t/feature-request-invert-visibility-setting/5746/10 "2025-02-13T12:57:53Z")

</div>

> [@kovarj](#):
>
> d a solution with binding and event binding, but you may not be aware of this yet. However, a big innovation is coming soon to mappView, called **mapp Script** , which will be introduced with version **6.3.** With this, you can solve this kind of use case very easily. ValueChange event can trigger your script and it is up to you what you do inside, you can e.g. set/reset visibility of widgets based on any condition. Refer to small sample…

As @kovarj wrote, best way for different machines load specific content. We use it also, that we generate \*.vis file depending on type of machine and in vis file is only content needed for variant.

---

<div class="post-metadata">

**Author:** ![simone.lonardoni](https://avatars.discourse-cdn.com/v4/letter/s/FF8800/32.png) [@simone.lonardoni](https://community.br-automation.com/u/simone.lonardoni)\
**Post date:** [October 5, 2026, 7:56am UTC](https://community.br-automation.com/t/feature-request-invert-visibility-setting/5746/11 "2026-10-05T07:56:45Z")

</div>

Hello,

I would like to add to this topic.

In our company, we have the same software management requirements as @Bjorn_Kanter,  
and it would be very useful for us to have **“Invert Visibility Setting”** and also **“Invert Enable Setting”**.

Thank you

---

<div class="post-metadata">

**Author:** ![kovarj](https://dub1.discourse-cdn.com/brcommunity/user_avatar/community.br-automation.com/kovarj/32/537_2.png) [@kovarj](https://community.br-automation.com/u/kovarj)\
**Post date:** [October 6, 2026, 7:49am UTC](https://community.br-automation.com/t/feature-request-invert-visibility-setting/5746/12 "2026-10-06T07:49:06Z")

</div>

Hi Simone, as mentioned above. This topic is about workaround. The official request must be done using your local B&R representative. I

---

<div class="post-metadata">

**Author:** ![simone.lonardoni](https://avatars.discourse-cdn.com/v4/letter/s/FF8800/32.png) [@simone.lonardoni](https://community.br-automation.com/u/simone.lonardoni)\
**Post date:** [October 6, 2026, 8:08am UTC](https://community.br-automation.com/t/feature-request-invert-visibility-setting/5746/13 "2026-10-06T08:08:28Z")

</div>

Hi Jaroslav,

Is it possible to add a section for official requests in this forum?

This would also provide a way to track and collect statistics on submitted requests.

Sometimes requests sent to local B&R offices seem to get lost.

---

<div class="post-metadata">

**Author:** ![hobi72](https://dub1.discourse-cdn.com/brcommunity/user_avatar/community.br-automation.com/hobi72/32/68_2.png) [@hobi72](https://community.br-automation.com/u/hobi72)\
**Post date:** [October 6, 2026, 10:19am UTC](https://community.br-automation.com/t/feature-request-invert-visibility-setting/5746/14 "2026-10-06T10:19:19Z")

</div>

> [@kovarj](#):
>
> This topic is about workaround.

honestly speaking, I would not see using mapp Script as workaround!

Simple reason:  
If we would allow to add “expressions” directly in the properties (visible, enable, …) it would in the end be a fragment of JavaScript code, which is executed, whenever the underlying value changes.

The same effect you can achieve by using mapp Script in combination with e.g. an OPC-UA OnChangeEvent handler for a “visible variable”, which you then can invert with JavaScript functions. In the end you can even apply much more complex logic, if needed.

The only (?) benefit of an “build in” logic would be, that the mechanics around it, is hidden in the framework.

Personally I prefer the mapp Script approach, as it is much more flexible. It is neither restricted to “visible” or “enable”, nor is is restricted to “not value” … you can really to everything for all attributes of a widget.

CHH

---

<div class="post-metadata">

**Author:** ![kovarj](https://dub1.discourse-cdn.com/brcommunity/user_avatar/community.br-automation.com/kovarj/32/537_2.png) [@kovarj](https://community.br-automation.com/u/kovarj)\
**Post date:** [October 6, 2026, 11:05am UTC](https://community.br-automation.com/t/feature-request-invert-visibility-setting/5746/15 "2026-10-06T11:05:27Z")

</div>

OK, Christian. We can discuss if mappScript is a workaround or a recommended solution for this use case. I will not fight for my one. So let’s do a summary:

- We both agree that the needed function can be done with mapp Script
- Invert visibility/Enable directly on widget is connected with official request

---

<div class="post-metadata">

**Author:** ![kovarj](https://dub1.discourse-cdn.com/brcommunity/user_avatar/community.br-automation.com/kovarj/32/537_2.png) [@kovarj](https://community.br-automation.com/u/kovarj)\
**Post date:** [October 6, 2026, 11:14am UTC](https://community.br-automation.com/t/feature-request-invert-visibility-setting/5746/16 "2026-10-06T11:14:05Z")

</div>

To be clear and honest, the process for official requests is defined, and it is not done here.

In the B&R Community, we have recently introduced a forum for unofficial requests for Automation Studio and Automation Studio Code. This forum is visible only to logged-in users and has defined rules.

This was only possible because of the openness of the Product Manager for Automation Studio, who reviews these requests. More details here: [How can B&R Community help with definition of new AS Features - #16 by kovarj](https://community.br-automation.com/t/how-can-b-r-community-help-with-definition-of-new-as-features/9205/16).

For mappView, at the moment, we do not have this kind of forum.
