So here is the code I use to count spool pieces now. I hope this helps.
---------------------
--START WITH 0 MARK PIECES
!MK = 0
VAR !P COLL ALL BRAN FOR PIPE
DO !PA INDEXES !P
$(
TO COUNT MARK PIECES PROPERLY YOU HAVE TO EXCLUDE THE ATTAS, PIPE AND MDS ITEMS
$)
VAR !BM COLL ALL BRAN MEM WITH TYPE NEQ 'TUBI' AND TYPE NEQ 'ATTA' AND NOT MATCHW (NAME OF SPRE, '*MDS*') FOR $!P[$!PA]
IF ARRAYSIZE(!BM) GT 1 THEN
IF SHOP OF $!BM[1] EQ TRUE AND !MK EQ 0 THEN
--LOGIC. IF THE FIRST COMPONENT IS SHOP TRUE, THEN THERE IS 1 MARK PIECE
!MK = 1
ENDIF
DO !BMA FROM 2 TO ARRAYSIZE(!BM)
!BMP = $!BMA - 1
IF SHOP OF $!BM[$!BMA] EQ TRUE AND SHOP OF $!BM[$!BMP] EQ FALSE THEN
--LOGIC: IF THERE IS A POINT WHERE IT TRANSITIONS FROM SHOP TRUE TO SHOP FALSE, THEN INCREASE THE MARK PIECE COUNT BY 1
!MK = !MK + 1
ENDIF
ENDDO
ENDIF
ENDDO
$P Estimated number of Spools: $!MK
------------------
So here is the code I use to count spool pieces now. I hope this helps.
---------------------
--START WITH 0 MARK PIECES
!MK = 0
VAR !P COLL ALL BRAN FOR PIPE
DO !PA INDEXES !P
$(
TO COUNT MARK PIECES PROPERLY YOU HAVE TO EXCLUDE THE ATTAS, PIPE AND MDS ITEMS
$)
VAR !BM COLL ALL BRAN MEM WITH TYPE NEQ 'TUBI' AND TYPE NEQ 'ATTA' AND NOT MATCHW (NAME OF SPRE, '*MDS*') FOR $!P[$!PA]
IF ARRAYSIZE(!BM) GT 1 THEN
IF SHOP OF $!BM[1] EQ TRUE AND !MK EQ 0 THEN
--LOGIC. IF THE FIRST COMPONENT IS SHOP TRUE, THEN THERE IS 1 MARK PIECE
!MK = 1
ENDIF
DO !BMA FROM 2 TO ARRAYSIZE(!BM)
!BMP = $!BMA - 1
IF SHOP OF $!BM[$!BMA] EQ TRUE AND SHOP OF $!BM[$!BMP] EQ FALSE THEN
--LOGIC: IF THERE IS A POINT WHERE IT TRANSITIONS FROM SHOP TRUE TO SHOP FALSE, THEN INCREASE THE MARK PIECE COUNT BY 1
!MK = !MK + 1
ENDIF
ENDDO
ENDIF
ENDDO
$P Estimated number of Spools: $!MK
------------------