3.5 Structuur en naamgeving — Naamgeving loadable Family types
Wat doet deze regel?
Deze regel controleert of Family Type namen van loadable families correct zijn opgebouwd volgens de NLRS-naamgevingsregels.
De controle wordt uitgevoerd op Family Types (FamilySymbols) die behoren tot bewerkbare loadable families van Model-categorieën.
De naam van een Family Type moet bestaan uit meerdere onderdelen die gescheiden zijn door een underscore (_) en die samen een eenduidige en herkenbare typering van het element vormen.
Deze structuur sluit aan bij de afspraken uit BIM Basis ILS §3.5 Structuur en naamgeving.
Wat de regel controleert
De regel controleert of de Family Type naam uit meerdere onderdelen bestaat en of deze onderdelen niet leeg zijn.
De volgende onderdelen worden gecontroleerd:
- POS1 – Functionele aanduiding
Het eerste deel van de naam moet een functionele aanduiding bevatten van het element.
- POS2 – Fabrikant of leverancier (optioneel)
Het tweede deel kan de naam van de fabrikant of leverancier bevatten.
- POS3 – Model of typeaanduiding
Het derde deel beschrijft het specifieke model of type.
- POS4 – Afmetingen
Het vierde deel bevat relevante afmetingen of maatvoering.
- POS5 – Variant of aanvullende informatie (optioneel)
Het vijfde deel kan aanvullende varianten of extra maatvoering bevatten.
De regel controleert of deze onderdelen niet leeg zijn wanneer ze in de naamstructuur voorkomen.
Scope van de controle
Deze regel wordt toegepast op:
- Family Types (FamilySymbols)
- types van loadable families
- families waarbij isEditable = true
- families waarvan de categorie Model is
System families zoals Walls, Floors en Roofs vallen buiten de scope van deze controle.
Waarom deze regel bestaat
Een consistente naamstructuur voor Family Types is belangrijk voor het beheer van BIM-modellen.
Door een vaste naamopbouw te gebruiken:
- blijven families herkenbaar en consistent tussen projecten
- wordt filteren en zoeken in bibliotheken eenvoudiger
- kunnen scripts en automatiseringen betrouwbaarder werken
- wordt uitwisseling van BIM-data tussen partijen verbeterd
De NLRS-naamgevingsregels zorgen ervoor dat families en types op een uniforme manier worden benoemd binnen Nederlandse BIM-projecten.
{
"Id": "cb58a56d-0f98-485d-8d0b-e203c829f98e",
"Filter": {
"Type": "queryFilter",
"Properties": [
{
"Name": "Query",
"Value": "( \n $familyIds := $[$.type = \"Family\" and values.isEditable = true and (values.familyCategoryType = \"Model\" or values.familyCategory.type = \"Model\")].id;\n $[$.type = \"FamilySymbol\" and $.parent.id in ($familyIds)]; \n)",
"Type": null
}
],
"SubFilters": []
},
"Validation": {
"Type": "validationCollection",
"Name": "Family naam",
"ErrorMessage": "Naamgeving loadable Family Types",
"Properties": [
{
"Name": "Operator",
"Value": {
"Type": "value",
"Properties": [
{
"Name": "value",
"Value": "and",
"Type": ""
}
]
}
}
],
"SubValidations": [
{
"Type": "validation",
"Name": "Family Type naam POS1",
"ErrorMessage": "#### Issue\n\nHet eerste deel van de naam **'{{name}}'** ontbreekt of is leeg.\n\n#### Oplossing\n\nVul het eerste deel van de naam in.\n \n#### Informatie\n\nVolgens de NLRS-naamgevingsregels moet een Family Type naam altijd starten met een functionele aanduiding. \nZie BIM Basis ILS §3.5 Structuur en naamgeving.\n",
"Properties": [
{
"Name": "valueToValidate",
"Value": {
"Type": "partSelector",
"Properties": [
{
"Name": "query",
"Value": "$.name",
"Type": "string"
},
{
"Name": "partToCheck",
"Value": "1",
"Type": "string"
},
{
"Name": "separator",
"Value": "_",
"Type": "string"
}
]
}
},
{
"Name": "Validator",
"Value": {
"Type": "value",
"Properties": [
{
"Name": "value",
"Value": "string:ShouldNotBeEmpty",
"Type": "string"
}
]
}
},
{
"Name": "expectedValue",
"Value": {
"Type": "staticValueSelector",
"Properties": [
{
"Name": "value",
"Value": "leeg",
"Type": "string"
}
]
}
}
],
"SubValidations": []
},
{
"Type": "validation",
"Name": "Family Type naam POS2",
"ErrorMessage": "#### Issue\n\nHet tweede deel van de naam **'{{name}}'** ontbreekt of is leeg.\n\n#### Oplossing\n\nVoeg indien van toepassing een fabrikant- of leveranciersnaam toe als tweede deel van de naam.\n\n#### Informatie\n\nDit onderdeel is optioneel volgens de NLRS-naamgevingsregels, maar mag niet leeg zijn wanneer het wordt gebruikt. \nZie BIM Basis ILS §3.5 Structuur en naamgeving.\n",
"Properties": [
{
"Name": "valueToValidate",
"Value": {
"Type": "partSelector",
"Properties": [
{
"Name": "query",
"Value": "$.name",
"Type": "string"
},
{
"Name": "partToCheck",
"Value": "2",
"Type": "string"
},
{
"Name": "separator",
"Value": "_",
"Type": "string"
}
]
}
},
{
"Name": "Validator",
"Value": {
"Type": "value",
"Properties": [
{
"Name": "value",
"Value": "string:ShouldNotBeEmpty",
"Type": "string"
}
]
}
},
{
"Name": "expectedValue",
"Value": {
"Type": "staticValueSelector",
"Properties": [
{
"Name": "value",
"Value": "Manufacturer/fabrikant (optioneel)",
"Type": "string"
}
]
}
}
],
"SubValidations": []
},
{
"Type": "validation",
"Name": "Family Type naam POS3",
"ErrorMessage": "#### Issue\n\nHet derde deel van de naam **'{{name}}'** ontbreekt of is leeg.\n\n#### Oplossing\n\nVul een model- of typeaanduiding in als derde deel van de naam.\n\n#### Informatie\n\nDit onderdeel wordt gebruikt voor nadere typering van het Family Type, conform NLRS. \nZie BIM Basis ILS §3.5 Structuur en naamgeving.\n",
"Properties": [
{
"Name": "valueToValidate",
"Value": {
"Type": "partSelector",
"Properties": [
{
"Name": "query",
"Value": "$.name",
"Type": "string"
},
{
"Name": "partToCheck",
"Value": "3",
"Type": "string"
},
{
"Name": "separator",
"Value": "_",
"Type": "string"
}
]
}
},
{
"Name": "Validator",
"Value": {
"Type": "value",
"Properties": [
{
"Name": "value",
"Value": "string:ShouldNotBeEmpty",
"Type": "string"
}
]
}
},
{
"Name": "expectedValue",
"Value": {
"Type": "staticValueSelector",
"Properties": [
{
"Name": "value",
"Value": " Model (optioneel)",
"Type": "string"
}
]
}
}
],
"SubValidations": []
},
{
"Type": "validation",
"Name": "Family Type naam POS4",
"ErrorMessage": "#### Issue\n\nHet vierde deel van de naam **'{{name}}'** ontbreekt of is leeg.\n\n#### Oplossing\n\nVoeg de relevante afmetingen toe als vierde deel van de naam.\n\n#### Informatie\n\nAfmetingen maken onderdeel uit van de NLRS-naamgevingsconventies voor Family Types. \nZie BIM Basis ILS §3.5 Structuur en naamgeving.\n",
"Properties": [
{
"Name": "valueToValidate",
"Value": {
"Type": "partSelector",
"Properties": [
{
"Name": "query",
"Value": "$.name",
"Type": "string"
},
{
"Name": "partToCheck",
"Value": "4",
"Type": "string"
},
{
"Name": "separator",
"Value": "_",
"Type": "string"
}
]
}
},
{
"Name": "Validator",
"Value": {
"Type": "value",
"Properties": [
{
"Name": "value",
"Value": "string:ShouldNotBeEmpty",
"Type": "string"
}
]
}
},
{
"Name": "expectedValue",
"Value": {
"Type": "staticValueSelector",
"Properties": [
{
"Name": "value",
"Value": "Afmetingen",
"Type": "string"
}
]
}
}
],
"SubValidations": []
},
{
"Type": "validation",
"Name": "Family Type naam POS5",
"ErrorMessage": "#### Issue\n\nHet vijfde deel van de naam **'{{name}}'** ontbreekt of is leeg.\n\n#### Oplossing\n\nVul indien van toepassing aanvullende afmetingen of varianten in als vijfde deel van de naam.\n\n#### Informatie\n\nDit onderdeel is optioneel binnen de NLRS-naamgevingsregels en wordt gebruikt voor verdere differentiatie. \nZie BIM Basis ILS §3.5 Structuur en naamgeving.\n",
"Properties": [
{
"Name": "valueToValidate",
"Value": {
"Type": "partSelector",
"Properties": [
{
"Name": "query",
"Value": "$.name",
"Type": "string"
},
{
"Name": "partToCheck",
"Value": "5",
"Type": "string"
},
{
"Name": "separator",
"Value": "_",
"Type": "string"
}
]
}
},
{
"Name": "Validator",
"Value": {
"Type": "value",
"Properties": [
{
"Name": "value",
"Value": "string:ShouldNotBeEmpty",
"Type": "string"
}
]
}
},
{
"Name": "expectedValue",
"Value": {
"Type": "staticValueSelector",
"Properties": [
{
"Name": "value",
"Value": "Afmetingen (optioneel)",
"Type": "string"
}
]
}
}
],
"SubValidations": []
}
]
},
"Details": {
"Name": "Naamgeving loadable Family types",
"Impact": 4,
"Priority": 2,
"Tags": [
"3.5 Structuur en naamgeving",
"NLRS"
],
"Description": "## Wat doet deze regel?\n\nDeze regel controleert of **Family Type namen van loadable families correct zijn opgebouwd volgens de NLRS-naamgevingsregels**.\n\nDe controle wordt uitgevoerd op **Family Types (FamilySymbols)** die behoren tot **bewerkbare loadable families van Model-categorieën**.\n\nDe naam van een Family Type moet bestaan uit meerdere onderdelen die gescheiden zijn door een **underscore (_)** en die samen een eenduidige en herkenbare typering van het element vormen.\n\nDeze structuur sluit aan bij de afspraken uit **BIM Basis ILS §3.5 Structuur en naamgeving**.\n\n---\n\n## Wat de regel controleert\n\nDe regel controleert of de **Family Type naam uit meerdere onderdelen bestaat en of deze onderdelen niet leeg zijn**.\n\nDe volgende onderdelen worden gecontroleerd:\n\n- **POS1 – Functionele aanduiding** \n Het eerste deel van de naam moet een functionele aanduiding bevatten van het element.\n\n- **POS2 – Fabrikant of leverancier (optioneel)** \n Het tweede deel kan de naam van de fabrikant of leverancier bevatten.\n\n- **POS3 – Model of typeaanduiding** \n Het derde deel beschrijft het specifieke model of type.\n\n- **POS4 – Afmetingen** \n Het vierde deel bevat relevante afmetingen of maatvoering.\n\n- **POS5 – Variant of aanvullende informatie (optioneel)** \n Het vijfde deel kan aanvullende varianten of extra maatvoering bevatten.\n\nDe regel controleert of deze onderdelen **niet leeg zijn wanneer ze in de naamstructuur voorkomen**.\n\n---\n\n## Scope van de controle\n\nDeze regel wordt toegepast op:\n\n- **Family Types (FamilySymbols)**\n- types van **loadable families**\n- families waarbij **isEditable = true**\n- families waarvan de categorie **Model** is\n\nSystem families zoals **Walls, Floors en Roofs** vallen buiten de scope van deze controle.\n\n---\n\n## Waarom deze regel bestaat\n\nEen consistente naamstructuur voor Family Types is belangrijk voor het beheer van BIM-modellen.\n\nDoor een vaste naamopbouw te gebruiken:\n\n- blijven families **herkenbaar en consistent tussen projecten**\n- wordt **filteren en zoeken in bibliotheken eenvoudiger**\n- kunnen **scripts en automatiseringen betrouwbaarder werken**\n- wordt **uitwisseling van BIM-data tussen partijen verbeterd**\n\nDe NLRS-naamgevingsregels zorgen ervoor dat **families en types op een uniforme manier worden benoemd binnen Nederlandse BIM-projecten**.",
"HelpUrl": "https://help.daqs.io/nl/nlrs/FamilyTypesNaamgeving/?nav=false",
"TimeToSolve": 20,
"AllDisciplines": true,
"Disciplines": []
},
"Metadata": []
}