GraphWorX64 V10.96 Improvements

Additional Enhancements

Description

The "Update Shared" feature now optionally preserves the size, orientation, and smart property values of objects inside of a symbol. Previously "Update Shared" could only update preserve these values for the symbol itself, and any objects inside the symbol would be changed to match the selected symbol.

 

To preserve these values, check one or both "Recursive" boxes under "Size and Orientation" and "Smart Property Values" on the Update Shared Objects dialog.

The Smart Property Editor's property grid now provides a context menu that includes options such as cut, copy, paste, and undo.

The tab order for the onscreen keyboard has been changed. The tab key now moves the selection to these controls in this order: text field > Enter > Cancel > Back > Clear > New Line (for alpha keyboard) > other number or letter buttons > text field.

Added a new option under View > Grid called "Align Grid to Current Parent". This option will automatically offset the current grid to match its parent. It affects panels (such as grid panels) and the pivot control.

There are new non-scripting ways to get the context of an embedded GraphWorX64 Viewer. Users can access "localsim" variables to get the source display name and current global aliases. For example, if we assume the GraphWorX64 Viewer is named "gwx1", these variables can be accessed to get the source and global aliases, respectively:

 

localsim:property:gwx1.Source

localsim:property:gwx1.CurrentGlobalAliases

Added a new "Save Password" feature. If specified, the Save Password must be provided by the user in order to save the display file.

 

If a display file has a Save Password, the user will still be able to open the display in configuration mode and make edits but will not be able to save the edits without the password.  A "warning banner" in the application (similar to Microsoft Office) will make it obvious to the user that saving is currently locked (so the user will know in advance that they would not be allowed to save their changes).

 

The Save Password feature is in addition to the preexisting Load Password feature and does not replace it. Users who wish to protect their intellectual property should use the preexisting Load Password, and the new Save Password is designed to protect the display from unauthorized changes. (Note, however, that to fully protect the file from modification, the Windows file system should be used to lock down access to the file.)

 

To configure a Save Password, make sure you are in Advanced mode (View menu > Application Mode > Advanced), select the canvas (i.e. deselect all objects), go to the Property panel, enter a password into the SavePassword property, then save the display.

In the past, choosing "Hide Faceplate" would simply hide the faceplate image, but features related to the faceplate (such as zooming and scaling to fit the faceplate) would still function. Now, choosing "Hide Faceplate" truly removes the faceplate and related functionality entirely until it is re-enabled.

Added touch events to the scripting, such as TouchDown, TouchUp, TouchMove, etc. (See the GENESIS64 API Reference Help for more details on these events.)

The "Combine Objects" functionality, which can combine multiple shapes into a single path element, can now be more effectively used in grid displays or grid panels.

 

Previously, objects could only be combined if they were in position (0,0) of a grid. Now, they can be combined from any cell. (The final object will use the grid properties of the original head object.)

The "Styles and Colors" section on the "Home" menu now includes a "transparent" color.

Added a new option for the StartLocation window property: "Center Embedded Viewer". This can be used to launch popup windows relative to the launching embedded viewer.

Added two new display-level properties:

 

* UsePointFailColorsForUncertainQuality

* UsePointFailTextForUncertainQuality

 

These properties default to false for compatibility with previous versions. When true, uncertain quality values use the point fail colors or text, respectively. When false, only bad quality values use the point fail colors or text.

Commanding-related runtime window properties, such as CommandingName, CommandingDisplayName, and MaxCommandsScope are now available on GDFXP displays.

The username dropdown in the login dialog of the desktop version of GraphWorX64 has been resized on systems with touchscreen devices to make touch interactions easier.

The tab order for the security login control has been changed. The tab key now moves the selection to these fields and buttons in this order: username > password > Login button > Logout button.

The Print() scripting method has been enhanced to include more parameters including showDialog, printerName, printArea, and printWithWhiteBackground. (Please refer to the GENESIS64 API Reference Help for full documentation on this method.)

The date picker is now available for process points that have a null value.

Previously, the line width of shapes would zoom with the shape. A line that appeared to be one pixel wide at 100% zoom would appear 2 pixels wide at 200% zoom.

 

Added a new property for shape objects named LineNoZoom. The default value is false, which results in the same line width behavior as described above. When set to true, the line width no longer scales with the zoom. Line width will remain fixed regardless of the GraphWorX64 zoom level.

Updated various icons and nomenclature for a more consistent look-and-feel.

