Skip to content

4.3 Dragend / niet dragend — NLRS_C_dragend == false

Niet-dragende bouwdelen (NLRS_C_dragend = false)

Deze regel controleert of expliciet niet-dragende bouwdelen correct zijn gemarkeerd met de shared parameter NLRS_C_dragend = false .

Selectielogica

Een element valt onder deze regel wanneer:

  • De Assembly Code ondubbelzinnig een niet-constructieve functie aanduidt

(bijvoorbeeld afwerkingen of niet-dragende invullingen)

  • De Revit-parameter structuralUsage = 'Other'
  • Het element een Model category betreft

Normatieve uitgangspunten

Binnen de BIM Basis ILS is de Assembly Code leidend voor de classificatie dragend / niet-dragend .

De Revit-parameter structuralUsage wordt uitsluitend gebruikt als ondersteunende informatie en is niet normatief .

Wanneer de Assembly Code een niet-dragende functie beschrijft, moet NLRS_C_dragend expliciet op false staan .

Waarom deze check?

Het expliciet vastleggen van niet-dragende elementen voorkomt:

  • foutieve constructieve analyses
  • verkeerde IFC-classificatie
  • onjuiste hoeveelheden en rapportages
  • interpretatieverschillen tussen disciplines

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


{
  "Id": "58c9ce59-0cf6-4fe8-b267-a588da08164d",
  "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 := /^(11\\.1[03]|13\\.1[12]|22\\.14)$/i;\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\": $getSharedParam($, \"NLRS_C_dragend\"),\n\n      }\n      : ()\n    )\n)",
        "Type": null
      }
    ],
    "SubFilters": []
  },
  "Validation": {
    "Type": "validation",
    "Name": "NLRS_C_dragend false",
    "ErrorMessage": "#### Issue\n\nOp basis van de **Assembly Code** wordt dit element beschouwd als **niet-dragend** .\nDaarom moet de waarde van **NLRS_C_dragend** expliciet op `false` staan.\n\n- **Assembly Code** : `{{assemblyCode}}`\n- **Verwachte waarde** : `{ExpectedValue}`\n- **Huidige waarde** : `{ActualValue}`\n\n#### Oplossing\n\n1. Controleer de **Assembly Code** deze duidt op een niet-constructief bouwdeel\n2. Open de **Type- of Instance-eigenschappen**\n3. Zet **NLRS_C_dragend** expliciet op `false`\n\n#### Uitleg\n\nDe Revit-parameter **structuralUsage** is niet normatief binnen de **BIM Basis ILS** .\n\nWanneer een Assembly Code expliciet een **niet-dragende functie** aanduidt, is **NLRS_C_dragend = false** vereist, ongeacht de interne Revit-interpretatie.\n\nDit voorkomt:\n- foutieve constructieve analyses\n- verkeerde IFC-classificatie\n- interpretatieverschillen tussen disciplines\n\n> BIM Basis ILS – §4.3 Dragend / niet-dragend  \n> https://www.digigo.nu/ilsen-en-richtlijnen/bim-basis-ils/\n",
    "Properties": [
      {
        "Name": "valueToValidate",
        "Value": {
          "Type": "querySelector",
          "Properties": [
            {
              "Name": "query",
              "Value": "NLRS_C_dragend.value",
              "Type": "string"
            }
          ]
        }
      },
      {
        "Name": "Validator",
        "Value": {
          "Type": "value",
          "Properties": [
            {
              "Name": "value",
              "Value": "string:IsEqualTo",
              "Type": "string"
            }
          ]
        }
      },
      {
        "Name": "expectedValue",
        "Value": {
          "Type": "staticValueSelector",
          "Properties": [
            {
              "Name": "value",
              "Value": "false",
              "Type": "string"
            }
          ]
        }
      }
    ],
    "SubValidations": []
  },
  "Details": {
    "Name": "NLRS_C_dragend == false",
    "Impact": 4,
    "Priority": 3,
    "Tags": [
      "4.3 Dragend / niet dragend"
    ],
    "Description": "### Niet-dragende bouwdelen (NLRS_C_dragend = false)\n\nDeze regel controleert of **expliciet niet-dragende bouwdelen** correct zijn gemarkeerd met de shared parameter **NLRS_C_dragend = false** .\n\n#### Selectielogica\nEen element valt onder deze regel wanneer:\n\n- De **Assembly Code** ondubbelzinnig een **niet-constructieve functie** aanduidt  \n  (bijvoorbeeld afwerkingen of niet-dragende invullingen)\n- De Revit-parameter **structuralUsage = 'Other'**\n- Het element een **Model category** betreft\n\n#### Normatieve uitgangspunten\nBinnen de **BIM Basis ILS** is de **Assembly Code leidend**\nvoor de classificatie *dragend / niet-dragend* .\n\nDe Revit-parameter **structuralUsage** wordt uitsluitend gebruikt\nals ondersteunende informatie en is **niet normatief** .\n\nWanneer de Assembly Code een niet-dragende functie beschrijft,\nmoet **NLRS_C_dragend expliciet op `false` staan** .\n\n#### Waarom deze check?\nHet expliciet vastleggen van niet-dragende elementen voorkomt:\n\n- foutieve constructieve analyses\n- verkeerde IFC-classificatie\n- onjuiste hoeveelheden en rapportages\n- interpretatieverschillen tussen disciplines\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
          }
        ]
      }
    }
  ]
}