Data Object Slot Groups for RiverWare 6.8 -- Analysis (Revised Design)
Phil Weinstein, CADSWES -- Edit: 8-21-2015 (a)
Initial writing not complete. This design is being put aside.
This document provides an analysis and design for new RiverWare capability based on this feature request from TVA:
Create Slot Groups on Data Objects: Allow arbitrary sets of slots to be grouped together (such as SEPA data, Policy Data, etc). Allow the group and slots to be copied/pasted.
Note: This discussion refers to a reference model -- a snapshot of a model currently under development by TVA. This model has been put aside here: |
Complex RiverWare models are being built which make use of many dozens of slots on data objects associated with each major simulation object (typically Reservoirs). The set of slots on each of these reservior-associated data objects is typically "uniform" throughout the model. In the reference example, there are two relatively uniform data objects associated with each reservoir. The "Special Ops" (blue) data objects have 67 slots. The "Con" (yellow) data objects have about 50 slots (with some variation).
The following illustrates how a slot naming convention has been used to group the 67 slots on the "Special Ops" data objects into logical groups of related slots. Related slots' names start with the same prefix text.
![]() |
As primarily a new display provision of the Open Object Dialog for Data Objects, we will support grouping slots together in a slot treeview, based on the sort of slot naming convention illustrated above.
This is somewhat analogous to the slot treeview displayed in Open Object Dialog for Aggregate Objects. See image to the right. However, slots not in a slot group would be displayed as top-level tree items.
The Slot Groups within a Data Object are explicitly enumerated (defined) by the user with just a Slot Group Name. The ordered list of Slot Groups (Names) on a Data Object is defined using a seperate popup dialog.
A Data Object slot is implicitly a member of one of that Data Object's Slot Groups if the slot's name starts with a defined Slot Group Name. However, a slot can belong to only one Slot Group; slots are matched up to Slot Groups by effectively considering the longest Slot Group Names first. (This resolves any ambiguities resulting from Slot Group Names starting with the same character sequences).
Slot Groups can be copied from one Data Object to multiple other Data Objects in a single operation. It will be possible to do this both with, and without copying the source Slot Group's contained slots.
Removing a Slot Group (Name) from within the popup dialog used to define a Data Objects list of Slot Groups will cause that group's slots to revert to top-level tree items in the Open Object Dialog's slot list. However, a Delete context menu operation on Slot Group Tree Items (in the slot list) shows a confirmation dialog which allows the user to choose to have the group's slots deleted, or not (and remain on the Data Object).
As time permits, or possibly as a future enhancement, RPL Predefined Functions will be devised and implemented to support slot list enumerations based on Slot Group Names.
![]() |
A recently developed enhancement for RiverWare 6.8 (future release) supports the copying of a set of slots from any simulation object (including from a Data Object) to multiple other Data Objects. This makes use of the dialog shown to the right. This dialog is shown after selecting the slots to be copied from an Open Object Dialog and selecting the "Copy Slots to Data Objects" operation (see below).
This capability will be extended to support the copying of Slot Groups and their slots to multiple other Data Objects. The related operation of replicating Slot Groups (Names) from one Data Object to multiple other Data Objects will also be supported in some way, possibly also with an enhancement to this "Copy Slots to Data Objects" tool.
The newly developed functionality is described in this internal feature document:
Open Object Dialog, Slot Copy/Paste Enhancements for RiverWare 6.8
R:\doc\openObject\CopySlots\OpenObjCopyPasteEnh-Aug2015.docx
Mockup of a Data Object's Slot Group editor dialog:
... Initial writing not complete. This design is being put aside.
---