NLRS — Family Instances op default workset1
Consequent gebruik van workset namen verbeteren de leesbaarheid en handelbaarheid van modellen. door juist gebruik van namen van worksets kunnen zelfs worksets van gelinkte bestanden worden aangestuurd.
Deze regel is toegevoegd om als voorbeeld te dienen voor diegene die regels zelf willen maken of laten maken om deze te kopieren en aan te passen naar de huisstijl.
{
"Id": "7cca8af0-bc2b-46b9-943d-7dfcb1f30d75",
"Filter": {
"Type": "queryFilter",
"Properties": [
{
"Name": "Query",
"Value": "(\n /* Category Exclusion List (OST names) */\n $CategoryExclusion := [\"OST_DetailComponents\"];\n\n /* AssemblyCode exclusion regex */\n $assemblyCodeExclusion := /^0/i;\n\n /* Index Worksets by id */\n $worksetIndex := $merge(\n $[type = \"Workset\"].{\n $string(id): name\n }\n );\n\n /* Resolve Workset1 id */\n $Workset1Id := $[type = \"Workset\" and name = \"Workset1\"].id[0];\n\n /* Filter FamilySymbols */\n $symbols :=\n $[\n type = \"FamilySymbol\"\n and values.category.type = \"Model\"\n and $not(values.category.label in $CategoryExclusion)\n and (\n $exists(values.assemblyCode)\n and $string(values.assemblyCode) ~> $assemblyCodeExclusion\n ? false\n : true\n )\n ];\n\n /* Index symbols by id */\n $symIndex := $merge(\n $symbols.{ $string(id): $ }\n );\n\n /* Main query over FamilyInstances */\n $[\n type = \"FamilyInstance\"\n and $exists(parent)\n and (\n $exists($Workset1Id)\n ? values.worksetId = $Workset1Id\n : false\n )\n ].(\n $sym := $lookup($symIndex, $string(parent.id));\n $sym ?\n {\n \"id\": id,\n \"type\": type,\n \"name\": name,\n \"worksetId\": values.worksetId,\n \"worksetName\": $lookup($worksetIndex, $string(values.worksetId)),\n \"Category\": $sym.values.category.label,\n \"assemblyCode\": $sym.values.assemblyCode\n }\n : ()\n )\n)\n",
"Type": null
}
],
"SubFilters": []
},
"Validation": {
"Type": "validation",
"Name": "Worksets",
"ErrorMessage": "#### Issue\n\nDe afspraak is dat FamilyInstances waarvan de Assembly Code niet begint met: '0-' en niet behoren tot de Category: 'Detail Items' niet op deze workset mogen staan: 'Workset1'\n\n- assemblyCode: {{assemblyCode}}\n- Category: {{Category}}\n- Workset naam: {{worksetName}}\n\n#### Oplossing\n\nSelecteer het element en pas de workset aan\n\n#### Informatie\n\nConsistente worksetnamen verbeteren:\n- samenwerking in team- en link-modellen\n- filtering en zichtbaarheid\n- automatische verwerking van gelinkte bestanden\n",
"Properties": [
{
"Name": "valueToValidate",
"Value": {
"Type": "querySelector",
"Properties": [
{
"Name": "query",
"Value": "worksetName",
"Type": "list"
}
]
}
},
{
"Name": "Validator",
"Value": {
"Type": "value",
"Properties": [
{
"Name": "value",
"Value": "list:IsNotIn",
"Type": "list"
}
]
}
},
{
"Name": "expectedValue",
"Value": {
"Type": "staticListValueSelector",
"Properties": [
{
"Name": "list",
"Value": "Workset1",
"Type": "list"
}
]
}
}
],
"SubValidations": []
},
"Details": {
"Name": "Family Instances op default workset1",
"Impact": 2,
"Priority": 2,
"Tags": [
"NLRS"
],
"Description": "Consequent gebruik van workset namen verbeteren de leesbaarheid en handelbaarheid van modellen.\ndoor juist gebruik van namen van worksets kunnen zelfs worksets van gelinkte bestanden worden aangestuurd.\n\nDeze regel is toegevoegd om als voorbeeld te dienen voor diegene die regels zelf willen maken of laten maken om deze te kopieren en aan te passen naar de huisstijl.",
"HelpUrl": "https://help.daqs.io/daqs/BestPractises/NL/WorksetNameLinkedFiles/?nav=false",
"TimeToSolve": 20,
"AllDisciplines": true,
"Disciplines": []
},
"Metadata": []
}