Skip to content

Get Shared Parameter Values Instances

```jsonata ( / All relevant GUIDs in one place / $paramGuids := { "NLRS_C_bouwwerk_laag": "beca98b3-5207-4cde-a26b-7e9797c4eb26", "NLRS_C_omschrijving_01": "d3b470e4-82c4-45ff-b0cf-5584f5590a49", "NLRS_C_omschrijving_02": "86197b10-d084-4946-a3a2-6bd511b90bc6", "NLRS_C_bouwwerk_nummer": "9f4793ea-3f74-4564-a95b-494524c3745d", "NLRS_C_hang_sluitwerk": "2403abc3-ff52-4ffd-9f28-d0fc6e914684", "NLRS_C_montage": "0248fa40-7377-40d3-9a35-8dbca2cb94cb", "NLRS_C_oppervlakte_01": "efbc1ca1-7071-4b6a-8d89-d53af2603270", "NLRS_C_oppervlakte_02": "7068f0d3-8dea-45c5-817f-5b83de07924b" };

/ Build one lookup table with metadata per GUID (keys are strings!) / $paramMetaByGuid := $merge( $$[type = "Parameter" and values.guid in $paramGuids.*].{ $string(values.guid): { "paramExist": true, "guid": values.guid, "name": values.name } } );

/ Get parameter value from object using logical name -> guid map / $getSharedParam := function($object, $logicalName){( $guid := $lookup($paramGuids, $logicalName); $meta := $lookup($paramMetaByGuid, $string($guid)); $sp := $lookup($object.values, "p_" & $guid); $present := $exists($sp); { "paramExist": $present, "value": $present ? $sp.value : "Parameter niet aanwezig", "guid": $meta.guid, "name": $meta.name } )};

/ All FamilySymbols with assemblyCode 32.xx / $symbols32 := $$[ type = "FamilySymbol" and $string(values.assemblyCode) ~> /^32.\d\d$/i ];

/ Index symbols by id (id cast to string for object key) / $symIndex := $merge( $symbols32.{ $string(id): $ } );

/ Main query over FamilyInstances / $[type = "FamilyInstance"].( $sym := $lookup($symIndex, $string(parent.id)); $sym ? { "id": id, "type": type, "name": name, "assemblyCode": $sym.values.assemblyCode,

  "NLRS_C_bouwwerk_laag":   $getSharedParam($, "NLRS_C_bouwwerk_laag"),
  "NLRS_C_omschrijving_01": $getSharedParam($, "NLRS_C_omschrijving_01"),
  "NLRS_C_omschrijving_02": $getSharedParam($, "NLRS_C_omschrijving_02"),
  "NLRS_C_bouwwerk_nummer": $getSharedParam($, "NLRS_C_bouwwerk_nummer"),
  "NLRS_C_hang_sluitwerk":  $getSharedParam($, "NLRS_C_hang_sluitwerk"),
  "NLRS_C_montage":         $getSharedParam($, "NLRS_C_montage"),
  "NLRS_C_oppervlakte_01":  $getSharedParam($, "NLRS_C_oppervlakte_01"),
  "NLRS_C_oppervlakte_02":  $getSharedParam($, "NLRS_C_oppervlakte_02")
}
: ()

) ) ````