Table of Contents

Table of Contents

Tree Organization

Tree Organization

This page shows the locations of some key features in the tree. These locations are ideal for module nodes.

LocationDescription
VIEW:/modulesThis is where you can put your module's GUIs. Typically you would add a subnode here with your module's name, add it as an addition to your module, and then put you GUIs as sub-nodes of that added not.
MAIN:/project/eventsThis is a location where several sets of scripts reside. These scripts are executed at various times in FlexSim, such as when you create a new model or open a model. They are set up so that you can just add a new script into one of these sets so that your module's script will be run at that time.
MAIN:/project/exec/commandlistHere is where you can add your own commands to the command list as part of your module.
MAIN:/project/exec/globals/acceleratorsHere you can add custom keyboard accelerators.
MAIN:/project/exec/globals/customtasksThis location is for displaying the names of custom task types. So in some cases module developers have implemented their own task types and then overridden the TaskExecuter's beginTask() method to implement that task type. Here you can put sub-nodes with the name of the task type and the value that represents that task type. Then when the task is displayed in the tree, the given task type name will be shown.
MAIN:/project/exec/globals/FlowItemBinHere you can add your own module's flowitems to the flowitem bin that is used whenever a new model is created.
MAIN:/project/exec/globals/fsmacrosYou can add subnodes to this node and those subnodes' data will be read in generating FlexSim's list of FlexScript-visible macros
MAIN:/project/exec/globals/nodefunctions; VIEW:/nodefunctionsYou can add application commands to either of these two locations. When applicationcommand() is called, it will search these two locations for a node matching the name of the application command, and if it finds that name, then it will execute that script/nodefunction. Usually scripts associated with UI would be put in VIEW:/nodefunctions, whereas scripts associated with execution/model data, etc. would be put in MAIN:/project/exec/globals/nodefunctions.
MAIN:/project/exec/globals/registeredstatisticsThis node holds all of the various options available for users who want to add statistics to the dashboard. Each subnode holds data regarding what the option refers to, which menu it should be placed in etc. So if you want to add your own custom dashboard statistics, you would add subnodes here to have those statistics be available to the dashboard UI.
MAIN:/project/exec/globals/serverinterface/queryhandlersIf you want to use your module to create a custom web interface, then you can add nodes here that will handle various queries to the web server.
VIEW:/guiclassesHere is where we typically store guis that are shared among many different windows, such as the pick list UIs, etc. You can use the guifocusclass attribute in a gui to define a common reference to a gui that will be pulled in to your gui at the time the gui is opened. Typically when we do this we put those references widgets in VIEW:/guiclasses. You can add your own here, or put your gui classes somewhere inside your modules VIEW:/modules node, at your discretion.
VIEW:/popupsThis is where we typically store some of the popup windows used in FlexSim.
VIEW:/picklistsThis is where we typically store pick lists.
VIEW:/standardviews/modelingutilities/LibraryIconGrid/GroupIconGrid >variables/visibilityLists/base/listYou would add nodes to this location if you want to add your own list to the set of lists shown in the library icon grid.
VIEW:/rootmenu/replaceThis is where FlexSim's main menu resides, so if you want to customize or add your own options to the main menu, here's where you'd do it.