Skip to content

4.3 Dragend / niet dragend — NLRS_C_dragend moet een waarde hebben.

NLRS_C_dragend is verplicht voor deze bouwdelen

Deze regel controleert of de shared parameter NLRS_C_dragend expliciet is ingevuld voor bouwdelen waarvan de Assembly Code aangeeft dat een constructieve beoordeling vereist is.

Wanneer is deze regel van toepassing?

  • Het element is een Model element
  • De Assembly Code valt binnen een set waarvoor

een expliciete aanduiding dragend / niet-dragend vereist is

  • Het element heeft nog geen waarde voor NLRS_C_dragend

Waarom is dit verplicht?

Binnen de BIM Basis ILS mag de dragende functie van een element niet impliciet worden afgeleid uit:

  • Revit defaults
  • structuralUsage
  • discipline-aannames

Zonder expliciete waarde ontstaat:

  • foutieve IFC-export
  • onjuiste constructieve interpretatie
  • risico in vergunning- en toetsingsprocessen

Oplossing

  • Voeg de shared parameter NLRS_C_dragend toe indien ontbrekend, kies expliciet:
  • true → dragend
  • false → niet-dragend

BIM Basis ILS – §4.3 Dragend / niet-dragend
https://www.digigo.nu/ilsen-en-richtlijnen/bim-basis-ils/


