$getParam
Compact helper to read a shared parameter from an object. Returns the standard four-field structure used by collection validators (exists, hasValue, value, valueAsString).
Definition
$getParam := function($obj, $name){
(
$guid := $lookup($paramGuids, $name);
$p := $guid and $exists($obj.values)
? $lookup($obj.values, "p_" & $guid)
: null;
{
"exists": $exists($p),
"hasValue": $exists($p) ? $p.hasValue : false,
"value": $exists($p) ? $p.value : null,
"valueAsString": $exists($p) ? $p.valueAsString : null
}
)
};
Dependencies
Requires $paramGuids to be defined in the outer scope:
$paramGuids := {
"NLRS_C_SfB_tabel_1_code": "7b4acbe7-dcd9-4e30-85a5-98bc8a746427"
};
Parameters
| Parameter | Type | Description |
|---|---|---|
$obj |
object | The element to read from (pass $ for current element) |
$name |
string | The key in $paramGuids |
Return value
{
"exists": true,
"hasValue": true,
"value": "51",
"valueAsString": "51"
}
When the parameter is absent:
{
"exists": false,
"hasValue": false,
"value": null,
"valueAsString": null
}
Difference from $getSharedParam
$getParam |
$getSharedParam |
|
|---|---|---|
| Returns GUID and name | No | Yes |
| Returns paramExist | No | Yes (paramExist) |
| Returns hasValue separately | Yes | No |
Requires $paramMetaByGuid |
No | Yes |
| Suitable for | Instance-level parameters | Type-level parameters with metadata |
Use $getParam when you only need the value and do not need to display the parameter name or GUID in the error message.
Usage
$[type = "FamilyInstance" and $exists(parent)].{
"id": id,
"name": name,
"NLRS_C_SfB_tabel_1_code": $getParam($, "NLRS_C_SfB_tabel_1_code")
}
Validator accesses:
NLRS_C_SfB_tabel_1_code.exists→bool:Is trueNLRS_C_SfB_tabel_1_code.hasValue→bool:Is trueNLRS_C_SfB_tabel_1_code.valueAsString→list:IsIn [...]
Used in rules
rule-028ba717— NLRS_C_SfB tabel 1_code voor Assembly Codes die beginnen met een 5