4.7 Materiaal — Alle loadable family's solids zijn gematerialiseerd
Wat doet deze regel?
Deze regel controleert of alle geometrische vlakken van solids in loadable families een materiaal toegewezen hebben.
Loadable families die in het project worden gebruikt moeten materialen bevatten op hun geometrie, zodat materiaalinformatie betrouwbaar kan worden gebruikt in BIM-processen zoals hoeveelheidsbepalingen, visualisatie, duurzaamheidsonderzoek en kostenberekeningen.
Wat controleert de regel?
De regel analyseert Family Types (FamilySymbols) die behoren tot bewerkbare loadable families en inspecteert de solids die onderdeel zijn van hun geometrie.
Voor elke solid wordt gecontroleerd of alle vlakken van die solid een materiaal hebben toegewezen gekregen.
Families worden gemarkeerd wanneer één of meerdere solids vlakken bevatten zonder materiaal.
De regel sluit specifieke categorieën uit waarbij gematerialiseerde solids doorgaans niet noodzakelijk zijn:
- Profiles
- Supports
- Detail Items
Deze categorieën worden uitgesloten omdat zij vaak ondersteunende of technische geometrie bevatten die niet bedoeld is voor materiaalanalyses.
Scope van de controle
Deze regel is van toepassing op:
- Family Types (FamilySymbols)
- behorend tot bewerkbare loadable families
- binnen Model categorieën
De regel controleert de solid-geometrie van het family type en verifieert of alle vlakken van deze solids een materiaal toegewezen hebben.
Waarom bestaat deze regel?
Materialen zijn essentieel voor betrouwbare BIM-data.
Wanneer solids geen materiaal hebben:
- kunnen materiaallijsten onvolledig worden
- worden hoeveelheidsbepalingen onbetrouwbaar
- kunnen vervolgprocessen zoals kostenberekeningen of duurzaamheidsanalyses incorrecte resultaten geven
Door ervoor te zorgen dat alle solids een materiaal hebben, blijft materiaalinformatie in het model consistent en bruikbaar voor verdere verwerking en analyse.
{
"Id": "faa50de4-5d25-444c-8c71-463514a0854e",
"Filter": {
"Type": "queryFilter",
"Properties": [
{
"Name": "Query",
"Value": "(\n /* Check if the array contains the value /*\n /* When array is null or not exists, null is returned */\n $arrayContains := function($array, $v){\n $exists($array) \n ? $array = null \n ? null \n : $sum($map($array, function($data){$data = $v ? 1 : 0 })) > 0 ? true: false\n : null\n }; \n $familyIds := $[type = \"Family\" and values.isEditable = true].id; \n $[type = \"FamilySymbol\" and parent.id in ($familyIds) \n and ((values.categoryType = 'Model' and values.categoryName != 'Profiles' and values.categoryName != 'Supports' and values.categoryName != 'Detail Items')\n /*regel hierboven is de oude data structuur voor categories*/\n or (values.category.type = \"Model\" and values.category.label != 'OST_ProfileFamilies' and values.category.label != 'OST_RailingSupport' and values.category.label != 'OST_DetailComponents'))\n and $exists(values.solids.allFacesHaveMaterial)].\n {\n \"id\":id,\n \"type\":type,\n \"name\":name,\n \"solidCount\": $count(values.solids),\n \"allFacesHaveMaterialTrue\": $count(values.solids[allFacesHaveMaterial = true]),\n \"allFacesHaveMaterialFalse\": $count(values.solids[allFacesHaveMaterial = false]),\n \"totalFaces\": $sum(values.solids.numberOfFaces),\n \"allFacesHaveMaterial\":$not($arrayContains(values.solids.allFacesHaveMaterial, false))[],\n }; \n)",
"Type": null
}
],
"SubFilters": []
},
"Validation": {
"Type": "validation",
"Name": "Hebben alle vlakken een materiaal",
"ErrorMessage": "#### Issue\n\nNiet alle solids van de family **'{{name}}'** hebben een materiaal toegewezen.\n\n- Aantal solids: **{{solidCount}}**\n- Solids mét materiaal: **{{allFacesHaveMaterialTrue}}**\n- Solids zonder materiaal: **{{allFacesHaveMaterialFalse}}**\n- Totaal aantal vlakken: **{{totalFaces}}**\n\n#### Oplossing\n\nOpen de family in de Family Editor en zorg dat alle solids een materiaal toegewezen krijgen. \nDit kan door:\n- een materiaal toe te wijzen aan de solid zelf, of \n- een materiaal te koppelen via de (sub)categorie.\n\n#### Informatie\n\nVolgens BIM Basis ILS §4.7 Materiaal moeten alle geometrische vlakken van loadable families een materiaal hebben, zodat materiaalinformatie betrouwbaar kan worden uitgewisseld en geanalyseerd.\n",
"Properties": [
{
"Name": "valueToValidate",
"Value": {
"Type": "querySelector",
"Properties": [
{
"Name": "query",
"Value": "$count(allFacesHaveMaterial) = 1 ? allFacesHaveMaterial[0] : true",
"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": "Alle loadable family's solids zijn gematerialiseerd",
"Impact": 4,
"Priority": 2,
"Tags": [
"4.7 Materiaal"
],
"Description": "## Wat doet deze regel?\n\nDeze regel controleert of **alle geometrische vlakken van solids in loadable families een materiaal toegewezen hebben**.\n\nLoadable families die in het project worden gebruikt moeten materialen bevatten op hun geometrie, zodat materiaalinformatie betrouwbaar kan worden gebruikt in BIM-processen zoals hoeveelheidsbepalingen, visualisatie, duurzaamheidsonderzoek en kostenberekeningen.\n\n---\n\n## Wat controleert de regel?\n\nDe regel analyseert **Family Types (FamilySymbols)** die behoren tot **bewerkbare loadable families** en inspecteert de solids die onderdeel zijn van hun geometrie.\n\nVoor elke solid wordt gecontroleerd of **alle vlakken van die solid een materiaal hebben toegewezen gekregen**.\n\nFamilies worden gemarkeerd wanneer **één of meerdere solids vlakken bevatten zonder materiaal**.\n\nDe regel sluit specifieke categorieën uit waarbij gematerialiseerde solids doorgaans niet noodzakelijk zijn:\n\n- Profiles \n- Supports \n- Detail Items \n\nDeze categorieën worden uitgesloten omdat zij vaak ondersteunende of technische geometrie bevatten die niet bedoeld is voor materiaalanalyses.\n\n---\n\n## Scope van de controle\n\nDeze regel is van toepassing op:\n\n- **Family Types (FamilySymbols)** \n- behorend tot **bewerkbare loadable families** \n- binnen **Model categorieën**\n\nDe regel controleert de **solid-geometrie van het family type** en verifieert of alle vlakken van deze solids een materiaal toegewezen hebben.\n\n---\n\n## Waarom bestaat deze regel?\n\nMaterialen zijn essentieel voor betrouwbare BIM-data.\n\nWanneer solids geen materiaal hebben:\n\n- kunnen materiaallijsten onvolledig worden \n- worden hoeveelheidsbepalingen onbetrouwbaar \n- kunnen vervolgprocessen zoals kostenberekeningen of duurzaamheidsanalyses incorrecte resultaten geven \n\nDoor ervoor te zorgen dat alle solids een materiaal hebben, blijft **materiaalinformatie in het model consistent en bruikbaar voor verdere verwerking en analyse**.",
"HelpUrl": "https://help.daqs.io/NL/BIMBasisILS/Help/4.7.1_Materiaal/?nav=false",
"TimeToSolve": 0,
"AllDisciplines": true,
"Disciplines": []
},
"Metadata": []
}