Graphisoft®

API Development KitVersion: 18

APIIo_ObjectSettingsID

Object/Lamp(/Window/Door) Settings 다이얼로그를 엽니다.

    GSErrCode ACAPI_Interface (
        APIIo_ObjectSettingsID,
        API_ObjectSettingsPars*     objectSettingsPars
    );

 

파라미터

objectSettingsPars
[in/out] 다이얼로그를 열기 위한 파라미터들입니다. 리턴시 선택한 객체도 포함합니다.

 

리턴 값

NoError
함수가 성공적으로 완료되었습니다.
APIERR_BADPARS
objectSettingsParsNULL입니다.
APIERR_BADID
objectSettingsPars가 유효하지 않은 데이터를 포함하고 있습니다.

다른 공통 API 오류들에 대해서는 API 오류 문서를 보십시오.

 

설명

Settings 다이얼로그는 주어진 서브타입을 가진 라이브러리 파트들만 보여줄 수도 있습니다. 기본 라이브러리 파트의 라이브러리 인덱스 역시 이 함수에 전달될 수 있습니다.

이것은 Settings 다이얼로그에 파라미터 집합과 선택한 라이브러리 파트의 추가 파라미터들도 리턴합니다.

만약 subtypeID가 빈 문자열이면, 서브타입이 필터 역항를 하는 도구를 식별하기 위해 전달된 typeIDvariationID를 사용할 것입니다.

만약 libIndex가 0이면(즉, 적절한 라이브러리 항목을 찾기 위해 사용된 ACAPI_LibPart_Search가 없을 경우), 이 함수는 로드된 라이브러리들 중에서 전달된 subTypeID (또는 typeIDvariationID)와 일치하는 1번째 항목을 찾으려고 시도합니다.

6.1  만약 Listing and Labeling 페이지에서 사용자가 연관된 라벨 옵션을 체크했다면, 리턴시 elemDeflabelInd 파라미터가 APIAutoLabel로 세트됩니다. 이 경우, ACAPI_Element_Create로 새로운 요소를 생성할 때 라벨이 자동으로 부착될 것입니다.

6.1  Listing and Labeling 페이지에서 지정한 링크된 프로퍼티들의 정보는 propIndivLibIndpropCriteria 필드들 안에 리턴됩니다. 이러한 프로퍼티들은 Object Settings 다이얼로그를 호출한 후에 생성할 요소에 링크되어야 합니다. (ACAPI_Element_SetLinkedProperties를 보십시오)

 

예제

void SelectObject (void)
{
    GSErrCode    err = NoError;
    API_ObjectSettingsPars api_objSetPars;

    BNZeroMemory (&api_objSetPars, sizeof (API_ObjectSettingsPars));

    api_objSetPars.elemDef.object.head.typeID = API_ObjectID;    // 이것은 API에게 불러올 다이얼로그를 알려줍니다.
    CHCopyC ("{D65FA25D-A6D4-48A4-BD9B-2DFE16D58297}-{0D053320-4961-4B12-A2C3-BEA101B0E56F}", api_objSetPars.subtypeID);    // Gas Supply Terminal 서브타입의 GUID
    // 적절한 서브타입을 여기에 복사해야 합니다; 필터링에 사용될 것입니다.

    err = ACAPI_Interface (APIIo_ObjectSettingsID, &api_objSetPars, NULL);
    if (err == NoError) {
        char msgStr[256];
        sprintf (msgStr, "Object #%d was selected!", api_objSetPars.elemDef.object.libInd);
        ACAPI_WriteReport (msgStr, true);

        // 객체 요소 하나를 생성함
        {
            API_Element     element;
            API_ElementMemo memo;
            BNZeroMemory (&element, sizeof (API_Element));
            BNZeroMemory (&memo, sizeof (API_ElementMemo));

            element.object = api_objSetPars.elemDef.object;
            element.object.pos.x = ...x...;
            element.object.pos.y = ...y...;
            element.header.floorInd = ...story...;
            memo.params = api_objSetPars.addPars;

            ACAPI_OpenUndoableSession ("...");
            err = ACAPI_Element_Create (&element, &memo);
            if (err == NoError)
                err = ACAPI_Element_SetLinkedProperties (&element.header, api_objSetPars.propCriteria, api_objSetPars.propIndivLibInd);

            ACAPI_CloseUndoableSession ();
        }
    }

    if (api_objSetPars.addPars != NULL)
        ACAPI_DisposeAddParHdl (&api_objSetPars.addPars);    // 핸들을 폐기하는 것을 잊지 마십시오.

    return;
}

 

요구사항

버전: API 4.1 또는 이후
헤더: APIdefs_Interface.h

 

참고사항

API_ObjectSettingsPars
ACAPI_Interface
API 함수