Libraries & objects
About Archicad and BIMcloud libraries, their management and migration, objects and other library parts, etc.

REQUEST ("ASSOCLP_NAME" messing with Parameter script

Bruce
Expert
I'm writing a label that will fill available options based on what type of element it is attached to. I'm using a VALUES{2} command to do this.

For the Object options, I'm reading the object name, then filling the options based on what object is attached. However, for some reason, the REQUEST ("ASSOCLP_PARVALUE...) command is screwing with the VALUES{2} command in the parameter script.

Even though the arrays are filling just the same, it doesn't work.

Code that doesn't work:
! Parameter script
VALUES{2} "surface_type" surfaceTypeIndex, surfaceTypeDesc
! Master Scipt
DIM surfaceTypeDesc[], surfaceTypeIndex[], surfaceTypeValue[]
ELEM_TYPE_OBJECT	= 1
iM = 1

! Object surfaces
IF GLOB_ELEM_TYPE = ELEM_TYPE_OBJECT THEN
    isValidType = 1
    isComplex = 1		! Used to turn on manual select

    surfaceTypeDesc[iM] = "Object Override Surface"
    surfaceTypeIndex[iM] = 1
    surfaceTypeValue[surfaceTypeIndex[iM]]= SYMB_MAT
    iM=iM+1


    partName = ""
    n = REQUEST ("ASSOCLP_NAME", "", partName)


    IF partName = "19050 Window reveal" THEN
        surfaceTypeDesc[iM] = "Inner blind Surface"
        surfaceTypeIndex[iM] = 2

        n = REQUEST("ASSOCLP_PARVALUE", "blind_inner_mat", reqNameIndex, reqType, reqFlags, reqDim1, reqDim2, reqSurf)
        surfaceTypeValue[surfaceTypeIndex[iM]]= reqSurf
        iM=iM+1

        surfaceTypeDesc[iM] = "Outer blind Surface"
        surfaceTypeIndex[iM] = 3

        n = REQUEST("ASSOCLP_PARVALUE", "blind_outer_mat", reqNameIndex, reqType, reqFlags, reqDim1, reqDim2, reqSurf)
        surfaceTypeValue[surfaceTypeIndex[iM]]= reqSurf
        iM=iM+1
    ENDIF
    print surfaceTypeIndex
    print surfaceTypeDesc
    print surfaceTypeValue
ENDIF
Bruce Walker
www.brucepwalker.com
Barking Dog BIM YouTube
Mindmeister Mindmap
-- since v8.1 --
AC26 5002 INT Full | Windows 11 64 Pro | 12th Gen Intel i7-12700H 2.30 GHz | 64 Gb RAM | NVIDIA GeForce RTX 3060 32 Gb
1 REPLY 1
Bruce
Expert
Now if I just change these two lines of code in the Master script - it works.
partName = "19050 Window reveal"
!		n = REQUEST ("ASSOCLP_NAME", "", partName)

The arrays surfaceTypeDesc[], surfaceTypeIndex[], surfaceTypeValue[] report the same values in both cases (as far as I can tell) - but in the first instance, I only get the option "Object Override Surface", but in the second option above, I get all three. See attached images.
Bruce Walker
www.brucepwalker.com
Barking Dog BIM YouTube
Mindmeister Mindmap
-- since v8.1 --
AC26 5002 INT Full | Windows 11 64 Pro | 12th Gen Intel i7-12700H 2.30 GHz | 64 Gb RAM | NVIDIA GeForce RTX 3060 32 Gb