Skip to content

3.6 Classificatiesystematiek — AssemblyCode 5 NLRS_C_SfB tabel 1_code uit lijst

Controle op NLRS_C_SfB tabel 1_code

De regel controleert drie aspecten:

1. Parameter bestaat

De shared parameter NLRS_C_SfB tabel 1_code moet aanwezig zijn in de family.

Wanneer de parameter ontbreekt, kan het element niet correct worden geclassificeerd volgens NLRS.

2. Parameter heeft een waarde

Wanneer de parameter bestaat, moet deze ook een waarde bevatten.

Een lege waarde leidt tot een onvolledige classificatie en kan problemen veroorzaken bij:

  • hoeveelheden
  • rapportages
  • IFC-export
  • gegevensuitwisseling

3. Waarde komt uit NL/SfB Tabel 1

De waarde van NLRS_C_SfB tabel 1_code moet voorkomen in de lookup table:NL:SfB_Tabel_1 Alleen waarden uit deze tabel zijn toegestaan.

Waarom deze regel bestaat

Binnen installatiemodellen zou het volledig classificeren van elementen via Assembly Codes leiden tot een zeer groot aantal varianten van Family Types.

Dit maakt modellen:

  • complexer
  • moeilijker te beheren
  • minder flexibel bij ontwerpwijzigingen

Daarom wordt binnen NLRS en BIM Basis ILS voor installatietechniek vaak gewerkt met een instance-gebaseerde classificatie via de parameter: NLRS_C_SfB tabel 1_code Hiermee kan een element correct worden geclassificeerd zonder extra typevarianten te creëren.

Scope van de controle

Deze regel wordt toegepast op:

  • FamilyInstances
  • waarvan de Assembly Code begint met 5
  • binnen Model categorieën
  • met uitzondering van uitgesloten categorieën zoals detailcomponenten

Wat te doen bij afwijkingen

Wanneer een element niet voldoet aan deze regel:

  1. Controleer of de parameter NLRS_C_SfB tabel 1_code aanwezig is in de family.
  2. Indien deze ontbreekt:
  3. open de Family Editor
  4. voeg de officiële NLRS shared parameter toe
  5. Controleer of de parameter een waarde bevat.
  6. Kies een geldige waarde uit de classificatielijst NL:SfB_Tabel_1.

Resultaat

Correct gebruik van NLRS_C_SfB tabel 1_code zorgt voor:

  • consistente classificatie van installaties
  • betere modelstructuur
  • betrouwbare hoeveelheden en rapportages
  • correcte IFC-export
  • betere gegevensuitwisseling tussen systemen

Referentie

BIM Basis ILS
§3.6 Classificatiesystematiek NLRS – Nederlandse Revit Standaard


