# Is it possible to inspect .bin files for e.g. vision windows programmatically?

**URL:** <https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593>\
**Category:** Ignition\
**Tags:** scripting, vision\
**Created:** [February 19, 2025, 8:41pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593 "2025-02-19T20:41:01Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Leor\_Fishman](https://avatars.discourse-cdn.com/v4/letter/l/e19adc/32.png) [@Leor\_Fishman](https://forum.inductiveautomation.com/u/Leor_Fishman)\
**Post date:** [February 19, 2025, 8:41pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/1 "2025-02-19T20:41:01Z")

</div>

E.g. if I want to, given a window.bin file, figure out 'what objects are in this file and what tags are they tied to'.

EDIT: The best way for me to do this might be via the scripting API inside the designer, rather than from the BIN files. Is there an easy way to have a script inside the designer e.g. wait for a file to be written on the host filesystem, then based on the contents of that file do some programmatic analysis/modification of the project?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 19, 2025, 8:48pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/2 "2025-02-19T20:48:33Z")

</div>

No, but modern Ignition can be told to save windows/templates in the underlying XML format. You may need to open and then save every resource involved, though.

---

<div class="post-metadata">

**Author:** ![Leor\_Fishman](https://avatars.discourse-cdn.com/v4/letter/l/e19adc/32.png) [@Leor\_Fishman](https://forum.inductiveautomation.com/u/Leor_Fishman)\
**Post date:** [February 19, 2025, 8:49pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/3 "2025-02-19T20:49:48Z")

</div>

Where is that setting in the gateway?  
Also, can gateway backups be modified to use that setting as well?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 19, 2025, 8:50pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/4 "2025-02-19T20:50:51Z")

</div>

It's in the project settings.

A gateway backup simply grabs all the files in the filesystem, so you'll get XML for those that have been opened and re-saved.

---

<div class="post-metadata">

