4.8 Projectspecifiek — NLRS_C_kwaliteitsklasse_code voor Other
NLRS_C_kwaliteitsklasse_code voor Other
Deze regel controleert dat NLRS_C_kwaliteitsklasse_code niet wordt ingevuld voor elementen waarvan MaterialForModelBehaviour = Other.
Voor dit materiaalgedrag bestaat geen vaste kwaliteitsklasse volgens NLRS of BIM Basis ILS. Het leeg laten van deze parameter voorkomt misleidende classificatie en foutieve interpretatie in IFC en rapportages.
{
"Id": "a9b13ced-d051-4b7c-9bb9-943000f0b089",
"Filter": {
"Type": "queryFilter",
"Properties": [
{
"Name": "Query",
"Value": "(\n /* All relevant GUIDs in one place */\n $paramGuids := {\n \"NLRS_C_kwaliteitsklasse_code\": \"73803e29-3501-4c39-8c13-a49c4f2259d3\"\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 \"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) ? $lookup($object.values, \"p_\" & $guid) : 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\": ($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 /* Families index */\n $families := $$[type = \"Family\"];\n $famIndex := $merge($families.{$string(id): $});\n\n /* Families materialForModelBehaviour = \"Steel\" */\n $steelFamilyIds := $families[values.materialForModelBehaviour = \"Steel\"].id;\n\n /* AssemblyCode inclusion (full match) */\n $assemblyCodeIncluded := /^(11\\.1[01235]|11\\.2[045]|24\\.\\d\\d|28\\.1\\d)$/i;\n\n /* Category Exclusion List OST names*/\n $CategoryExclusion := [\"OST_DetailComponents\"];\n\n /* Category filters based upon FamilySymbols */\n $[type = \"FamilySymbol\"\n and parent.id in ($steelFamilyIds)\n and values.category.type = \"Model\"\n and $not(values.category.label in $CategoryExclusion)\n and $string(values.assemblyCode) ~> $assemblyCodeIncluded\n ].(\n $fam := $lookup($famIndex, $string(parent.id));\n {\n \"id\": id,\n \"type\": type,\n \"name\": name,\n \"assemblyCode\": values.assemblyCode,\n\n \"familyId\": parent.id,\n \"familyName\": $fam ? $fam.name : \"\",\n \"materialForModelBehaviour\": $fam ? $fam.values.materialForModelBehaviour : \"\",\n\n \"NLRS_C_kwaliteitsklasse_code\": $getSharedParam($, \"NLRS_C_kwaliteitsklasse_code\")\n }\n )\n)\n",
"Type": null
}
],
"SubFilters": []
},
"Validation": {
"Type": "validationCollection",
"Name": "NLRS_C_kwaliteitsklasse_code when MaterialForModelBehaviour is 'Other'",
"ErrorMessage": "#### Issue\n\nVoor **MaterialForModelBehaviour = Steel** is **NLRS_C_kwaliteitsklasse_code** verplicht en moet de waarde overeenkomen met de NLRS/lookup-afspraken.\n\nDeze regel controleert:\n- parameter bestaat\n- parameter heeft waarde\n- waarde is toegestaan (Steel subset)\n",
"Properties": [
{
"Name": "Operator",
"Value": {
"Type": "value",
"Properties": [
{
"Name": "value",
"Value": "and",
"Type": ""
}
]
}
}
],
"SubValidations": [
{
"Type": "validation",
"Name": "NLRS_C_kwaliteitsklasse_code heeft een waarde",
"ErrorMessage": "#### Issue\n\nVoor elementen met **MaterialForModelBehaviour = 'Other'** is **'NLRS_C_kwaliteitsklasse_code'** niet van toepassing.\n\n- **MaterialForModelBehaviour** : `Other`\n- **Huidige waarde** : `{ActualValue}`\n\n#### Oplossing\n\n1. Open de eigenschappen van het element\n2. Verwijder de waarde van **'NLRS_C_kwaliteitsklasse_code'**\n3. Laat de parameter leeg voor dit type element\n\n#### Uitleg\n\nDe parameter **'NLRS_C_kwaliteitsklasse_code'** is uitsluitend bedoeld voor\nmaterialen met een vast normatief classificatiesysteem, zoals **hout** en **staal** .\n\nBij **MaterialForModelBehaviour = Other** bestaat geen eenduidige kwaliteitsklasse.\nHet invullen van deze parameter leidt tot onjuiste interpretatie bij\nIFC-export, rapportages en modelvalidaties.\n",
"Properties": [
{
"Name": "valueToValidate",
"Value": {
"Type": "querySelector",
"Properties": [
{
"Name": "query",
"Value": "NLRS_C_kwaliteitsklasse_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": "false",
"Type": "bool"
}
]
}
}
],
"SubValidations": []
}
]
},
"Details": {
"Name": "NLRS_C_kwaliteitsklasse_code voor Other",
"Impact": 4,
"Priority": 3,
"Tags": [
"4.8 Projectspecifiek"
],
"Description": "### NLRS_C_kwaliteitsklasse_code voor Other\n\nDeze regel controleert dat NLRS_C_kwaliteitsklasse_code niet wordt ingevuld voor elementen waarvan MaterialForModelBehaviour = Other.\n\nVoor dit materiaalgedrag bestaat geen vaste kwaliteitsklasse volgens NLRS of BIM Basis ILS. Het leeg laten van deze parameter voorkomt misleidende classificatie en foutieve interpretatie in IFC en rapportages.\n",
"HelpUrl": "https://help.daqs.io/NL/NLRS/NLRS_C_kwaliteitsklasse_code/?nav=false",
"TimeToSolve": 30,
"AllDisciplines": true,
"Disciplines": []
},
"Metadata": [
{
"Label": "AssemblyCode",
"Selector": {
"Type": "querySelector",
"Properties": [
{
"Name": "query",
"Value": "values.assemblyCode",
"Type": null
}
]
}
}
]
}