DIAdem Idea Exchange

Community Browser
About DIAdem Idea Exchange

Do you have a feature idea for how to improve NI DIAdem? Submit and vote on ideas now!

  1. Browse by label or search in the DIAdem Idea Exchange to see if your idea has previously been submitted. If your idea exists sure to vote for the idea by giving it kudos to indicate your approval!
  2. If your idea has not been submitted click Post New Idea to submit a product idea. Be sure to submit a separate post for each idea. Note: the DIAdem Idea Exchange is not the appropriate forum to submit technical support questions.
  3. Watch as the community gives your idea kudos and adds their input.
  4. As NI R&D considers the idea, they will change the idea status.
  5. Give kudos to other ideas that you would like to see implemented!

The DIAdem R&D team is committed to reviewing every idea submitted via the DIAdem Idea Exchange. However, we cannot guarantee the implementation of any DIAdem Idea Exchange submission until further documented.

Top Kudoed Authors
User Kudos Count
Showing results for 
Search instead for 
Did you mean: 
Post an idea

Diadem currently has a copy function for curves within the user interface, as shown below: 





However, there is no copy function within the scripting api. This means to duplicate a curve programmatically multiple functions. one for each of the properties in the curve, need to be called as shown below: 


Dim oMyReportObj, oMyNew2DCurve,

Set oMyReportObj = Report.ActiveSheet.Objects.Item(1)

Set oMyNew2DCurve = oMyReportObj.Curves2D.Add(e2DShapeLine, oMyReportObj.Curves2D.Item(oMyReportObj.Curves2D.Count).Name &"_copy")
oMyNew2DCurve.Shape.XChannel.Reference = oMyReportObj.Curves2D.Item(oMyReportObj.Curves2D.Count-1).Shape.XChannel.Reference
oMyNew2DCurve.Shape.YChannel.Reference = oMyReportObj.Curves2D.Item(oMyReportObj.Curves2D.Count-1).Shape.YChannel.Reference
oMyNew2DCurve.Shape.Settings.Line.Width = eLineWidth0100



It would be far easier if there were a call to copy a curve directly: 


Dim oMyReportObj, oMyNew2DCurve,

Set oMyReportObj = Report.ActiveSheet.Objects.Item(1)

Set oMyNew2DCurve = oMyReportObj.Curves2D.Copy(1)




I've been spoiled by using other scripting environments lately, and thought I'd suggest a few features that I feel would make scripting in DIAdem a little more convenient:

  • Check for un-dimmed variables when Option Explicit is turned on
  • Check for unused dimmed variables (very helpful for cleanup)
  • Check for variables that are used, but never initialized to a value

I feel these would be really useful for identifying and fixing bugs (especially for inexperienced script writers) and cleaning up old scripts, while not requiring major changes to the interface (although they could get really annoying if implemented incorrectly, may be difficult to implement in the back end, and may even require manual compilation to detect?).




I have been doing some data analysis in DIAdem; I have been taking some statistics on some data - working out variance and standard deviation.  I asked NI Support team whether 'Population' or 'Sample' weighting is used, as it was not mentioned in the help file. I understand that by default Variance and Standard Deviation are calculated using the 'Sample' rather than 'Population' formula. My company uses Population to work out some of the key performance data of the products we make.  At the moment I don't see a way of selecting which formula to Descriptive statistics.PNGuse so a little drop down next to the checkboxes so I can pick the type would be great.  For now I'm going to have to develop some VBScript or start using excel to do my data analysis.  As a footnote to this idea - may I also illustrate that calculating standard deviation directly feeds into process capability (Cp and Cpk).  Sample weighting is a little less friendly than Population weighting, so unwitting process control engineers may be finding their processes a little more (I think!) capable than what they truly are.






The DIAdem prefix for hex data is $ and as I am aware you must use this.  Most programs use the prefix 0x.  There should be an option to chose one, the other or none.

It might require too much computation time but I was wondering if the DataFinder could calculate and store such characteristic values as channel min/max during it's index. I would find this really helpful.

If it is not practical to do on the fly, how about an extra option on the context menu in Navigator - in addition to 'Re-Index File' etc there would be 'Calculate Characteristic Values' which would then calculate and save the valeus back to the files for the file/folder/drive selected. 


Create a version of Diadem that has no user interface. This version would merely run scripts for use in delivered custom solutions.

In many cases a scatter plot is necessary to evaluate measured data. A direct option to select a scatter plot chart in the 2D-axes Dialogbox


would improve the usability of Diadem VIEW a lot.

Please include commands to handle INI Files (like CVI)


at the moment we have to handle and search for goups completle manual


