Graphisoft®

API Development KitVersion: 18

ACAPI_Element_Create

현재 데이터베이스에 새로운 요소를 배치합니다.

    GSErrCode  ACAPI_Element_Create (
        API_Element*         element,
        API_ElementMemo*     memo
    );

 

파라미터

element
[in/out] 가라키는 structure 안에 원하는 요소가 생성됩니다. element->header.typeID는 반드시 생성하고자 하는 요소의 타입을 지정해야 합니다.
memo
[in] 원하는 요소의 memo 필드가 가리키는 structure로부터 생성됩니다. (만약 memo 필드가 필요한 경우)

 

리턴 값

NoError
함수가 성공적으로 완료되었습니다.
APIERR_BADDATABASE
현재 데이터베이스가 동작에 적합하지 않습니다.
APIERR_BADPARS
넘겨진 파라미터가 NULL; element입니다.
APIERR_BADID
요소 타입이 유효하지 않습니다. 또는
요소 타입을 서버 애플리케이션에서 지원하지 않습니다
APIERR_REFUSEDPAR
element->header.typeID 파라미터가 올바르지 않습니다. 예를 들면 Section 창에서의 벽처럼 표시할 수 없는 창에 무언가를 작성하려면 이 오류가 발생할 수 있습니다.
APIERR_INVALFLOOR
element->header.floorInd 파라미터가 범위 밖입니다.
APIERR_IRREGULARPOLY
입력 폴리곤 또는 폴리라인이 비정상입니다.
 

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

 

설명

생성될 요소의 타입은 요소 헤더 안의 typeID에 의해 정의됩니다. 리턴할 때, 헤더의 guid 필드가 채워집니다. 작업을 마친 후 핸들들을 처분하기 위해 ACAPI_DisposeElemMemoHdls를 호출하는 것을 잊지 마십시오.

서로 다른 파라미터들의 의미는 아래 표에 설명되어 있습니다:

element->header.typeID

memo 필드

API_WallID

선택/필수

gables는 선택입니다. coords, pends, parcs는 타입 APIWtyp_Poly의 벽들에 대해서만 필수입니다. (폴리곤-기반 벽)

API_ColumnID

선택 (gables)

 

API_BeamID

선택 (gables, beam holes)

 

API_WindowID
API_DoorID

필수 (params)

ACAPI_Element_CreateExt도 보십시오.

API_SkylightID Featuring API 15

필수 (params)

ACAPI_Element_CreateExt도 보십시오.

API_ObjectID
API_LampID

필수

 

API_SlabID

필수/선택

슬래브 폴리곤은 필수입니다; edgeTrimssideMaterials는 선택입니다.

API_RoofID

필수/선택

지붕 폴리곤은 필수입니다; edgeTrims, roofEdgeTypes, sideMaterials는 선택입니다.
Featuring API 15 게다가 Multi-plane 지붕들에 대한 이 파라미터들 pivotPolyCoords, pivotPolyPends, pivotPolyParcs 역시 필수입니다; pivotPolyEdges는 선택입니다.

API_MeshID

필수/선택

메시 폴리곤은 필수입니다. meshPolyZ (메시 포인트들의 Z 좌표), meshLevelCoords (레벨 라인 좌표들), meshLevelEnds (레벨 라인의 끝점들) 필드들은 선택입니다.

API_ShellID Featuring API 15

필수/선택

