Utility Development Guidelines
Overview
This document describes style guidelines, testing procedures, functional best practices, distribution licensing compliance obligations, and installation directions to consider while developing your Add-on utility for National Instruments LabVIEW software. It also identifies requirements which must be met in order for your utility to be eligible for consideration for acceptance in the Compatible with LabVIEW Program and use of the “Compatible with LabVIEW” logo.*
New Compatibility Guidelines for Add-ons for LabVIEW
As the LabVIEW Tools Network continues to grow, it is more important to distinguish which of the more than 400 available Add-ons meets a level of compatibility that helps ensure developer success. This development guidelines document provides the Add-on developer guidance on how to prepare a product that is compatible with LabVIEW and identifies requirements which must be met in order for the Add-on to be eligible for the Compatible with LabVIEW program and use of the “Compatible with LabVIEW” logo.*When you follow these guidelines, developers using your "Compatible with LabVIEW" Add-on can be assured that the driver, VI library, or utility will meet the function, style, and documentation they expect from native Add-ons for LabVIEW. As a "Compatible with LabVIEW" Add-on, your product can get better visibility on the LabVIEW Tools Network and you can gain access to the "Compatible with LabVIEW" logo and special promotional material.*
The requirements within the Application for National Instruments Compatible with LabVIEW Program are derived from these guidelines. An add-on must meet all requirements to be eligible for consideration for the Compatible with LabVIEW Program and use of the “Compatible with LabVIEW” logo, and must continue to meet all of the requirements with respect to each new version of LabVIEW software released by National Instruments in order to remain in the Compatible with LabVIEW Program and continue to use the “Compatible with LabVIEW” logo. The program requirements are designated by this logo, text, and a summary of the requirements:
This guideline is a requirement for Compatible with LabVIEW Program products.
1. Developing the User Interface
A LabVIEW Add-on is any product that is installed into an existing National Instruments LabVIEW software installation that ehances the programming experience. These products include tools, modules, and toolkits. Additional tools and utilities add more functionality to the LabVIEW environment. By using LabVIEW as much as possible for utility development, you can decrease conflicts due to multiple languages and share more of the utility’s workings with developers.
1.1. Front Panel
Refer to the Front Panel section of the LabVIEW Style Guide (Chapter 6) for directions on making your user interface clear and easy to use. Your Add-on should look and feel like the other utilities that developers access from the menu. Use consistent font, colors, control style, and language in all front panels and maintain a strong similarity to the style of existing utilities.
This guideline is a requirement for Compatible with LabVIEW Program Add-ons.
- RU1: Utility front panel conforms with LabVIEW Style Guide.
This guideline is a requirement for Compatible with LabVIEW Program Add-ons.
- RU2: Utility uses consistent format.
1.2. Testing
The NI LabVIEW VI Analyzer Toolkit is an Add-on product for LabVIEW intended to help developers improve the overall quality and reliability of their LabVIEW code. Through an interactive wizard, you can configure more than 60 different tests that analyze VIs to identify performance, style, and maintenance issues. Using the LabVIEW VI Analyzer Toolkit, you can quickly find stylistic and functional problems within your code and consistently enforce recommended LabVIEW programming practices within teams of developers. Due to the utility of the VI Analyzer as a debugging tool, you may find that regular LabVIEW VI Analyzer Toolkit use improves all aspects of your LabVIEW applications.
This toolkit is included with the NI Developer Suite, or you can purchase it separately. Refer to the LabVIEW VI Analyzer Toolkit tutorial for more information about the LabVIEW VI Analyzer Toolkit.
Additionally, you must test your utility in every LabVIEW version that you cite as supported for your utility. That information should be included in the utility’s documentation.
This guideline is a requirement for Compatible with LabVIEW Program Add-ons.
- RU3: Utility functions in all operating systems and LabVIEW versions you cite as supported.
This guideline is a requirement for Compatible with LabVIEW Program Add-ons.
- RU4: Utility's documentation states supported LabVIEW versions and operating systems.
2. Packaging and VI Naming
2.1. Project Libraries (LabVIEW 8 and Higher)