it would be much more easier to get 1 command to geht the Value from "test"



test = 3


when i want to compare 2 Script Files i always have to use Notepad++


Please include this Funktion into the Script Editor

it is not possible to search the Diadem Help with




or    *Chn*

or    Fi*Dlg




you always have to know the right word you search.



the possibility to search with * makes it much more easier to findes command when you only have an idea how they could be named




I think DIADem would be a great solution if it came with a web-based client which would allow users to:


- Login remotely using a standard web-browser

- Allow users to access data from their web-browser without having to install any exectuables or active-x components

- Basically allows similar functionality of the VIEW tool, execpt make it web-based.


DIADem would be a great collaboration tool if it could be used without having to install a bunch of EXEs on every computer.  And going for a Citrix-style thin-client solution is just too costly.  Built-in web-based access would be awesome.

In DIAdem 2011 we now have the ability to conveniently Copy REPORT sheets and Append VIEW sheets, now it'd be great if we could Copy VIEW sheets (with script accessibility, of course).


I know this has been mentioned before, but doesn't have an "Idea Post" so thought I'd add it so it doesn't get lost.



A fairly common graph (for me anyway) is a Bar plot with positive vertical error bars drawn:

Bar Graph With Errors

In Diadem 2010 and previously, it was possible to create such a graph by creating a Line plot with error bars, and then converting to a Bar plot- a little dodgy, but it worked.  In Diadem 2011, this no longer works, and it is necessary to create two plots: one Bar plot and one blank Line plot with error bars.


My suggestion is that it would be much cleaner to allow the definition of error bars on a Bar plot directly - after all it is a single quantity.  In fact, almost all of the other plot types could also benefit from being able to add error bars directly.


This would also help in being able to create Box plots - a process that is currently less than straight-forward.

Allow the background color for the VIEW window to be changed. Ideally to black to match the default color on LabVIEW graphs and charts. Difficult to see the lighter colors (yellow, orange) on a white background.



In the Data Portal of DIAdem all default properties are ordered as they are specified in the documentation. But when adding new custom properties to the root or anywhere else, these properties are ordered alphabetical. It would be great if there would be a possibility to let the custom properties appear as they are added to the list.





It would be very useful to be able to copy data directly from a View 2D axis chart/graph to the clip board.

This action is similar to using the channel table to copy a selection of data and being able to past that data to the next empty column of the table or pasting it directly into the portal to create a new channel.


Currently I can zoom into a small region of the data in the View graph.  Based on the  position of X-cursor1 and X-cursor2 I can find the data in the table and copy it to the clip board.  Then create new channels by pasting into empty columns or pasting into the portal.

But this is very time consuming and cumbersome.  


Some time ago I created a script that would copy the data to new channels automatically, but if I can copy the data to the clip board I can paste it into other programs like, please forgive me, Excel for customers who don't have Diadem.


Excel does have the TDM importer add-on, but then it is really hard to search for data.




The default type for a 2D Axis view display is line, but for all our signals we need stair curve. So I have to manually go to display settings and set the type to stair curve for every channel. If there are many channels that is very tedious. It would be nice to have a global setting that can be set for all view displays.




I quite often use a 2nd y-axis in a 2D-diagram. In order to improve the visibility I like to use the same grid for the first and second axis but different scaling. The 2nd y-axis is set to automatic scaling because of changing data ranges. Unfortunately the scaling range used for the second y-axis is completely unpredictable. Therefore the scale is way to big and the setting has to be corrected manually. This is very annoying, because the automatic choice is often not very logical and this behavior is not documented at all.




When there are a number of entrees on the legend it would be nice to be able to put the entrees in columns.  Currently, I can only have one column of entrees.

I've noticed that the easiest way to relate a channel calculation back to the original channel is to append to the channel name:








Filtering for *engspeed, or *engspeed_rpm will return all of the above channels, but in my experience I rarely want to see all the additional channels...With enough channels, it can effectively obscure the channel you're looking for!


The simplest way I can think of to obscure these with the current functionality would be to have a stop character ("\"?) to prevent the filter from grabbing anything beyond that point:

*EngSpeed_rpm\ would return anything ending in *EngSpeed_rpm


Another way would be to get rid of the assumed * at the end of the filter, forcing people to put one on themselves when necessary (but that would be changing the current functionality and would likely confuse users at first):

*Engspeed_rpm would return anything ending in *EngSpeed_rpm

*EngSpeed_rpm* would return everything with EngSpeed_rpm inside it


This would also be nice for looking for channels that end in something, like anything ending in *nm\ rather than anything with nm in the name...