**Author:** ![Leor\_Fishman](https://avatars.discourse-cdn.com/v4/letter/l/e19adc/32.png) [@Leor\_Fishman](https://forum.inductiveautomation.com/u/Leor_Fishman)\
**Post date:** [February 19, 2025, 8:51pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/5 "2025-02-19T20:51:07Z")

</div>

Terrific, thanks

---

<div class="post-metadata">

**Author:** ![Leor\_Fishman](https://avatars.discourse-cdn.com/v4/letter/l/e19adc/32.png) [@Leor\_Fishman](https://forum.inductiveautomation.com/u/Leor_Fishman)\
**Post date:** [February 19, 2025, 8:52pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/6 "2025-02-19T20:52:38Z")

</div>

Sorry, where in the project settings?  
Not seeing it either in the gateway or the designer

---

<div class="post-metadata">

**Author:** ![lrose](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/lrose/32/62724_2.png) [@lrose](https://forum.inductiveautomation.com/u/lrose)\
**Post date:** [February 19, 2025, 9:09pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/7 "2025-02-19T21:09:49Z")

</div>

> [@Leor\_Fishman](#):
>
> Sorry, where in the project settings?

Project Properties -\> Vision -\> General -\> Resource Encoding

By default it is set to Auto, but you can set it to either Binary or XML.

---

<div class="post-metadata">

**Author:** ![Leor\_Fishman](https://avatars.discourse-cdn.com/v4/letter/l/e19adc/32.png) [@Leor\_Fishman](https://forum.inductiveautomation.com/u/Leor_Fishman)\
**Post date:** [February 19, 2025, 9:16pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/8 "2025-02-19T21:16:38Z")

</div>

Terrific, thanks -- that worked for me.

I'm assuming there's no documentation on the contents of this file/how to read stuff out of it?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 19, 2025, 9:19pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/9 "2025-02-19T21:19:38Z")

</div>

> [@Leor\_Fishman](#):
>
> no documentation

Correct. It's format is an implementation detail and rather convoluted. It helps if you notice that any component that has a binding gets encoded with the window's `InteractionController` instead of producing a simple tree of containers and components.

☹

---

<div class="post-metadata">

**Author:** ![Leor\_Fishman](https://avatars.discourse-cdn.com/v4/letter/l/e19adc/32.png) [@Leor\_Fishman](https://forum.inductiveautomation.com/u/Leor_Fishman)\
**Post date:** [February 19, 2025, 9:28pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/10 "2025-02-19T21:28:30Z")

</div>

If i wanted to do programmatic reading/manipulation of this, am I better suited to go via designer scripting, rather than the XML?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 19, 2025, 10:06pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/11 "2025-02-19T22:06:26Z")

</div>

In the designer, you have to open the window to script against it. If that's ok, then scripting the actual Swing objects is **much** easier than the XML.

---

<div class="post-metadata">

**Author:** ![Leor\_Fishman](https://avatars.discourse-cdn.com/v4/letter/l/e19adc/32.png) [@Leor\_Fishman](https://forum.inductiveautomation.com/u/Leor_Fishman)\
**Post date:** [February 19, 2025, 10:07pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/12 "2025-02-19T22:07:31Z")

</div>

Is there any way for me to automatically run scripts (assuming the designer is open)?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 19, 2025, 10:09pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/13 "2025-02-19T22:09:50Z")

</div>

No.

(But I've thought about adding something to my Integration Toolkit for pure designer events, defined outside any project. Hmm. After I'm ready for v8.3, perhaps.)

---

<div class="post-metadata">

**Author:** ![Leor\_Fishman](https://avatars.discourse-cdn.com/v4/letter/l/e19adc/32.png) [@Leor\_Fishman](https://forum.inductiveautomation.com/u/Leor_Fishman)\
**Post date:** [February 19, 2025, 10:11pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/14 "2025-02-19T22:11:47Z")

</div>

What about to have scripts run on a particular project (to e.g. read/modify windows) based on e.g. the presence of a particular file in a directory which contains params

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 19, 2025, 10:12pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/15 "2025-02-19T22:12:43Z")

</div>

You'll have to explain further. The designer doesn't have to be on the same computer where project resources are stored.

---

<div class="post-metadata">

**Author:** ![Leor\_Fishman](https://avatars.discourse-cdn.com/v4/letter/l/e19adc/32.png) [@Leor\_Fishman](https://forum.inductiveautomation.com/u/Leor_Fishman)\
**Post date:** [February 19, 2025, 10:17pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/16 "2025-02-19T22:17:40Z")

</div>

Sure -- I want to have a script on the designer in a specific project that e.g.

"Watches for a file on its host filesystem containing a list of objects to create in a window"

"When it receives those files, it checks the window for all objects, then modifies the objects that match to have the params from the file, and adds the objects that don't match, then saves the project"

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 19, 2025, 10:18pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/17 "2025-02-19T22:18:30Z")

</div>

Yeah, no, nothing like that is possible out of the box.

---

<div class="post-metadata">

**Author:** ![Leor\_Fishman](https://avatars.discourse-cdn.com/v4/letter/l/e19adc/32.png) [@Leor\_Fishman](https://forum.inductiveautomation.com/u/Leor_Fishman)\
**Post date:** [February 19, 2025, 11:25pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/18 "2025-02-19T23:25:04Z")

</div>

Alright, thanks. Even this XML gives me something to start with.

---

<div class="post-metadata">

**Author:** ![Shane\_Peters](https://avatars.discourse-cdn.com/v4/letter/s/e9c0ed/32.png) [@Shane\_Peters](https://forum.inductiveautomation.com/u/Shane_Peters)\
**Post date:** [February 25, 2025, 4:24pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/19 "2025-02-25T16:24:18Z")

</div>

It would be useful for me to be able to do this with reports as well, but there is no option to change reports encoding type like there is vision windows. Am I just out of luck here?

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [February 25, 2025, 4:43pm UTC](https://forum.inductiveautomation.com/t/is-it-possible-to-inspect-bin-files-for-e-g-vision-windows-programmatically/102593/20 "2025-02-25T16:43:28Z")

</div>

This is a big digression from the main topic of this post, but essentially yes, you're out of luck.

At some point in the future we may come up with a new encoding format for reporting, but that's a _significant_ endeavour (there's nothing human readable under the hood like there basically already was for Vision) and quite risky with relatively little product gain, because code editing of reports _as they currently exist_ would be a pretty miserable experience. So don't hold your breath.
