Skip to content

$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.existsbool:Is true
  • NLRS_C_SfB_tabel_1_code.hasValuebool:Is true
  • NLRS_C_SfB_tabel_1_code.valueAsStringlist:IsIn [...]

Used in rules

  • rule-028ba717 — NLRS_C_SfB tabel 1_code voor Assembly Codes die beginnen met een 5