LabVIEW Idea Exchange

Community Browser
cancel
Showing results for 
Search instead for 
Did you mean: 
Post an idea

The request:

When you add a VI server reference to a VI, it shows up as "This VI".  Why not allow it to be searchable in Quick Drop with the text "This VI" as well?

 

_carl_0-1785165839087.png

 

My experience:

I find myself often wanting to add this to a VI, but when I open up Quick Drop, the first thing that comes to mind is "This VI" because that's how it shows up in the block diagram.  Inevitably I then spend 30 seconds trying to remember what exactly it's called before either eventually remembering it's "VI Server Reference", or giving up and going to the Tools Palette to find it.

There are many tasks in LabVIEW that are tedious and manual due to its graphical nature. This is something Nigel or another LLM-controlled scripting feature could change.

 

Allow it to perform structural changes and wiring on the block diagram via natural language commands. Expand it’s capabilities beyond explanation and simple code suggestions to direct, intelligent manipulation of the Front Panel and Block Diagram. The user should be able to describe desired behavior in plain English, and the AI should execute or generate the appropriate structure.

 

One example would be wiring and bundling: “Wire all controls whose names contain ‘sensor’ to a Bundle By Name node using the matching cluster element names.”

 

Another might be diagram layout: “Select all terminals containing ‘temp’ and arrange them by the last number in their name vertically on the right side of the diagram with tight spacing.”


Desired Capabilities:

  • Name-based matching and filtering of controls, indicators, and cluster elements.
  • Intelligent wiring (Bundle By Name, Unbundle By Name, auto-wiring by name).
  • Creation of VIMs / reusable subVIs with dynamic behavior.
  • Structural changes (add loops, case structures, bundling logic, etc.).
  • Optional preview + confirmation before applying changes to the diagram.
  • Works on both Front Panel and Block Diagram.
This would turn the AI into a true productivity multiplier — especially for large VIs and configuration-heavy applications. Importantly, it does not necessarily require it to be that advanced; it would mainly be an LLM-controlled driver for VI scripting (leveraging LabVIEW’s existing VI Server and object model).

 

There are lots of very old Idea Exchange entries for plots that seem very promising.

 

Some of these go back to 2009, and this wasn't an exhaustive search. Some of these ideas were posted before some of our forum members were even born! 😉

 

That handful I picked has a total of 317 Kudos- but they're spread out over a large number of individual posts, so this Idea entry is sort of a combo of all of them. Basically, there are LOTS of great ideas from the community, but unfortunately most don't get any traction from NI.

 

The request is to Open Source the plotting tools, similarly to the Icon Editor or the Actor Framework. I know I'd be thrilled to be able to hack around with the plots. I'm sure there are some gnarly secrets under the hood, but that's part of the fun 🙂

Whereas I readily admit this is a problem between keyboard and chair situation, I occasionally find myself using the Ctrl + I (insert) when having selected a node and intending to Ctrl + P (replace) the node. Likewise, I will sometimes select a wire, identify the VI I am intending to insert and type Ctrl + P. This means I have to start over each time.

 

It would be nice if I tried to insert into a VI instead of a wire, it was smart enough to do a replace. Likewise, if I tried to do a replace on a wire by identifying a VI, it would insert it instead.

Despite being growable for adding outputs (capturing groups), the "Match Regular Expression" XNode is missing some convenient features from other growable functions:

 

1. Cannot add a new element at the top while resizing the node:

Resize from top.gif

 

2. Missing "Add/Remove Element" right-click menus:

 

raphschru_0-1781017278636.png raphschru_1-1781017452535.png

 

 

The lack of these features forces us to rewire everything manually.

This idea has the same motivation as this previous one: making the editor more ergonomic and predictable.

 

Regards,

Raphaël.

Having consistent (and therefore predictable) right-click menus is essential for maximizing coding efficiency.

 

Most structures have the following right-click menu items:

 

Visible Items
Help
Examples
Description and Tip...
---------------------------
Add Breakpoint
---------------------------
Structures Palette
Auto Grow
Exclude from Diagram Cleanup
<specific menu 1>

<specific menu N>
Replace with <other structure type 1>

Replace with <other structure type N>
Remove <structure type>
---------------------------
<other specific menus>

 

The right-click menu however has some inconsistencies regarding item order and menu separators for certain structure types:

 

1. "In Place Element Structure" has "Replace" and "Remove" items reversed:

raphschru_0-1778671181846.png

The "Remove" item should always be the last one in the item group (right before the separator) since it is a very common action and the separator offers a quick visual reference point.

 

2. Depending on whether you click on the structure border, the frame name label or the subdiagram label, sometimes an extra item separator appears for no reason:

raphschru_3-1778673447637.png  raphschru_6-1778673672106.png  raphschru_5-1778673565395.png

 

The grouping of the generic items shouldn't vary depending on where you click on the structure. Here we sometimes have 4 item groups instead of 3, which hinders quick menu identification and selection.

 