On the Challenge Password dialog, the cursor used to be placed wherever the user clicked or tapped in the Challenge Answer field. Users not paying attention could start to type the answer in the middle of the field and not have enough room to type or paste the entire answer. The cursor is now automatically placed at the front of the field.

When entering a challenge password, the enter key can now be used to submit the form.

The clone dynamic has been added to the quick access toolbar of the Dynamics panel.

Because the technology has been obsoleted by Microsoft, Silverlight support has been removed from GraphWorX64. Users are encouraged to use HTML5 displays for cross-browser support.

 

Users can no longer create or update Silverlight displays (GDFXS file types) or publish displays to Silverlight format. These files can still be opened using the "All Files" file type, but users will not be able to save changes without choosing "Save as" and choosing a new file type such as GDFX.

 

Users who have many GDFXS displays to convert may want to use the Web Publisher to bulk convert them to GDFX. The Web Publisher can still take GDFXS files as inputs and will automatically convert them to GDFX format when publishing.

In configure mode, the F2 key will now execute the default "edit" action for the selected object (similar to double-clicking).

The border of process points now obey the DisabledLineFillColor and PointFailLineFillColor.

Added four new GenEvent messages relating to saving or publishing displays:

* Display File Save Success (Severity=600 (OperatorChange))

* Display File Save Failure (Severity=750 (Error))

* File Web Publish Success (Severity=600 (OperatorChange))

* File Web Publish Failure (Severity=750 (Error))

When importing AutoCAD files, imported labels' name are now equal to the original attribute names.

When importing from AutoCAD DWG files, polygons, polylines, and paths will no longer be exploded.  They will remain as those shapes instead of being broken into individual lines or arcs.

The "Find what" dropdown in the "Find" or "Replace” dialog will now only show data from the selected objects. If no object is selected, it will show all data sources from the whole display. (This is consistent with how GraphWorX32 functions.)

Added a ReleaseDataWhenHidden property for all of the primary panel types, such as grid, stack panel, and wrap panel. This property behaves the same as the ReleaseDataWhenHidden property on layers, except ReleaseDataWhenHidden defaults to true for layers and false for panels (to ensure compatibility with previous versions).

When adding one single object to a ViewBox, a group is no longer created. The ViewBox now only creates groups if more than one object is selected.

The Ctrl-C, Ctrl-X, and Ctrl-V keyboard shortcuts for copy, cut, and paste now work for dynamics on the dynamics tab. Previously it was possible to copy, cut, and paste dynamics, but only through the right-click context menu.

A display's custom scrollbar colors will now automatically propagate to its scroll viewers.

Added a new display-level property called ToolTipDuration that controls how long tooltips are displayed in milliseconds.

 

Note that this property currently only affects desktop (WPF) displays, not HTML5 displays.

When running desktop GraphWorX64 (WPF) in Internet Explorer, the Internet Explorer tab name now gets its name from the Text property under of the window properties.

"Edit View" and "Add Current View" have been moved to the top of the Custom Views menu so users with many views do not have to scroll all the way to the bottom to manage them.

In order to prevent situations where unauthorized users (usually web users) access a GraphWorX64 page and use up license seats, GraphWorX64 no longer consumes a license when launched in runtime mode, when no user is logged in, and when no display is loaded (other than the "File Access Denied" display). As soon as a user logs in, GraphWorX64 enters configure mode, or a FrameWorX data point is requested a license will be consumed.

Previously, if a file became denied while a user was editing it (such as if they were logged out, or FrameWorX Server went offline), the display would be unloaded and any unsaved changed would be lost.

 

To prevent the loss of work, GraphWorX64 now obscures the display instead of unloading it. This gives the user an opportunity to resolve the permissions issue (by logging back in or getting FrameWorX back online) and then save their work. Note that if GraphWorX64 is closed before the permissions issue is resolved then the work will still be lost - this is necessary to ensure that users who have had their save permission legitimately revoked cannot bypass security and save.

Displays could briefly appear to an unauthorized user before the "access denied" page was shown. This has been resolved.

When a single object is selected, users can now right-click on most properties in the Properties panel and see a “Copy Property Reference” option.  This will copy the localsim::property tag for that property to the Windows clipboard. 

 

This tag can be pasted into another bind-enabled property (with a “tag” icon next to it. i.e., the DataSource property of a process point) to reference it.  Right-clicking to paste the localsim::property tag will give you the option to paste an absolute path or a relative path.  Relative paths can be encapsulated in a symbol so that the symbol can be reused without having to change the object names in the localsim::property tags. 

 