Figure 1. NI LabVIEW Project Containing a Project Library
NI recommends using project libraries for VI libraries. By grouping your VIs within a project library as part of a LabVIEW Project, your VIs share a common namespace that helps avoid naming collisions in memory. For example, consider a large application that includes two different instrument drivers, InstrDriver1 and InstrDriver2, whose VIs are respectively organized in project libraries called InstrDriver1.lvlib and InstrDriver2.lvlib. Assume that each of the instrument drivers contains a unique VI called Initialize.vi.
The names that LabVIEW uses for these VIs would be InstrDriver1.lvlib:Initialize.vi and InstrDriver2.lvlib:Initialize.vi.
You can then call both of these VIs as subVIs from the same top-level VI without any problems. Note that in previous versions of LabVIEW this was not possible because LabVIEW identifies VIs by their filenames and both VIs are named Initialize.vi.
Use caution in how you name VIs outside of project libraries. For example, if you used names such as “Parser.vi,” “Analyze Waveform.vi,” “Handle Errors.vi,” or “Get Data.vi,” it is almost certain this name is the same as another VI that is shipped with LabVIEW or another add-on. Use VI names that are descriptive and unique, even adding a prefix to the beginning of each VI within your driver or VI library. For example:
- top-level VIs (appearing in the palette and documented): two or three letters, all capitalized, plus space, then name of the VI (for example, “SML ,” “SVT ,” “OAT ”)
- subVIs (not intended to be used by customers): two or three letters, all lower case, plus underscore, then name of the subVI (for example, “sml_,” “sv_,” “svs_”)
- Incorporating into LabVIEW menus/toolbars
As you import your utility into the LabVIEW menu structure, make sure that the terms and phrases you use fit the naming conventions used in the menus.
3. Documentation
You must create user documentation that explains how developers use your product. Effective documentation greatly increases user satisfaction and decreases the amount of time you spend supporting your code. Documentation must be reviewed for accuracy each time you update or otherwise revise your utility.
The developer should have ample help tools while using your utility. That includes tip strips that appear when developers hover over a control or indicator within the utility and pop-up windows to explain user error. Additionally, include adequate reference help files that a developer can access from outside the utility.
Your utility should include help files with possible use cases, screenshots of correct use, and troubleshooting tips. Rigorous testing of your utility best prepares you for writing these help files and documenting possible areas of confusion for developers. Documentation should also clearly denote the utility’s supported operating systems and LabVIEW versions
This guideline is a requirement for Compatible with LabVIEW Program Add-ons.
- RU5: Utility includes help documentation and images that describe correct usage.
This guideline is a requirement for Compatible with LabVIEW Program Add-ons.
- RU6: Utility includes clear installation instructions.
4. Distribution
4.1. Licensing
Refer to the Distribution Requirements section of the applicable National Instruments Software License Agreement for information on complying with licensing obligations with respect to distributed copies of your Add-on and activation of accompanying LabVIEW software.
This guideline is a requirement for Compatible with LabVIEW Program Add-ons.
- RU7: Utility complies with licensing and activation obligations.
4.2. Installation
Save any VIs that are part of your utility in the earliest version of LabVIEW supported by your add-on to test backward compatibility across the range of LabVIEW versions your add-on supports. Include a build for every LabVIEW run-time engine you cite as supported if your utility is an executable (.exe).
This guideline is a requirement for Compatible with LabVIEW Program Add-ons.
- RU8: Utility includes builds for all versions and LabVIEW run-time engines you cite as supported (if utility is an EXE).
Install all files for your utility in an organized hierarchy. Use user.lib if you save your utility, or any associated VIs, within the LabVIEW directory. User.lib exists to house user-created VIs and LLBs and is not affected by any patch or upgrades.
This guideline is a requirement for Compatible with LabVIEW Program Add-ons.
- RU9: Utility installs to a clear file hierarchy, and any VIs are saved in user.lib directory.
4.2.1. Adding a Utility as a Palette Item
The best method for packaging your add-on for distribution is to create a source distribution from within a LabVIEW Project.

Figure 2. Create a source distribution to package your add-on for distribution.
Within the “Distribution Settings” tab, select “custom” under Packaging Options and check the “Destination is LLB” box. The LLB you create includes all VIs in the LabVIEW Project.
Figure 3. The LLB you create includes all VIs in the LabVIEW Project.
Developers then are able to install the LLB to the user.lib directory, and the driver or VI library appears in the User Libraries Palette on the Functions Palette in LabVIEW. Marking VIs as Top-Level VIs in an LLB provides instructions on how to organize your LLB so that the right VIs appear correctly in the new palette.
4.2.2. Adding a Utility as an Item in the Tools Menu
It is also possible to add your utility to the Tools Menu within LabVIEW. Create an LLB (described in previous section) and place that LLB in \Program Files\National Instruments\LabVIEW #.#\project ('#.#' should be replaced with the correct version number). Add folders to create a submenu item and VIs or LLBs to create regular menu items. Additions/deletions to the folder are reflected the next time you start LabVIEW.
4.3. Mass Compiling
If your utility includes adding VIs, your installation instructions should recommend that the developer mass compile the driver or VI library after installing it in the Functions Palette. This ensures that the new VIs link appropriately to necessary subVIs. You must test to be sure that your add-on compiles in the most recent version of LabVIEW.
Important Note
* Allowance of participation in the Compatible with LabVIEW program, granting permission to use the “Compatible with LabVIEW” logo, and listing an Add-on on the LabVIEW Tools Network, are each at National Instruments Corporation’s sole discretion. National Instruments Corporation reserves the right to refuse to permit an applicant to participate in the program and/or use the logo, and to terminate such participation and use, even if the submitted Add-on meets all of the requirements for the program. National Instruments Corporation also reserves the right to refuse to list any Add-on on the LabVIEW Tools Network, to refuse to mark any Add-on as “Compatible with LabVIEW”, and to remove such listing and marking, even if the Add-on meets all of the requirements for such listing and marking. Use of the “Compatible with LabVIEW” logo and participation in the Compatible with LabVIEW Program are in any event subject to and conditioned upon the applicant and National Instruments Corporation entering into a “Compatible with LabVIEW” Logo License and Program Participation Agreement acceptable to National Instruments Corporation. Neither this document, nor provision of a copy, form, draft or sample of such an agreement, is an agreement or offer by National Instruments Corporation or otherwise binding on National Instruments Corporation.
