Elements
Instance properties basic
```jsonata ( / Get symbol by id with assemblyCode 32.xx / $getSym := function($id){ $$[type = "FamilySymbol" and id = $id and $string(values.assemblyCode) ~> /^32.\d\d$/i][0] };
$[type = "FamilyInstance" and $exists($getSym(parent.id))].( $sym := $getSym(parent.id); { "id": id, "type": type, "name": name, "assemblyCode": $sym.values.assemblyCode } ) ) ````
Instance properties
```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" };
/ Metadata lookup for a shared parameter GUID / $getSharedParamInfo := function($guid){( $p := $$[type = "Parameter" and values.guid = $guid][0]; $existsP := $exists($p); { "paramExist": $existsP, "guid": $existsP ? $p.values.guid : null, "name": $existsP ? $p.values.name : null, "spec": $existsP ? $p.values.spec : null, "isPP": $existsP ? $p.values.isProjectParameter : null } )};
/ Get parameter value from object using logical name -> guid map / $getSharedParam := function($object, $logicalName){( $guid := $lookup($paramGuids, $logicalName); $meta := $getSharedParamInfo($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, "spec": $meta.spec, "isPP": $meta.isPP } )};
/ Get symbol by id with assemblyCode 32.xx / $getSym := function($id){ $$[type = "FamilySymbol" and id = $id and $string(values.assemblyCode) ~> /^32.\d\d$/i][0] };
/ Main query / $[type = "FamilyInstance"].( $sym := $getSym(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")
}
: ()
) )
````
Type properties
```jsonata ( / All relevant GUIDs in one place / $paramGuids := { "NLRS_C_bouwwerk_laag": "beca98b3-5207-4cde-a26b-7e9797c4eb26", "NLRS_C_breedte_01": "4579d940-1e31-436b-9621-8aafe3f20366", "NLRS_C_hoogte_01": "b79e5ec8-464f-4012-8f7d-ae2e07b4877e", "NLRS_C_diepte": "2719f3d6-0e7d-4110-95cd-2077963d27cb", "NLRS_C_breedte": "3e5030bc-20d3-42a1-ba5e-371700b56590", "NLRS_C_hoogte": "7d76b0ec-3dd4-451f-94b6-d0d28ad51b08", "NLRS_C_vorm": "9412ebcd-bd02-4b6d-b4b1-e81eaf862ea5", / geen echte NLRS GUID / "NLRS_C_model": "6b24fe9a-c80c-4559-ab66-5f5ea408d5f4", "NLRS_C_geluidwering Rw": "9f8879ac-a684-4d52-be85-74e6927c8082", "NLRS_C_hoogte_02": "a30c2124-c412-4fd2-9b7f-93a31c962546", "NLRS_C_hoogte_03": "7b6e1aa4-daaa-4eaf-a95b-36384da2b925" };
/ Lookup metadata for a shared parameter GUID / $getSharedParamInfo := function($guid){( $p := $$[type = "Parameter" and values.guid = $guid][0]; $existsP := $exists($p); { "paramExist": $existsP, "guid": $existsP ? $p.values.guid : null, "name": $existsP ? $p.values.name : null, "spec": $existsP ? $p.values.spec : null, "isPP": $existsP ? $p.values.isProjectParameter : null } )};
/ Get parameter value from symbol using logical name -> guid map / $getSharedParam := function($object, $logicalName){( $guid := $lookup($paramGuids, $logicalName); $meta := $getSharedParamInfo($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, "spec": $meta.spec, "isPP": $meta.isPP } )};
/ Main selection: FamilySymbols with assemblyCode 32.xx / $[type = "FamilySymbol" and $string(values.assemblyCode) ~> /^32.\d\d$/i]. { "id": id, "type": type, "name": name, "assemblyCode": values.assemblyCode, "Manufacturer": values.Manufacturer, "Model": values.Model,
"NLRS_C_bouwwerk_laag": $getSharedParam($, "NLRS_C_bouwwerk_laag"),
"NLRS_C_breedte_01": $getSharedParam($, "NLRS_C_breedte_01"),
"NLRS_C_hoogte_01": $getSharedParam($, "NLRS_C_hoogte_01"),
"NLRS_C_diepte": $getSharedParam($, "NLRS_C_diepte"),
"NLRS_C_breedte": $getSharedParam($, "NLRS_C_breedte"),
"NLRS_C_hoogte": $getSharedParam($, "NLRS_C_hoogte"),
"NLRS_C_vorm": $getSharedParam($, "NLRS_C_vorm"),
"NLRS_C_model": $getSharedParam($, "NLRS_C_model"),
"NLRS_C_geluidwering Rw": $getSharedParam($, "NLRS_C_geluidwering Rw"),
"NLRS_C_hoogte_02": $getSharedParam($, "NLRS_C_hoogte_02"),
"NLRS_C_hoogte_03": $getSharedParam($, "NLRS_C_hoogte_03")
} ) ````