The tag can also be pasted directly onto the GraphWorX64 main view area, which will result in a process point with the DataSource set to the localsim::property tag.

Added a new "Auto-Start Runtime" option when publishing displays for Internet Explorer (WPF) with a Control Type of Configuration. This option will start the display in runtime mode when it is loaded but allow the user to exit runtime and go into configure mode. (Choosing "Runtime Only" as the Control Type will also start the display in runtime mode but will not allow the user to exit runtime.)

The object explorer now remembers the object that was selected when entering runtime and returning to configuration mode.

 

Back to Top

Additional Enhancements to 3D Viewport

Description

On the Materials menu, the X, Y, and Z buttons will now take effect as soon as they are pressed. Previously, if you wanted to change the material mapping direction you had to pick one of the X, Y, or Z buttons, then press one of the mapping methods (Planar, Cylindrical, etc.).

Added two new options to the context menu of an object in the 3D Viewer: "Duplicate Selected Faces" and "Split from Parent Geometry". To use either option, set the Selection Mode to "Only faces can be selected", select one or more faces, then right-click on the faces and select the appropriate option. The faces with either be duplicated into a new object or split into a new object.

When multiple items are selected, the head object is highlighted in a different color. This color can be configured in the options (activate the 3D viewport, go to File > Options). The head object is usually the last one selected and is used for aligning and similar options.

 

Back to Top

Fixes

Description

If a display is loaded and new global aliases are set as part of the load action, performing a "display back" action should both load the prior display and reset the aliases to their prior values. In some cases, the aliases were not being properly restored. This could occur when there was a combination of displays in the history that were loaded both with and without initial aliases. This has been resolved.

Local aliases were not working consistently inside of smart tiles. This has been resolved.

Resolved an uncommon issue with scaling text box objects. When this issue occurred, resizing a symbol would not correctly resize any text boxes inside that symbol.

If an adjustable faceplate is used in conjunction with a grid display with no fixed size, the faceplate sometimes collapses to nothing on load of a display, causing GraphWorX64 to show a blank white screen instead of the display. This has been resolved.

Resolved an issue with pasting dynamics for a color dynamic between different object types, such as a rectangle and a pipe. Previously, not all settings would be applied correctly in the pasted dynamic.

Global alias themes were not being properly set if a display was loaded that contained dynamic content (such as an expression) in its GlobalAliases property, and the load display command also specified global alias themes to set. This has been resolved.

The Data Explorer control now obeys the IsTabStop property.

The Security Login control now obeys the IsTabStop property.

If a display contained a polyline, polygon, or pipe that contained sequential identical vertices, this error would be displayed: "'NaN' is not a valid value for property 'X2'." When the error was dismissed, the display would be unloaded. This has been resolved - displays with this unusual configuration will now open without issues.

When saving a .gdfx screen as .gdfxp, elements in stack panels may change their location. This has been resolved.

Importing certain BIM files would throw a "Database in use" error. This has been resolved.

Resolved an issue causing new display creation to ignore the "Faceplate Visible" option that is configured in the "New Settings" dialog.

The time picker now respects Windows localization settings for the time format. Previously it only supported 12-hour format.

Resolved a System.InvalidOperationException error that could occur when importing a DAE file containing certain image-filtering COLLADA assets into a 3D Viewer.

When in list view mode, the AlarmWorX64 Viewer would crash when the user attempted to acknowledge an alarm. This has been resolved.

When adding a layer to a viewbox, the objects under the layer will no longer be visible. This has been resolved.

On touchscreen devices, popup menus were not working when being activated on an "on down" event. They would be dismissed before the user could choose an option. This has been resolved by internally switching the behavior to an "on up" event when used on a touch device. The configuration will remain as "on down", and systems that only use a mouse will still behave as "on down".

Resolved an issue where smart properties that resolve to tag names weren't always requested for cloned smart symbols. This could result in properties that only resolved to values on the original symbol, not the clones.

Resolved a rare issue with requesting data for objects in layers that could cause data to fail to load.

Resolved an issue that could cause the parent GraphWorX64 window to lose focus when a popup window was closed.  This only occurred when running a WPF display in Internet Explorer. HTML5 displays were not affected.

Resolved an issue that could cause certain AutoCAD drawings to get this error message on import: "Specified cast is not valid." This issue only occurred with 10.95 Update 4, not 10.95 Update 3 or earlier.