{
  "Id": "028ba717-e059-47ff-8373-5c800e91eea0",
  "Filter": {
    "Type": "queryFilter",
    "Properties": [
      {
        "Name": "Query",
        "Value": "(\n  /* Shared parameter GUIDs */\n  $paramGuids := {\n    \"NLRS_C_SfB_tabel_1_code\": \"7b4acbe7-dcd9-4e30-85a5-98bc8a746427\"\n  };\n\n  /* Helper to extract shared parameter */\n  $getParam := function($obj,$name){\n    (\n      $guid := $lookup($paramGuids,$name);\n      $p := $guid and $exists($obj.values)\n        ? $lookup($obj.values,\"p_\" & $guid)\n        : null;\n\n      {\n        \"exists\": $exists($p),\n        \"hasValue\": $exists($p) ? $p.hasValue : false,\n        \"value\": $exists($p) ? $p.value : null,\n        \"valueAsString\": $exists($p) ? $p.valueAsString : null\n      }\n    )\n  };\n\n  /* Category Exclusion */\n  $CategoryExclusion := [\"OST_DetailComponents\"];\n\n  /* Index relevant FamilySymbols */\n  $symIndex :=\n    $merge(\n      $[\n        type=\"FamilySymbol\"\n        and values.category.type=\"Model\"\n        and $not(values.category.label in $CategoryExclusion)\n        and $string(values.assemblyCode) ~> /^5/i\n      ].{\n        $string(id):{\n          \"assemblyCode\": values.assemblyCode,\n          \"category\": values.category.label\n        }\n      }\n    );\n\n  /* Evaluate FamilyInstances */\n  $[\n    type=\"FamilyInstance\"\n    and $exists(parent)\n    and $lookup($symIndex,$string(parent.id))\n  ].(\n    $sym := $lookup($symIndex,$string(parent.id));\n\n    {\n      \"id\": id,\n      \"type\": type,\n      \"name\": name,\n      \"Category\": $sym.category,\n      \"assemblyCode\": $sym.assemblyCode,\n      \"NLRS_C_SfB_tabel_1_code\": $getParam($,\"NLRS_C_SfB_tabel_1_code\")\n    }\n  )\n)",
        "Type": null
      }
    ],
    "SubFilters": []
  },
  "Validation": {
    "Type": "validationCollection",
    "Name": "NLRS_C_SfB tabel 1_code voor Assembly Codes die beginnen met een 5",
    "ErrorMessage": "",
    "Properties": [
      {
        "Name": "Operator",
        "Value": {
          "Type": "value",
          "Properties": [
            {
              "Name": "value",
              "Value": "and",
              "Type": ""
            }
          ]
        }
      }
    ],
    "SubValidations": [
      {
        "Type": "validation",
        "Name": "NLRS_C_SfB tabel 1_code bestaat",
        "ErrorMessage": "#### Issue\n\nDe parameter **'NLRS_C_SfB tabel 1_code'** ontbreekt, terwijl deze verplicht is voor dit type.\n\n- **Assembly Code**: `{{assemblyCode}}`\n- **Categorie**: `{{Category}}`\n\n#### Oplossing\n\n1. Open de betreffende **Family** in de Family Editor  \n2. Voeg de shared parameter **'NLRS_C_SfB tabel 1_code'** toe  \n   - Gebruik de officiële NLRS shared parameter (juiste GUID)\n3. Laad de family opnieuw in het project en overschrijf de bestaande versie\n\n> Deze parameter is vereist voor correcte NL/SfB-classificatie van MEP-elementen.",
        "Properties": [
          {
            "Name": "valueToValidate",
            "Value": {
              "Type": "querySelector",
              "Properties": [
                {
                  "Name": "query",
                  "Value": "NLRS_C_SfB_tabel_1_code.exists",
                  "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": []
      },
      {
        "Type": "validation",
        "Name": " NLRS_C_SfB tabel 1_code heeft een waarde",
        "ErrorMessage": "#### Issue\n\nDe parameter **' NLRS_C_SfB tabel 1_code'** bestaat, maar heeft geen waarde.\n\n- **Assembly Code**: `{{assemblyCode}}`\n- **Huidige waarde**: `{ActualValue}`\n\n#### Oplossing\n\n1. Selecteer het element in het model  \n2. Vul de parameter **'NLRS_C_SfB tabel 1_code'** in  \n3. Kies een geldige waarde uit de lookup table **`NL:SfB_Tabel_1`**\n\n> Lege waarden leiden tot foutieve classificatie bij hoeveelheden, IFC-export en uitwisseling.",
        "Properties": [
          {
            "Name": "valueToValidate",
            "Value": {
              "Type": "querySelector",
              "Properties": [
                {
                  "Name": "query",
                  "Value": "NLRS_C_SfB_tabel_1_code.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": []
      },
      {
        "Type": "validation",
        "Name": "NLRS_C_SfB tabel 1_code heeft een correcte waarde",
        "ErrorMessage": "#### Issue\n\nVoor elementen met een **Assembly Code** die begint met `5`, moet de waarde van de parameter **'NLRS_C_SfB tabel 1_code'** geldig zijn volgens de lijst `NL:SfB_Tabel_1`.\n\n- **Assembly Code**: `{{assemblyCode}}`\n- **Huidige waarde**: `{ActualValue}`\n\n#### Oplossing\n\nControleer of de Assembly Code correct begint met `5`.  \nStel vervolgens een geldige waarde in voor de parameter **'NLRS_C_SfB tabel 1_code'**, zoals gespecificeerd in de tabel `NL:SfB_Tabel_0`.\n\n- Vergelijk de waarde met de toegestane codes in de lookup table\n- Pas de waarde aan via de eigenschappen van het betreffende element\n\nDe ingevulde waarde komt **niet** voor in de toegestane lijst.\n\n#### Oplossing\n\n1. Controleer of de Assembly Code correct begint met `5`  \n2. Open de eigenschappen van het element  \n3. Stel een geldige waarde in voor **'NLRS_C_SfB tabel 1_code'**  \n   - Gebruik uitsluitend waarden uit **`NL:SfB_Tabel_1`**\n\n#### Uitleg\n\nBinnen de **NL/SfB-systematiek** worden installatietechnische elementen  \n(Assembly Codes `5*`) geclassificeerd via **Tabel 1**.\n\nDe parameter **'NLRS_C_SfB tabel 1_code'** is hierbij leidend en vervangt  \neen fijnmazige Assembly Code-indeling, wat vooral bij MEP-modellen noodzakelijk is.\n\n> Correcte classificatie is essentieel voor:\n> - betrouwbare hoeveelheden  \n> - kostenramingen  \n> - consistente IFC-export",
        "Properties": [
          {
            "Name": "valueToValidate",
            "Value": {
              "Type": "querySelector",
              "Properties": [
                {
                  "Name": "query",
                  "Value": "NLRS_C_SfB_tabel_1_code.valueAsString",
                  "Type": "list"
                }
              ]
            }
          },
          {
            "Name": "Validator",
            "Value": {
              "Type": "value",
              "Properties": [
                {
                  "Name": "value",
                  "Value": "list:IsIn",
                  "Type": "list"
                }
              ]
            }
          },
          {
            "Name": "expectedValue",
            "Value": {
              "Type": "lookupDataSelector",
              "Properties": [
                {
                  "Name": "distinct",
                  "Value": "",
                  "Type": "list"
                },
                {
                  "Name": "query",
                  "Value": "code",
                  "Type": "list"
                },
                {
                  "Name": "lookupTable",
                  "Value": "NL:SfB_Tabel_1",
                  "Type": "list"
                }
              ]
            }
          }
        ],
        "SubValidations": []
      }
    ]
  },
  "Details": {
    "Name": "AssemblyCode 5 NLRS_C_SfB tabel 1_code uit lijst",
    "Impact": 4,
    "Priority": 1,
    "Tags": [
      "3.6 Classificatiesystematiek"
    ],
    "Description": "## Controle op NLRS_C_SfB tabel 1_code\n\nDe regel controleert drie aspecten:\n\n### 1. Parameter bestaat\n\nDe shared parameter **NLRS_C_SfB tabel 1_code** moet aanwezig zijn in de family.\n\nWanneer de parameter ontbreekt, kan het element niet correct worden geclassificeerd volgens NLRS.\n\n### 2. Parameter heeft een waarde\n\nWanneer de parameter bestaat, moet deze ook **een waarde bevatten**.\n\nEen lege waarde leidt tot een onvolledige classificatie en kan problemen veroorzaken bij:\n\n- hoeveelheden\n- rapportages\n- IFC-export\n- gegevensuitwisseling\n\n### 3. Waarde komt uit NL/SfB Tabel 1\n\nDe waarde van **NLRS_C_SfB tabel 1_code** moet voorkomen in de lookup table:NL:SfB_Tabel_1\nAlleen waarden uit deze tabel zijn toegestaan.\n\n## Waarom deze regel bestaat\n\nBinnen installatiemodellen zou het volledig classificeren van elementen via **Assembly Codes** leiden tot een zeer groot aantal varianten van **Family Types**.\n\nDit maakt modellen:\n\n- complexer\n- moeilijker te beheren\n- minder flexibel bij ontwerpwijzigingen\n\nDaarom wordt binnen **NLRS** en **BIM Basis ILS** voor installatietechniek vaak gewerkt met een **instance-gebaseerde classificatie** via de parameter: NLRS_C_SfB tabel 1_code\nHiermee kan een element correct worden geclassificeerd zonder extra typevarianten te creëren.\n\n## Scope van de controle\n\nDeze regel wordt toegepast op:\n\n- **FamilyInstances**\n- waarvan de **Assembly Code begint met `5`**\n- binnen **Model categorieën**\n- met uitzondering van uitgesloten categorieën zoals detailcomponenten\n\n## Wat te doen bij afwijkingen\n\nWanneer een element niet voldoet aan deze regel:\n\n1. Controleer of de parameter **NLRS_C_SfB tabel 1_code** aanwezig is in de family.\n2. Indien deze ontbreekt:\n   - open de **Family Editor**\n   - voeg de officiële **NLRS shared parameter** toe\n3. Controleer of de parameter een waarde bevat.\n4. Kies een geldige waarde uit de classificatielijst **NL:SfB_Tabel_1**.\n\n## Resultaat\n\nCorrect gebruik van **NLRS_C_SfB tabel 1_code** zorgt voor:\n\n- consistente classificatie van installaties\n- betere modelstructuur\n- betrouwbare hoeveelheden en rapportages\n- correcte IFC-export\n- betere gegevensuitwisseling tussen systemen\n\n## Referentie\n\nBIM Basis ILS  \n§3.6 Classificatiesystematiek\nNLRS – Nederlandse Revit Standaard\n\n",
    "HelpUrl": "https://help.daqs.io/NL/NLRS/NLRS_C_S/NLRS_C_SfB_tabel_1_code/?nav=false",
    "TimeToSolve": 10,
    "AllDisciplines": true,
    "Disciplines": []
  },
  "Metadata": []
}