Skip to content

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)
    };
)