Countlist Regels

Het commando COUNTLIST gebruikt een regel-CSV om blokken in de tekening te hernoemen, samen te voegen en totalen te berekenen. De werking is gebaseerd op de automatische tests onder SCAD Re-Event/Tests/Countlist en laat zien hoe het in de praktijk binnen de plugin wordt toegepast.

CSV Formaat

Een CSV bestaat uit regels met vier kolommen:

Block Name / Pattern;New Name;Number;Add / Replace / Rename
SOURCE;TARGET;COUNT;RULE_TYPE
  • Block Name / Pattern: Naam van het bronblock of een wildcardpatroon.
  • New Name: Doelblock (bij RENAME de vervangende naam).
  • Number: Betekenis afhankelijk van het type regel.
  • Add / Replace / Rename: Eén van RENAME, ADD, REPLACE, REPLACENUM, SET, IGNORE.

Lege regels of regels zonder blocknaam of met een ongeldig type worden overgeslagen.

Verwerkingsvolgorde

COUNTLIST werkt de regels stap voor stap af:

  1. RENAME – hernoem eerst blocknamen
  2. Groeperen – combineer gelijke blockreferenties
  3. ADD/REPLACE – tel door of verplaats aantallen
  4. REPLACENUM – bundel N blokken in één doelblok
  5. SET – stel samengestelde artikelen samen uit onderdelen
  6. IGNORE – verwijder blokken die niet mee moeten tellen

Omdat RENAME altijd voor ADD/REPLACE/SET gebeurt, kun je eerst namen normaliseren om daarna eenvoudiger te werken.

RENAME

Een block wordt hernoemd vóór groeperen en tellen. Wildcards bepalen welk deel vervangen wordt. Alleen de eerste match telt.

  • Voorbeeld: *TEMP*;LIGHT_PERMANENT;1;RENAME → BLOCK_TEMP wordt BLOCK_PERMANENT.
  • Voorbeeld: SPOT_*;SPOT_GENERIC;1;RENAME → SPOT_LED en SPOT_HALOGEEN worden SPOT_GENERICLED en SPOT_GENERICHALOGEEN.

ADD

Tel een block extra door bij een ander block, de bron blijft bestaan.

  • Voorbeeld: LIGHT_SPOT;TRUSS_TOTAL;2;ADD met 3× LIGHT_SPOT → TRUSS_TOTAL krijgt +6, LIGHT_SPOT blijft 3.

REPLACE

Vervang blocks door een ander block, de bron verdwijnt.

  • Voorbeeld: TRUSS_OLD;TRUSS_NEW;1;REPLACE met 4× TRUSS_OLD → TRUSS_NEW krijgt +4, TRUSS_OLD verdwijnt.

REPLACENUM

Bundel meerdere blokken in een pakket.

  • Voorbeeld: CLAMP_SINGLE;CLAMP_BOX;6;REPLACENUM met 14× CLAMP_SINGLE → 2× CLAMP_BOX en rest 2× CLAMP_SINGLE.

SET

Combineer verschillende onderdelen tot één samengestelde set.

  • Voorbeeld: 4× CHAIR_STANDARD + 1× TABLE_ROUND → 1× SET_DINING, rest CHAIR_STANDARD en TABLE_ROUND worden verminderd.

IGNORE

Verwijder blokken uit de telling.

  • Voorbeeld: TMP_*;;1;IGNORE verwijdert alle blokken die beginnen met TMP_ (bijvoorbeeld TMP_TESTBLOCK).

Wildcards

Wildcards werken in alle regels (niet hoofdlettergevoelig):

  • *TEXT* — bevat TEXT
  • TEXT* — begint met TEXT
  • *TEXT — eindigt met TEXT

Bij RENAME bepaalt de plaats van de wildcard hoe de naam wordt aangepast.

Randgevallen

  • Niet-bestaande blocks: geen effect.
  • Negatieve ADD-factoren: verminderen het doel; ≤0 verdwijnt.
  • REPLACENUM 0 of <0: genegeerd.
  • Ongeldige regels: genegeerd, blocks blijven staan.

Voorbeelden

Normaliseren en optellen

LIGHT_TEMP;LIGHT_FINAL;1;RENAME
LIGHT_FINAL;RIG_TOTAL;2;ADD
RIG_TOTAL;RIG_FINAL;1;RENAME

Resultaat: 3× LIGHT_TEMP → eerst hernoemd naar LIGHT_FINAL, daarna RIG_TOTAL +6, uiteindelijk RIG_FINAL +6. LIGHT_FINAL zelf blijft ook in de lijst.

Bundelen en sets

CABLE_SINGLE;CABLE_PACK10;10;REPLACENUM
CHAIR_STANDARD;SET_TABLE_4P;4;SET
TABLE_ROUND;SET_TABLE_4P;1;SET

Resultaat: 23× CABLE_SINGLE → 2× CABLE_PACK10 en 3 losse kabels. Voor de set: 4 stoelen + 1 tafel → 1× SET_TABLE_4P.

Opschonen

*DRAFT*;FIXTURE_FINAL;1;RENAME
TESTBLOCK_*;IGNORE_ME;1;RENAME
TMP_*;;1;IGNORE

Resultaat: alle blokken met DRAFT in de naam worden FIXTURE_FINAL, alle blokken die met TMP_ beginnen verdwijnen.

Tips

  • Gebruik RENAME om bloknamen op te schonen vóór ADD/REPLACE.
  • Houd RENAME-regels uniek, eerste match wint.
  • Gebruik REPLACE i.p.v. ADD wanneer de bron niet in de telling mag blijven.
  • Kies REPLACENUM-waarden die logisch zijn bij bundeling (bijv. 6 CLAMP_SINGLE = 1 CLAMP_BOX).
  • Definieer alle onderdelen van een SET met dezelfde setnaam.