3. This is more a general remark, but I think items specific to a structure type shouldn't be mixed with the generic ones in the first 3 groups (except maybe for the "Replace" items, since they are related to the "Remove" action).

 

So any specific menu item should belong after the first 3 groups:

raphschru_2-1778672934373.png  raphschru_7-1778673846675.png

raphschru_8-1778673934000.png  raphschru_9-1778673982744.png

 

This last remark could be subject to discussion though, as configuring iteration parallelism and shared clone allocation could be considered a "primary" action (therefore requiring to be closest to the top), even if it is specific to certain structure types.

 

Regards,

Raphaël.

This idea is an extension of an existing one.  Here the idea is to have alpha layer support in the Picture Control.  But the truth is NI already added it in 2020 but never put it on the palette, or documented it.  I made a quick demo showing how you can have a highlight over an element of an array showing which one is moused over here. The main VI that powers this is here:

 

https://youtu.be/gqJWBbqoR4s?si=_JT8-K7FoNfaPVhz

 

National Instruments\LabVIEW 2020\vi.lib\picture\PNG\Draw Flattened Blended Pixmap.vi

 

But I would like this idea to extend beyond just putting this VI on the palette or documenting it.  I think NI should add more alpha layer functions too.  Things like convert LV Data to 32 bit, set or adjust the transparency level, and make a single VI that can call the normal Draw Flatten for a 24 bit or less image, and call the Blended one if 32 bit so that a single VI can be used.  I have a couple of these type of features in a pack on VIPM.IO but I'd rather they be built in to LabVIEW.

 

And lastly. If we are going to think about places that alpha information can be used, I think the first place I'd like it is to be able to get an image of a control, but have the background be transparent using something like this:

 

wiebeCARYA_1-1741949642891.png

Combining this with the other tools would mean there's more flexibility in making image based controls.

It would be nice if there was some option to configure the separator behavior of combo boxes. Currently, entering a hyphen (-) as an item turns into a separator automatically, and there is no way to configure that. What I think would be best in terms of configuration options is a "Separator Value" property in the Edit Items tab of the Properties dialog. The hyphen could be the default value, and it could be changed to an alternate character or character sequence if the developer needs the hyphen to appear as just that for whatever reason. If the value of the property is empty, there are simply no separator lines created.

 

FireFistRedhawk_0-1779113435039.png

 

There is also a bug involving the hyphen as the separator value. When a combo box has the Allow Undefined Strings property unchecked and also has a separator as one of the items, a hyphen is still treated as a valid entry since it is technically one of the values present. This bug exists in the most up-to-date version of 2026 at time of writing, 26.1.2f2. I think the existence of this bug warrants taking a look at the separator behavior in general, but also possibly adding this idea as an enhancement to it.

Not too long ago i learned of the excellent Quickdrop command "Remove Unconnected" (ctrl+shift+r) on Build array and (un)bundle.

However it doesn't work with Index array and i wish it did. 🙂

That's all!

Yamaeda_0-1777370033284.png

Ctrl+space -> ctrl+shift+r ->

Yamaeda_1-1777370073167.png

 

Suggestion, it should work in this case also!

Yamaeda_2-1777370165875.png

 

Currently converting a string to an array loses the "Size To Text" property, this should be preserved to maintain the desired display after conversion

change to array size to text.png

Another modernization feature (not on this comprehensive list already...) that would be nice to see in XY graphs:
 
We currently have to select an interpolation method per plot. Instead I would like to be able to say that if the next sample is less than a given delta apart from the previous it should draw a diagonal between the points, but if the delta is larger (due to deadband filtering e.g.) it should draw the previous sample value as a flat line until the new sample...
 
This could be added as an option in the manual selection method that visually showed a mix and had a name like dynamic or conditional (none of the options currently have a descriptive name or tip strip by the way so that is an idea as well; with an enum input for the property...). If conditional was chosen it could pop up a dialog asking for a definition of the condition. Similarily this would have to be a new interpolation option and an input of a threshold or list of such to set up the conditions. Just having two methods with a threshold would normally suffice...
graph interpolation.png
 
Yes, we can off course achieve this today by doing the interpolation prior to feeding the data to the graph, but building this into the graph will simplify and seriously optimize the process.
 
 
 

drag.gif

Dragging block diagram objects across structure boundaries preserves wiring correctly when tunnels are involved, but it fails when shift registers are used. It should be feasible to adjust this.

When creating a Polymorphic VI, please let us add VIs more easily.

 

Intaris_2-1776154590598.png

 


Either allow multi-selection of VIs when choosing "Add" (Button in Red) or allow drag and drop of multiple VIs from a project or explorer (Blue area is a target for drag and drop).

 

While I'm at it, please allow selecting and editing the "Menu Name" and "Selector Name" in place. Having to go through a button press and a dialog for each and every VI is tedious.

1.png

 

 

 

 

 

 

 

 

 

 

 

 