Duplicating or copying a smart symbol that used global colors for default values would cause the duplicate to lose its link to the color after the GraphWorX64 display was closed and reopened. This has been resolved.

When an object with a shared keyword is within a viewbox, updating the shared keyword will throw this error when trying to update said item: "This object can only contain one child. Consider grouping multiple objects first and then inserting the single group into this object." This has been resolved.

Resolved a rare crash in Statefield dynamic that could occur when loading a display.

If an embedded window loaded a new display that had RuntimeWindowProperties > OverridePreviousDisplay set to true and local or global aliases in RuntimeWindowProperties > Text, the aliases would not be properly resolved. This has been fixed.

Hidden group containing paths or polygons could not be successfully copied from one display to another. Point coordinates for the polygons or paths would be lost, causing the group to not display, even when set to be visible. Opening the display in HTML5 would result in a "Display parsing error." This has been resolved. Copying new hidden groups will not cause new issues, however any groups that were already copied before this fix will remain broken. Please delete and re-copy or recreate these groups.

A referenced image with no source that has been rotated may have had problems with its positioning. This could result in the object not being drawn exactly where desired, especially when duplicating the object or using the "update shared" feature. This issue has been solved.

The ZoomToObject option of the Set View pick action would not zoom to the configured object under certain conditions. This has been resolved.

An issue occurred when display caching was enabled and the user reloaded the same display that was already loaded (such as when loading the same display with different aliases). The display would be reloaded from disk, rather than reusing the cached copy of the display (which resulted in noticeably slower loading). This issue also produced a memory leak. These issues have been resolved.

GraphWorX64 window sizes now respect the scaling factor of set in the operating system. (Example: Opening a popup with the width set to 600 pixels while the scaling factor is set to 200% will actually create a popup that is 1200 pixels wide.)

Added support for color in labels imported from DWG files.

A change in .NET Framework 4.7.1/4.7.2 caused the touch controls to stop working.  This has been resolved - touch should now work both in the old and new .NET Framework versions.

In previous versions, GraphWorX64 could crash when importing .dwg files containing references to external resources. This issue has been resolved.

Resolved a rare issue that could cause certain third-party controls to disappear when going into runtime.

When importing AutoCAD files with Attribute Text, the attribute names were imported instead of the attribute values.  This has been resolved.

Made improvements to the AutoCAD import that allowed HTML5 displays to better parse transforms.  This should not have any effect on the desktop (WPF) handling of AutoCAD files, but helped avoid issues in HTML5 displays.  (See item 63239.)

Added handling for an eNotImplementedYet exception that could be thrown when importing DWG files.

If a client trying to load the WPF WebHMI pages for the first time clicks the "Skip" link on the GraphWorX64 splash screen, they will get an "Exception has been thrown by the target of an invocation" error. This has been resolved.

When GraphWorX64 was running in a runtime-only client (including WPF WebHMI by default), the document level of global aliases would not initialize properly inside embedded displays.  This issue has been resolved.

Resolved XAML parsing errors that could occur when importing SVG files that included "textured fills" (a fill that was an image, rather than a color or gradient).

Resolved an issue with scaling the on-screen keyboard for lower resolutions, like 1024 x 768.

Quick access toolbar is no longer allowed to be moved below the ribbon.  This was done to avoid a problem with the ribbon component that could cause the quick access toolbar to become hidden when it was moved below the ribbon.

Resolved an issue that would cause clones to constantly regenerate at every update rate (causing a visual "flicker") when using a "valueof:" tag in the NumberOfInstances property of a clone dynamic.

Improved the display load times when loading desktop GraphWorX64 (WPF) in Internet Explorer. Previously, when not using "localhost" as the server name, these displays would load extremely slowly. Now their loading time should be more compatible to regular desktop GraphWorX64.

Refreshing Internet Explorer with a desktop (WPF) GraphWorX64 display loaded could cause Internet Explorer to freeze or crash with a System.NullReferenceException. This was most often caused by displays with smart-bound ImageSource properties. This has been resolved.

The green loading bar sometimes stopped appearing for desktop GraphWorX64 (WPF) pages in Internet Explorer. This has been resolved.

When using templates that have tabs on them, the tabs were duplicated on the screens that used the template. If someone had a large number of tabs or screens, they would have had to remove the duplicated tabs from each screen. This has been resolved. Reapplying a template across displays no longer copies in an extra tab.

Fixed a rare crash in GraphWorX64 that could occur when trying to edit the properties of certain shapes.

