Exporting the External Element Interface
In some cases, it may be of value to export the interface definition to a human readable file (e.g., for QA purposes or to facilitate integration into a custom solution). GoldSim supports this by creating an XML file. You can do so by pressing Ctrl-E when in the Interface tab. When you do so, GoldSim will display a standard “Save As” dialog for saving the file.
The general structure of the file looks like this:
<ExternalElement>, <ExternalInput> and <ExternalOutput> have the following attributes:
- id: The name of a GoldSim element, input or output.
- desc: The description of a GoldSim element, interface input or interface output.
- type: For the <ExternalElement> this is either "External" or"External Pathway A transport pathway element that provides a mechanism by which external program modules for contaminant transport (e.g., analytical, finite elelement, or finite difference models) can be directly integrated into GoldSim.". For an <ExternalInput> this is either "Value", "Condition", or "Time Series". For an <ExternalOutput> this is either “Value", "Condition", "Time Series", "1D-Table", "2D-Table", or "3D-Table".
- path: GoldSim element's location in the model hierarchy; only available in <ExternalElement>.
- dllPath: DLL name, optionally with path (as defined in element); only available in <ExternalElement>.
- funcName: DLL function name to be called by element; only available in <ExternalElement>.
- unit: The data type unit of the interface input or output (not provided if type is Condition).
- order: The data type order with options "Scalar An output consisting of a single value or condition.", "Vector A one-dimensional array.[R]", "Matrix A two-dimensional array.[R,C]" (R specifies the number of items in the data type's row array A collection of variables that share common output attributes and can be manipulated in GoldSim elements or input expressions. label set, C specifies the number of items in the data type's column array label set).
- definition: The input definition (equation) specified in the interface; only available in <ExternalInput> .
- dataRepresents: Only used if input or output is a time series. It specifies what the time series data represents. There are a total of 6 options. The are represented by a numeric (1 thru 6) and a descriptive identifier based on the choices offered in the interface input/output editing dialogs (combo box with six choices).
- rowUnit: Defines the row unit of a 1D, 2D or 3D-Table; only available in <ExternalOutput> elements with type "1D-Table", "2D-Table" or "3D-Table".
- columnUnit: Defines the column unit of a 2D or 3D-Table; only available in <ExternalOutput> elements with type "2D-Table" or "3D-Table".
- layerUnit: Defines the layer unit of a 3D-Table; only available in <ExternalOutput> elements with type "3D-Table"
Related topics…
- Defining a Lookup Table Using an External Function
- Defining the External Element
- Exporting the External Element Interface
- External (DLL) Elements
- Implementing the External Module
- Locking onto a DLL File
- Running the DLL in a Separate Process
- Saving External Element Outputs
- Using an External Element to Define Lookup Tables
- Using an External Element to Read and/or Output Time Series
- Viewing an External Element in the Browser
- When is the External Element Called?