2.png

 

Idea: The "Text Color" and "Background Color" fields of LVTextColorsTypeDef.ctl should be replaced with a Color Box

 

This suggestion is very similar to the following idea, which was kindly implemented in LabVIEW 2025 Q1: The "Color" field of LvFontTypeDef.ctl should be replaced with a Color Box

Occasionally, we want to defer panel updates and most often it is just the current front panel. Unfortunately, the defer property node absolutely requires a wired reference to the panel.

altenbach_2-1770235627004.png

 

 

 

In the past it always took me quite a while with many dead ends to get it right. For example, one might try to do the obvious and "right-click...link to..Panel", but that does not work! I challenge anyone to get that panel reference in under 60 seconds starting with a generic property node from the palette. Just try! (Hint. After selecting the right class (VI Server...VI...VI), the drop down lists it as "Front Panel" and not "Panel".)

 

The idea would be to allow defer nodes without a wired panel reference and they would just act on the current front panel and not break the VI.

 

Note that the panel reference defaults to the current VI and does not require a reference, so why can't the defer node do the same?

 

(Note that we also have this old idea, which would simplify things...)

 

Within the VISA Read and VISA Write nodes, you can currently choose the Synchronous I/O mode for each individual read or write operation by selecting either Asynchronous or Synchronous (see attached screenshot).

 

It would be helpful to allow this setting to be configured at the project level rather than requiring it to be set on every VISA Read and VISA Write node. While there are certainly edge cases where a project is best served with a mix of synchronous and asynchronous VISA operations, the vast majority of applications would best use one mode consistently throughout the project.

 

A related enhancement would be to allow the default value for this setting to be configured in the LabVIEW Options dialog, rather than always defaulting to Asynchronous.

 

Another possibility would be to change the default for new LabVIEW code to Synchronous. Although synchronous communication can be slightly slower in some situations, it is generally more reliable. Since LabVIEW is used primarily in test applications, reliability is likely more important than maximizing communication speed. 

Add a context menu option to open class private data directly from block diagram / panel.   Currently need to select "Show Class Library" then expand and open control from Project Explorer.   During initial development I'm needing to modify private data frequently and this is how I'd expect to do so based on Typedef behavior (right click - Open Typedef)

 

class private data.png

The Class Browser (Ctrl-Shift-B) is a little-known LabVIEW feature that makes it much easier to work with property-based class hierarchies in LabVIEW (VI Server, DAQmx, VISA, Sys Config, your own .lvclasses, etc.). The Class Browser search function is particularly helpful when you aren't exactly sure what property or method you need, or if it even exists. Unfortunately, the search results are often very difficult to navigate, as in this example:

Darren_0-1767913475591.png


I was looking for a property or method relating to locking controls on the front panel, so I searched for "lock". Over 1000 results were returned. But the results include a tremendous number of duplicates. If there is a property of a parent class (like the Is On Block Diagram? property of the Generic class in the screenshot above), then that property will be duplicated for all child classes of that parent class... in this case, there are hundreds of children of the Generic class! It took me a few minutes just to scroll through all these duplicate results to finally find what I was looking for (the "Lock Objects" method of the Pane class).

Idea: Only show the parent class property/method in the search results of the Class Browser window. Do not show child class entries for that same property/method.

In the example above, if duplicates had been removed, then my "lock" search would have returned 49 results, which is a much more reasonably sized list of results to dig through.

Current state:

 

Suppose you have some neat code that bundles/unbundles elements from either a typedef-ed cluster or a class. You even provided free space in case some names are changed in the future:

raphschru_17-1769453321291.png

 

But then, when you change an element's name to a longer one, this happens:

raphschru_18-1769453350666.png

 

Now, to have the same neat code as before, you have to surgically select, move and realign the Bundle/Unbundle nodes correctly:

raphschru_16-1769453276240.png

 

Since these nodes are resized in a centered manner, to keep neat code without the need to realign everything by hand, you must provide free space both on the left AND on the right.

 

Remark 1: The same issue can happen when you select another item with a different width in the Bundle/Unbundle node.

 

Remark 2: It seems all nodes of class "Named Bundler" and "Named Unbundler" are concerned. So that also includes the Waveform / Digital Waveform / Digital Data Bundlers/Unbundlers.

 

Proposed Idea:

 

When a Named Bundler or a Named Unbundler updates its own size (either because the typedef is changed or because the user selects another item), it resizes to the right instead of resizing from the center. So, if you want to provide space for further modifications, you only need to put space on the right (and not both on the left and the right). Also, I find that resizing to the right is quite consistent with the left alignment of the element names.

 

 

Regards,

Raphaël.

The default cursor color in the Fuse palette is yellow, which is nearly impossible to see:

 

cursorcolor.png

 

Since we can't set a default cursor color for a graph, and there are no events exposed that let us know when the user creates one, can we at least get the default color to be somewhat visible? Maybe dark gray?