Resolved an issue with box zoom that would cause it to zoom into a random location.

Resolved an issue that would cause a BIM import to hang and never complete on systems with non-English regional settings.

Fixed an error in GraphWorX64 where the Global Color Palette could not switch themes and would only show the default theme.

Previous to version 10.95, an "IF THEN" expression with no "ELSE" would not write any value if the "IF" statement was false. In version 10.95, the expression would return "NULL". The behavior has been returned to pre-10.95 functionality – no value is written if the "IF" statement is false and there is no "ELSE".

Load Display pick actions configured as popups with a StartLocation property did not start in the correct location when StartLocation was bound as a smart property.  This has been resolved.

Resolved an issue that would cause displays with “Start Maximized” enabled to always open on the primary monitor even if the X/Y position of the display was for a different monitor.

Resolved an issue where the ValueOne or ValueTwo properties of Toggle Value pick actions could lose their smart binding in smart symbols.

Improved “gray out” behavior for disabled buttons with pick dynamics.  Button content, such as text, will now “gray out” as well instead of remaining black.

The name of the logged-in user is now included in the ActorID column of the "Operation Denied" GenEvent message that results when that user attempts to load a display without proper security access.

Symbols that consisted of a single path object were not positioned properly when putting them into a grid layout. This has been resolved.

Resolved an issue that would cause popups to appear blank when display caching is enabled. The popup would appear correctly the first time - this issue would only appear subsequent times the display was loaded.

Changes to global aliases could result in a blank value instead of the chosen value. Toggling out of and back into runtime would display the correct alias value.

 

Back to Top

Fixes to 3D Viewport

Description

Resolved a crash when attempting to render a wireframe selection mesh for a very large 3D selection. GraphWorX64 no longer crashes but rendering a selection mesh for such large objects can still be very intensive, so it is recommended for large objects to make sure the 3D viewer is focused, go to File > Options and select Bounding Box Wireframe.

Changing the order of views in a camera patrol could alter the saved position of the views. This has been resolved.

When the ReleaseOutOfViewData property is set on the Canvas object, if the user zoomed into an object in a 3D Viewer far enough that the object fell out of view, their data source would be released correctly, but would not be re-subscribed when the view zoomed out again to bring the object back into view. This has been resolved.

Added the ability to change the FollowedObject and LookAtObject properties of a 3D viewer in runtime. To change these properties, write to these tags (change "View1" with the name of your 3D viewer object): localsim:property:view1.LookAtObject or localsim:property:view1.FollowedObject.

When an object in the 3D space has a dynamic, the dynamic did not resolve in runtime if there was a layer on the display that had Visible set to false. The 3D viewer did not have to be on this layer for the issue to occur. This has been fixed.

Fixed an issue within GraphWorX64 3D displays where camera views could snap to the incorrect position.

Dynamics on objects inside of 3D Viewports could stop working properly when a layer existed on the display that had visible set to False or was hidden via security.  (The layer did not have to contain the 3D Viewport to trigger this issue.)  This has been resolved.

If two objects are in the collision state when going into runtime, the event that the collision started wasn't generated. The two objects would have to go first out of the collision state and then back into it to trigger a new event.  This has been resolved.

Annotations could prevent pick actions from being executed on 3D objects, even when the annotations were hidden.  This has been resolved.

The "On collision end" settings were not being saved when you changed the collision detection settings on a screen. The changes would only take effect until the display was closed.  The next time it was opened, the change would be undone. This has been resolved.

When editing 2D materials for a 3D object, the objects involved in the material would not appear in the Explorer unless the user took some action to cause the Explorer to be redrawn (such as switching to the Symbols panel and back). This has been resolved.

If the Viewport height or width was set to automatic, the "center view on selection" button may not function properly. Instead of zooming to the object, everything could disappear. In some instances, GraphWorX64 also crashed. This has been resolved.

In certain cases, the "Make Reducible" option in the 3D viewport would actually increase the number of polygons. This has been resolved.

Changing the view mode of a 3D viewport then going into runtime and back into configure mode would cause GraphWorX64 to crash. This has been resolved.

Resolved an issue that would sometimes prevent the execution of pick actions inside of 3D groups.

The scale operation now correctly respects the configured center point when it has been moved from the default.

In the 3D viewport, the three "stack" functions now correctly align the objects with the head object (the last one selected). Previously they were aligning with a random selected object.

 

Back to Top

 

See Also:

GraphWorX64 Overview