Shared Parameters
Get Shared Parameter Name
$getSharedParamName := function($sharedParamId){
$$[type="Parameter" and id = $sharedParamId].name
};
Get Shared Parameter GUID
$getSharedParamGuid := function($sharedParamId){
$$[type="Parameter" and id = $sharedParamId].values.guid
};
Family Symbols and Instance
Deze regels verzameld alle Family Symbols en de eerste Instance van Families waarvan de naam begint met NLRS.
(
$getSharedParamName := function($sharedParamId){
$$[type="Parameter" and id = $sharedParamId].name
};
$getSharedParamGuid := function($sharedParamId){
$$[type="Parameter" and id = $sharedParamId].values.guid
};
$getFamilyName := function($ParentId){
$$[type="Family" and id = $ParentId].name
};
$getInstanceSP := function($parentId) {
$filter(
$[type = "FamilyInstance" and parent.id = $parentId][0].**[ref = "Parameter"],
function($p) {
$count($match($getSharedParamName($p.id), /^(eV|eE)/)) = 0
}
).{
"name": $getSharedParamName($.id),
"value": value,
"guid": $getSharedParamGuid($.id),
}
};
/*Only model family ids whose name start with NLRS */
$families := $[type = "Family" and values.isEditable = true and values.familyCategory.type = "Model" and $match(name, /^NLRS/)].id;
$allfamilysymbols := $[type = "FamilySymbol" and parent.id in $families].{
"id": id,
"type": type,
"name": name,
"familyname": $getFamilyName(parent.id),
"sp": $append($filter(**[ref = "Parameter"], function($p) {
$count($match($getSharedParamName($p.id), /^(eV|eE)/)) = 0
}).{
"name": $getSharedParamName($.id),
"value": value,
"guid": $getSharedParamGuid($.id),
},
$getInstanceSP(id))
}[$exists(sp)][];
)
Family Symbols and Instance except parameter with eV
(
$getSharedParamName := function($sharedParamId){
$$[type="Parameter" and id = $sharedParamId].name
};
$getSharedParamGuid := function($sharedParamId){
$$[type="Parameter" and id = $sharedParamId].values.guid
};
$getInstanceSP := function($parentId) {
$filter(
$[type = "FamilyInstance" and parent.id = $parentId][0].**[ref = "Parameter"],
function($p) {
$count($match($getSharedParamName($p.id), /^(eV|eE)/)) = 0
}
).{
"name": $getSharedParamName($.id),
"value": value,
"guid": $getSharedParamGuid($.id),
}
};
$allfamilysymbols := $[type = "FamilySymbol"].{
"id": id,
"type": type,
"name": name,
"sp": $append($filter(**[ref = "Parameter"], function($p) {
$count($match($getSharedParamName($p.id), /^(eV|eE)/)) = 0
}).{
"name": $getSharedParamName($.id),
"value": value,
"guid": $getSharedParamGuid($.id),
},
$getInstanceSP(id))
}[$exists(sp)][];
)
LookupGuid
(
$LookupGuid1 := "104c3657-6918-4b2b-a0b9-bf4b05c8621a";
$LookupGuid2 := "2bc41923-4e29-4bf8-9911-992c87f16d26";
/* Get the Parameter Info for the given guid) */
$getSharedParamInfo := function($guid){(
$sharedParemInfo := $$[type="Parameter" and values.guid = $guid];
{
"paramExist": $exists($sharedParamInfo),
"guid": $exists($sharedParemInfo) ? $sharedParemInfo.values.guid : null,
"name": $exists($sharedParemInfo) ? $sharedParemInfo.values.name : null,
"spec": $exists($sharedParemInfo) ? $sharedParemInfo.values.spec : null,
"ispp": $exists($sharedParemInfo) ? $sharedParemInfo.values.isProjectParameter : null,
}
)};
/* Get info for both parameters */
$paramInfo1 := $getSharedParamInfo($LookupGuid1);
$paramInfo2 := $getSharedParamInfo($LookupGuid2);
/* Get parameter value from object using GUID */
$getSharedParam := function($object, $guid, $meta){(
$sp := $lookup($object.values, "p_" & $guid);
$paramExist := $exists($sp);
{
"paramExist": $paramExist,
"value": $paramExist ? $sp.value : "Parameter niet aanwezig",
"guid": $meta.guid,
"name": $meta.name,
"spec": $meta.spec,
"isPP": $meta.isPP
}
)};
/* Main data filter */
$[type = "FamilyInstance"].{
"name": name,
"type": type,
"id": id,
"Objecttype_Number": $getSharedParam($, $LookupGuid1, $paramInfo1),
"Objecttype_Description": $getSharedParam($, $LookupGuid2, $paramInfo2)
};
)