{
  "Id": "f5d49fa5-5ac7-4411-971a-f9d0e9833762",
  "Filter": {
    "Type": "queryFilter",
    "Properties": [
      {
        "Name": "Query",
        "Value": "(\n  /* All relevant GUIDs in one place */\n  $paramGuids := {\n    \"NLRS_C_dragend\": \"35b4cefa-e13c-4a27-a91e-f7410a56cf70\",\n  };\n\n  /* Build one lookup table with metadata per GUID (keys are strings!) */\n  $paramMetaByGuid := $merge(\n    $$[type = \"Parameter\" and values.guid in $paramGuids.*].{\n      $string(values.guid): {\n        \"paramExist\": true,\n        \"guid\": values.guid,\n        \"name\": values.name\n      }\n    }\n  );\n\n    $getSharedParam := function($object, $logicalName){\n    (\n      $guid := $lookup($paramGuids, $logicalName);\n      $meta := $guid ? $lookup($paramMetaByGuid, $string($guid)) : undefined;\n      $sp   := $guid and $exists($object.values)\n               ? $lookup($object.values, \"p_\" & $guid)\n               : undefined;\n\n      {\n        \"exists\":   $exists($sp),\n        \"hasValue\": $exists($sp) ? $boolean($sp.hasValue) : false,\n        \"value\":    ($exists($sp) and $sp.hasValue) ? $sp.value : null,\n        \"valueAsString\":\n                    ($exists($sp) and $sp.hasValue) ? $sp.valueAsString : null,\n        \"guid\":     $meta ? $meta.guid : $guid,\n        \"name\":     $meta ? $meta.name : $logicalName\n      }\n    )\n    };\n\n\n  /* AssemblyCode inclusion (full match) */\n$assemblyCodeIncluded :=\n/^(11\\.(1[01235]|2[045])|16\\.(1[012345])|17\\.(1[0345]|2[03])|24\\.(1[12350]|2[0125]|3[0125])|33\\.(1[012]|2[012])|41\\.(1[0123])|4[23]\\.(1[012])|43\\.2[0123]|44\\.([12][0123])|45\\.(1[12450]|2[012345])|47\\.([12][0123456])|71\\.(1[01234]|2[0123])|72\\.(1[01234]|2[012])|73\\.(1[012]|2[012])|74\\.(1[0123]|2[012])|75\\.(1[0123]|2[0123])|76\\.(1[01]|2[012])|90\\.(1[0123]|2[012]|3[01234]|4[012345]|5[012345678]|6[01234567]|7[01234]|8[0123]))$/i;\n\n\n\n  /* Category Exclusion List OST names*/\n  $CategoryExclusion = [\"OST_DetailComponents\"];\n  \n  /* Category filters based upon FamilySymbols */\n  $symbols := $[type = \"FamilySymbol\" and values.category.type = \"Model\" and $not(values.category.label in $CategoryExclusion) and $string(values.assemblyCode) ~> $assemblyCodeIncluded];\n\n\n  /* Index symbols by id */\n  $symIndex := $merge($symbols.{$string(id): $});\n\n  /* Main query over FamilyInstances */\n    $[\n      type = \"FamilyInstance\"\n      and values.structuralUsage = \"Other\"\n      and $exists(parent)\n    ].(\n      $sym := $lookup($symIndex, $string(parent.id));\n      $sym ?\n      {\n        \"id\": id,\n        \"type\": type,\n        \"name\": name,\n\n        \"assemblyCode\": $sym.values.assemblyCode,\n        \"structuralUsage\": values.structuralUsage,\n\n        \"NLRS_C_dragend_HasValue\": $getSharedParam($, \"NLRS_C_dragend\").hasValue\n\n      }\n      : ()\n    )\n)",
        "Type": null
      }
    ],
    "SubFilters": []
  },
  "Validation": {
    "Type": "validation",
    "Name": "NLRS_C_dragend moet een waarde hebben",
    "ErrorMessage": "#### Issue\n\nDe parameter **'NLRS_C_dragend'** ontbreekt of is leeg, terwijl de **Assembly Code** aangeeft dat deze vereist is.\n \n- **Huidige waarde** : `{{ActualValue}}`  \n- **Verplichte parameter** : `'NLRS_C_dragend'`\n\n#### Oplossing\n\nControleer of de parameter `'NLRS_C_dragend'` aanwezig is én een geldige waarde bevat:\n\n1. **Ga na of het element een Assembly Code heeft** die wijst op een constructieve functie (bijv. codes beginnend met `13`, `17`, `21`, `22`, `28`)\n2. **Vul de parameter 'NLRS_C_dragend' in** met een geldige waarde: - `Ja`, `Nee`, `Onbekend` of conform projectafspraken\n3. Voeg de parameter toe via shared parameters als deze nog ontbreekt.\n\n#### Uitleg\n\nDe parameter **'NLRS_C_dragend'** is bedoeld om expliciet aan te geven of een element dragend is.  \nVoor bouwdelen met deze **Assembly Code** is deze aanduiding verplicht om fouten in afstemming, engineering of vergunningstrajecten te voorkomen.\n\n> Zie ook: [BIM Basis ILS – Paragraaf 4.3 Dragend/Niet-dragend](https://www.digigo.nu/ilsen-en-richtlijnen/bim-basis-ils/)\n",
    "Properties": [
      {
        "Name": "valueToValidate",
        "Value": {
          "Type": "querySelector",
          "Properties": [
            {
              "Name": "query",
              "Value": "NLRS_C_dragend_HasValue",
              "Type": "bool"
            }
          ]
        }
      },
      {
        "Name": "Validator",
        "Value": {
          "Type": "value",
          "Properties": [
            {
              "Name": "value",
              "Value": "bool:Is",
              "Type": "bool"
            }
          ]
        }
      },
      {
        "Name": "expectedValue",
        "Value": {
          "Type": "staticValueSelector",
          "Properties": [
            {
              "Name": "value",
              "Value": "true",
              "Type": "bool"
            }
          ]
        }
      }
    ],
    "SubValidations": []
  },
  "Details": {
    "Name": "NLRS_C_dragend moet een waarde hebben.",
    "Impact": 4,
    "Priority": 3,
    "Tags": [
      "4.3 Dragend / niet dragend"
    ],
    "Description": "### NLRS_C_dragend is verplicht voor deze bouwdelen\n\nDeze regel controleert of de shared parameter NLRS_C_dragend\nexpliciet is ingevuld voor bouwdelen waarvan de Assembly Code\naangeeft dat een constructieve beoordeling vereist is.\n\n#### Wanneer is deze regel van toepassing?\n- Het element is een Model element\n- De Assembly Code valt binnen een set waarvoor\n  een expliciete aanduiding dragend / niet-dragend vereist is\n- Het element heeft nog geen waarde voor NLRS_C_dragend\n\n#### Waarom is dit verplicht?\nBinnen de BIM Basis ILS mag de dragende functie van een element\nniet impliciet worden afgeleid uit:\n\n- Revit defaults\n- structuralUsage\n- discipline-aannames\n\nZonder expliciete waarde ontstaat:\n- foutieve IFC-export\n- onjuiste constructieve interpretatie\n- risico in vergunning- en toetsingsprocessen\n\n#### Oplossing\n- Voeg de shared parameter NLRS_C_dragend toe indien ontbrekend, kies expliciet:\n- `true` → dragend\n- `false` → niet-dragend\n\n> BIM Basis ILS – §4.3 Dragend / niet-dragend  \n> https://www.digigo.nu/ilsen-en-richtlijnen/bim-basis-ils/\n",
    "HelpUrl": "https://help.daqs.io/NL/NLRS/NLRS_C_dragend/NLRS_C_dragend_verplicht/?nav=false",
    "TimeToSolve": 10,
    "AllDisciplines": true,
    "Disciplines": []
  },
  "Metadata": [
    {
      "Label": "AssemblyCode",
      "Selector": {
        "Type": "querySelector",
        "Properties": [
          {
            "Name": "query",
            "Value": "values.assemblyCode",
            "Type": null
          }
        ]
      }
    }
  ]
}