Schema
Overview
The project schema defines the variables used across GENESIS objects and workflows. In practice, the schema configured in Options > Schema… becomes the default for block models, intervals, and composites.
Most projects initialize the schema from imported drillhole data (assays), but variables can also be created manually
Open Schema Settings
- Go to the Option ribbon.
- In Settings, click Schema…
- Use the Variable tab to add, edit, reorder, show/hide, or remove variables.
Variable Model
Each schema variable contains the following fields:
- Name (Label): internal unique identifier used by the system.
- Caption: display name shown in UI, outputs, reports, and plans.
- Description: free text description of the variable.
- Type:
- Input: value comes from imported or estimated data.
- Calculated: value is computed from a formula or script function.
- Default Value: Default value when data is not yet imported or estimated
- Missing Value: fallback value used when data is absent.
- Use Capping + Capping Level: optional upper limit used in interval calculations.
- Decimal / Width: formatting controls.
- Show: controls whether the variable is displayed in outputs.
- Order: display order in variable lists.
Naming Rules
When adding or renaming variables:
- Names must pass GENESIS label validation.
- Do not use spaces.
- Do not start with a number.
- Do not use special characters except underscore (
_). - Reserved names are not allowed.
- Names are treated as unique (case-insensitive uniqueness check).
Common examples: Au, Ag, CaO, Fe, SiO2.
Add, Rename, Delete
- Add creates a new variable with defaults:
- Type: Input
- Default value:
0 - Missing value:
-1 - Decimal:
2 - Width:
6 - Show: enabled
- Rename updates the variable label and keeps the schema synchronized.
- Delete permanently removes selected variables.
- At least one variable must remain in the schema.
Input vs Calculated Variables
- Input variables store imported/measured values.
- Calculated variables store computed values from a formula.
- Switching an existing variable from Input to Calculated may clear previously stored values for that variable.
Formula and Script Support
Calculated expressions are case-insensitive and ignore spacing.
Formula Validation
GENESIS validates standard formulas and reports parsing errors before saving.
Script Function Shortcut
The Use Script action generates a prototype like:
double Get<VariableName>(double <InputVar1>, double <InputVar2>, ...)
This lets advanced users compute a variable in script using current input variables.
Critical Values and Interval Behavior
Two critical values are used:
- Default value: the value of the variable by default if no other value was provided.
- Missing value: explicit value for missing/unavailable information. usually -1
For mineralized interval calculations, missing analyses can be handled differently depending on dilution settings:
- With dilution: missing terms (usually -1) are replaced by the default value (usually 0).
- Without dilution: missing/empty terms can be excluded from calculation; all-empty cases remain absent.
If capping is enabled, computed interval results are limited to the configured capping level.
Display and Ordering
- Caption controls displayed text.
- Show controls visibility in outputs.
- Order controls list/output sequence using Up/Down actions.
- Multi-select operations can apply Show and Capping changes to several variables at once.
Calculated variable Operators (Priority Order)
~,!,not()— unary negation / logical not^— exponent*,/— multiply/divide+,-— add/subtract%— modulus<>,!=— not equal==,=— equal>=,<=,>,<— comparisons/\,&&,and— logical AND\/,||,or— logical OR
Calculated variable Supported Functions
Single-argument functions
Floor(x),Ceil(x),Abs(x)Log(x),Log10(x),Exp(x),Sqrt(x)Sin(x),Cos(x),Tan(x)Asin(x),Acos(x),Atan(x)Sinh(x),Cosh(x),Tanh(x)
Multi-argument functions
Rand(x,y)— random number betweenxandyMin(x1; x2; ...)— minimum valueMax(x1; x2; ...)— maximum valueInd(value; ind1; min1; ind2; min2; ...; default)— returns first indicator wherevalue <= minN, otherwisedefault