Graphisoft®

API Development KitVersion: 18

API_AddParType

라이브러리 파트의 한 파라미터를 설명합니다.

    typedef struct {
      API_AddParID       typeID;
      short              index;
      short              typeMod;
      char               name[API_NameLen];
      GS::uchar_t        uDescname [API_UAddParDescLen];
      GS::uchar_t        valueDescription [API_UAddParNumDescLen];
      Int32              dim1;
      Int32              dim2;
      unsigned short     flags;
      short              filler_1;
      Int32              filler_2;
      GSHandle           arrayDescriptions;
      union {
             double      real;
             GS::uchar_t uStr [API_UAddParStrLen];
             GSHandle    array;
      } value;
    } API_AddParType;

 

멤버

typeID
추가 파라미터의 타입입니다.
index
추가 파라미터 리스트 안에서 이 파라미터의 인덱스 값입니다.
typeMod
타입 수식어(modifier)입니다; 이 변수는 단순한 인스턴스 또는 타입 typeID인 배열입니다.
name[API_NameLen]
추가 파라미터의 이름입니다.
uDescname[API_UAddParDescLen] Changed in API 11
추가 파라미터의 Unicode 설명입니다.
valueDescription[API_UAddParNumDescLen]New in API 18
UTF-16 인코딩 형식의 Unicode 파라미터 값 설명입니다.
dim1
배열의 1번째 차원입니다; 배열 수식어인 경우 해당됨
dim2
배열의 2번째 차원입니다; 배열 수식어인 경우 해당됨
flags
수식어(Modifier) flag
 

설명

API_ParFlg_Child

이 파라미터는 앞의 타이틀의 자손입니다.

API_ParFlg_BoldName

파라미터의 이름을 강조체로 보여줍니다.

API_ParFlg_Open

이 파라미터의 자손 파라미터들을 보여줍니다.

API_ParFlg_Disabled

이 파라미터를 비활성화합니다; 주로 분리자 라인에 대하여 사용합니다.

API_ParFlg_Hidden

숨겨진 파라미터입니다; Settings 다이얼로그에서 보이지 않습니다.

API_ParFlg_SHidden

스크립트로부터 숨겨진 파라미터입니다.

arrayDescriptionsNew in API 18
UTF-16 인코딩 형식의 배열 파라미터의 Unicode 설명 문자열 값들입니다. 공간 절약을 위해 값들을 바로 뒤에 저장됩니다.
value:: real
파라미터의 값을 포함합니다; typeIDAPIParT_CString이 아닌 경우입니다.
 
value:: uStr[API_UAddParStrLen] Changed in API 11
문자열 타입 파라미털의 Unicode 값을 포함합니다; typeIDAPIParT_CString일 때입니다.
value:: array
배열 파라미터의 값들입니다. 문자열 타입 배열들의 경우 공간 절약을 위해 값들을 바로 뒤에 저장합니다. (예: "alpha\0beta\0gamma\0")

 

설명

이 structure는 라이브러리 파트에 대한 추가 파라미터들을 설명합니다. 또한 라이브러리 파트 기반 요소(객체, 창, 문 등)와 속성 타입(Zone 카테고리)에 대해서도 사용합니다.

배열 수식어를 가진 파라미터들에 대해서 당신은 요소를 생성하거나 변경할 때 즉시 배열의 차원들을 변경할 수 있습니다. 이렇게 하면 배열에 대하여 일단 placeholder를 라이브러리 파트 파라미터에 넣어두고 나서 당신이 실제로 라이브러리 파트를 배치할 때 조정할 수 있습니다.

(API 1.3에 존재했던) 값 리스트 타입 수식어는 사라졌습니다. 왜냐하면 값 리스트 스크립트가 소멸되었기 때문입니다; API 2.1에서 라이브러리 파트의 파라미터 스크립트를 기반으로 하는 새로운 접근 방식이 도입되었습니다.

파라미터 리스트에 있는 파라미터를 변경하기 위해 APIAny_OpenParametersID, APIAny_ChangeAParameterID, APIAny_GetActParametersID, APIAny_CloseParametersID 함수들을 사용하는 것을 적극 권장합니다.

 

예제

static void   DumpOneParam (API_AddParID      typeID,
                            const char        *varname,
                            unsigned short    flags,
                            double            value,
                            const GS::uchar_t *valueStr,
                            Int32             dim1,
                            Int32             dim2)

{
    char        head[256], val[256];

    if (dim1 == 0 && dim2 == 0)
        sprintf (head, "    %s 0x%02X", varname, flags);
    else {
        if (dim1 < 0) {
            sprintf (head, "    %s: [%d][%d] 0x%02X", varname, -dim1, -dim2, flags);
            ACAPI_WriteReport (head, false);
            return;
        }
        sprintf (head, "       [%d][%d]", dim1, dim2);
    }

    switch (typeID) {
        case APIParT_Integer:
        case APIParT_LightSw:
        case APIParT_Intens:
        case APIParT_LineTyp:
        case APIParT_Mater:
        case APIParT_FillPat:
        case APIParT_PenCol:
        case APIParT_Boolean:
                    sprintf (val, "%d", (Int32) value);
                    break;

        case APIParT_Length:
        case APIParT_Angle:
        case APIParT_RealNum:
        case APIParT_ColRGB:
                    sprintf (val, "%f", value);
                    break;

        case APIParT_CString:
        case APIParT_Title:
                    sprintf (val, "\"%s\"", (const char *) GS::UniString (valueStr).ToCStr ());
                    break;

        case APIParT_Separator:
                    CHCopyC ("-------------------", val);
                    break;

        default:
                    CHCopyC ("???????", val);
                    break;
    }

    GiveMessage_Str (head, val, false);

    return;
}

이 예제에 대하여 컨트롤 프레임을 가져오기 위해 ACAPI_LibPart_GetParams 함수의 예제를 보십시오.

 

요구사항

버전: API 1.3 또는 이후
헤더: APIdefs_LibraryParts.h

 

참고사항

API_AddParID, API_AttributeDef, API_ElementMemo,
ACAPI_LibPart_GetParams, APIAny_OpenParametersID, APIAny_ChangeAParameterID, APIAny_GetActParametersID, APIAny_CloseParametersID,
API 타입