셸 모양 데이터는 필수입니다. (extrudedrevolved shells에 대한 shellShapes의 1번째 레코드, ruled shells에 대한 양쪽 레코드들; shellContours는 선택입니다.

API_MorphID Featuring API 16

필수/선택

morphBody 필수는 필수입니다. 그리고 morphMaterialMapTable 필드는 선택입니다.

API_DimensionID

필수 (dimension data)

 

API_RadialDimensionID
API_AngleDimensionID

 

 

API_LevelDimensionID

 

만약 ceilNum0으로 세트되어 있으면, 레벨 dimension의 참조는 floor입니다. 그렇지 않으면 주어진 ceiling입니다.

API_TextID

필수 (content)

멀티스타일 내용에 대하여 선택적 (paragraphs)

 

API_LabelID

텍스트 라벨에 대하여 선택적 (content)

멀티스타일 내용에 대하여 선택적 (paragraphs)

심볼 라벨에 대하여 필수 (parameters)

자동 라벨링의 경우, 만약 parentTypeAPI_WallID, API_ColumnID, API_BeamID, API_WindowID, API_DoorID, API_ObjectID, API_LampID, API_SlabID, API_RoofID, API_MeshID, 또는 API_HatchID라면, 요소에 라벨이 붙습니다. 그 외에는 분리된 라벨이 생성됩니다.

API_ZoneID

필수 (polygon 및 parameters)

 

API_HatchID

필수 (fill polygon)

만약 hatchGlobal 필드가 false로 세트되어 있으면 (fill이 요소에 링크됨), refPos, refAngle 필드들은 방향 계산에 사용됩니다. 그 외에는 글로벌 원점이 사용됩니다. 만약 showArea 필드가 true로 세트되어 있으면, note, noteC 필드들은 영역의 외형에 대해 사용됩니다. 그 외에는 이 필드들을 무시합니다.

API_LineID
API_ArcID
API_CircleID

 

 

API_PolyLineID

필수 (polygon)

 

API_SplineID

필수/선택

커브 점 좌표들은 필수입니다. 만약 bezierDirs 필드가 NULL이면 (autoSmoothtrue), direction 파라미터들은 처음 2개의 점들의 상대 위치를 통해 자동으로 계산됩니다. (이 경우 autoSmooth 필드는 반드시 true로 세트되어야 합니다)

API_HotspotID

 

 

API_PictureID

필수 (picture content)

 

API_DrawingID

선택 (polygon, drawing data)

 

API_CutPlaneID

필수

cutplane 좌표들은 필수입니다.
ACAPI_Element_CreateExt도 보십시오.

API_ChangeMarkerID

선택 (polygon)

ACAPI_Element_CreateExt도 보십시오.

API_DetailID
API_WorksheetID

optional (polygon)

ACAPI_Element_CreateExt도 보십시오.

API_CameraID

선택 (linklist)

파노라마 카메라들에 대해서만 선택적

API_CamSetID

 

 

API_SectElemID

 

이 요소의 타입은 생성될 수 없습니다.

요소들에 대한 생성 프로세스는 ArchiCAD에서 그래픽으로 요소를 작성하는 데 사용하는 프로세스와 동일한 프로세스를 따릅니다. 이것은 예를 들면, 창과 문 등을 위한 벽을 만들어야 한다는 것을 의미합니다. API는 항상 필요한 정보의 존재를 확인하고, 뭔가 누락된 경우 오류 코드로 반환합니다.

생성된 요소는 라이브러리 파트의 2D 바이너리 섹션으로 리디렉션 될 수 있습니다. 자세한 내용은 ACAPI_LibPart_SetUpSect_2DDrawHdl 함수를 참조하십시오. 이 경우, 어떤 인덱스, guid들이 생성되었는지에 대한 정보가 리턴되지 않습니다. 이 환경에서는 2D 도면 요소들만 생성할 수 있습니다.

요소는 또한 클리핑 영역에 의해 클리핑될 수 있습니다. 자세한 내용은 APIDb_StartClippingSessionID 함수를 참조하십시오. 이 경우 어떤 인덱스, guid들이 생성되었는지에 대한 정보가 리턴되지 않습니다. 그래서 더 많은 parts가 생성될 수 있습니다.

 

요구사항

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

 

참고사항

API_Element, API_ElementMemo, ACAPI_Element_CreateExt
ACAPI_LibPart_SetUpSect_2DDrawHdl, APIDb_StartClippingSessionID, ACAPI_DisposeElemMemoHdls
요소 관리자, API 함수