Graphisoft®

API Development KitVersion: 18

ACAPI_Element_GetMemo

요소들에게 부착된 모든 추가 정보를 가져옵니다.

    GSErrCode  ACAPI_Element_GetMemo (
        const API_Guid&      guid,
        API_ElementMemo*     memo,
        UInt32               mask = APIMemoMask_All
    );

 

파라미터

guid 12
[in] 요소의 Guid입니다.
memo
[out] 채워질 메모에 대한 포인터입니다.
mask 12
[in] 당신이 관심을 갖고 있는 메모의 파트를 지정합니다.

 

리턴 값

NoError
함수가 성공적으로 완료되었습니다.
APIERR_BADPARS
전달된 memo 파라미터가 NULL입니다.
APIERR_BADID
요소 타입이 유효하지 않습니다. 또는
요소 타입이 서버 애플리케이션에서 지원하지 않습니다
APIERR_BADID
요소 guid가 유효하지 않습니다.
APIERR_DELETED
요소가 데이터베이스에 존재하지 않습니다.
APIERR_MEMFULL
동작을 완료하기 위한 메모리가 부족합니다

다른 공통 API 오류들의 경우 API 오류 문서를 보십시오.

 

설명

이 함수는 요소들에게 부착되어 있는 추가 정보를 리턴합니다. 이것은 모든 도면(2D) 요소들에게 적용되지 않습니다; 당신은 요소 헤더의 hasMemo 필드를 확인할 수 있습니다.

다음 표는 요소들이 부착된 추가 데이터를 가질 수 있는져 여부를 보여줍니다; 또한 API_ElementMemo에 리턴되는 정보가 무엇인지 설명합니다.

파라미터

함수 ()

API_WallID

(API_Gable **) gables
(API_Coord **) coords
(Int32 **) pends
(API_PolyArc **) parcs
(UInt32 **) vertexIDs
(GSHandle) customOrigProfile Featuring API 10
(GSHandle) stretchedProfile Featuring API 10

복잡한 횡단면 프로파일5의 gable 데이터1과 폴리곤 데이터2와 벡터 이미지 데이터를 리턴합니다.

API_ColumnID

(API_Gable **) gables
(GSHandle) customOrigProfile Featuring API 10
(GSHandle) stretchedProfile Featuring API 10

복잡한 횡단면 프로파일5의 gable 데이터1와 벡터 이미지 데이터를 리턴합니다.

API_BeamID

(API_Gable **) gables
(GSHandle) customOrigProfile Featuring API 10
(GSHandle) stretchedProfile Featuring API 10

복잡한 횡단면 프로파일5의 gable 데이터1와 벡터 이미지 데이터를 리턴합니다.

API_WindowID
API_DoorID
API_ObjectID
API_LampID

(API_Gable **) gables
(API_AddParType **) params

라이브러리 파트4의 인스턴스의 gable 데이터1와 파라미터들을 리턴합니다.

API_SkylightID Featuring API 15

(API_AddParType **) params

라이브러리 파트4의 인스턴스의 파라미터들을 리턴합니다.

API_SlabID

(API_Coord **) coords
(Int32 **) pends
(API_PolyArc **) parcs
(UInt32 **) vertexIDs
(API_EdgeTrim **) edgeTrims
(API_MaterialOverrideType *) sideMaterials Featuring API 17

슬래브의 폴리곤2, edge trim 데이터3, 측면 재질6을 리턴합니다.

API_RoofID

(API_Coord **) coords
(Int32 **) pends
(API_PolyArc **) parcs
(UInt32 **) vertexIDs
(API_EdgeTrim **) edgeTrims
(API_RoofEdgeTypeID *) roofEdgeTypes
(API_MaterialOverrideType *) sideMaterials Featuring API 17
(API_Coord **) pivotPolyCoords
(Int32 **) pivotPolyPends
(API_PolyArc **) pivotPolyParcs
(UInt32 ** *) pivotPolyVertexIDs
(API_PivotPolyEdgeData *) pivotPolyEdges

  • API_PlaneRoofID: 지붕의 폴리곤2, edge trim 데이터3, 측면 재질6을 리턴합니다.
  • API_PolyRoofID: 지붕의 외곽 및 피봇 폴리곤2, edge trim 데이터3, 측면 재질6, 피봇 폴리곤 edge의 데이터7를 리턴합니다.  Featuring API 15

API_MeshID

(API_Coord **) coords
(Int32 **) pends
(API_PolyArc **) parcs
(UInt32 **) vertexIDs
(double **) meshPolyZ
(API_MeshLevelCoord **) meshLevelCoords
(Int32 **) meshLevelEnds

메시(mesh)의 폴리곤2, 레벨 라인들을 리턴합니다.

API_ShellID Featuring API 15

API_ShellShapeData shellShapes[2]
(API_ShellContourData*) shellContours

셸(shell)의 프로파일 도형 폴리곤(들)8과 클리핑 및 구멍 외곽 데이터9를 리턴합니다.

API_MorphID Featuring API 16

(Modeler::Body*) morphBody
(API_MaterialOverrideType*) morphMaterialMapTable Featuring API 17

모프(morph)의 바디와 재질 오버라이드 맵 테이블을 리턴합니다.

API_DimensionID

(API_DimElem **) dimElems

치수(dimension)의 좌표들, neig 정보, 텍스트, witness line 정보를 리턴합니다.

API_LabelID

(char **) textContent
(short **) textLineStarts
(API_ParagraphType **) paragraphs

(API_AddParType **) params

텍스트-타입 라벨에 대한 텍스트와 그것의 스타일, 또는 심볼 라벨에 대한 원본 라이브러리 파트의 파라미터들을 리턴합니다.

API_SplineID

(API_Coord **) coords
(API_SplineDir **) bezierDirs

베지에(Bezier) 곡선 파라미터들을 리턴합니다.

API_TextID

(char **) textContent
(short **) textLineStarts
(API_ParagraphType **) paragraphs

텍스트의 내용, 라인 시작 (textContent로의 오프셋), 스타일 정보를 리턴합니다.

API_HatchID

(API_Coord **) coords
(Int32 **) pends
(API_PolyArc **) parcs
(UInt32 **) vertexIDs

해치(hatch)의 폴리곤을 리턴합니다.

API_ZoneID

(API_Gable **) gables
(API_Coord **) coords
(Int32 **) pends
(API_PolyArc **) parcs
(API_AddParType **) params

룸(room)2의 폴리곤을 리턴합니다.

API_CameraID

(API_LinkType **) linkList

카메라의 데이터를 리턴합니다.

API_CutPlaneID

(API_Coord **) coords

절단면의 좌표들을 리턴합니다.

API_ChangeMarkerID

(API_Coord **) coords
(Int32 **) pends
(API_PolyArc **) parcs

만약 폴리곤을 가지고 있다면 ChangeMarker2의 폴리곤을 리턴합니다.

API_DetailID
API_WorksheetID

(API_Coord **) coords
(Int32 **) pends
(API_PolyArc **) parcs

디테일 또는 워크시트2의 폴리곤을 리턴합니다.

API_PolyLineID

(API_Coord **) coords
(Int32 **) pends
(API_PolyArc **) parcs

폴리라인2의 폴리곤을 리턴합니다.

API_PictureID

(char **) pictHdl

그림을 리턴합니다.

API_DrawingID

(API_Coord **) coords
(Int32 **) pends
(API_PolyArc **) parcs
(GSPtr) drawingData Featuring API 10

도면 요소의 폴리곤과 도면 데이터를 리턴합니다.

API_CurtainWallID 12

(API_Coord **) coords
(Int32 **) pends
(API_PolyArc **) parcs
(UInt32 **) vertexIDs
(API_GridMesh*) cWSegGridMesh
(double*) cWSegPrimaryPattern
(double*) cWSegSecondaryPattern
(GS::Bool8*) cWSegPanelPattern
(API_CWContourType*) cWSegContour
(API_CWallSegmentType*) cWallSegments
(API_CWallFrameType*) cWallFrames
(API_CWallPanelType*) cWallPanels
(API_CWallJunctionType*) cWallJunctions
(API_CWallAccessoryType*) cWallAccessories

폴리곤과 모든 CW 관련 데이터를 리턴합니다.

API_CurtainWallSegmentID 12

(API_GridMesh*) cWSegGridMesh
(double*) cWSegPrimaryPattern
(double*) cWSegSecondaryPattern
(GS::Bool8*) cWSegPanelPattern
(API_CWContourType*) cWSegContour

CW 세그먼트 관련 데이터를 리턴합니다.

1 아무 수의 gable이 존재할 수 있습니다.
2 API_Polygon의 설명을 보십시오.
3 API_EdgeTrim 메모 핸들의 길이는 (poly.nCoords+1)*sizeof(API_EdgeTrim)입니다; 처음 및 마지막 레코드는 사용하지 않고 0으로 채웁니다.
4 요소의 파라미터들은 본래 라이브러리 파트의 파라미터들이며, 이 값들은 실제 인스턴스로부터 가져옵니다.
5 복잡한 프로파일의 드로잉 primitive들은 직렬화된 HGX::VectorImage로 저장합니다.
6 sideMaterials 메모 배열의 길이는 (poly.nCoords+1)*sizeof(API_MaterialOverrideType)입니다; 처음 및 마지막 레코드는 사용하지 않고 0으로 채웁니다.
7 pivotPolyEdges 메모 배열의 길이는 (pivotPolygon.nCoords+1)*sizeof(API_PivotPolyEdgeData)입니다; 처음 및 마지막 레코드는 사용하지 않고 0으로 채웁니다.
8 2개의 API_ShellShapeData 레코드의 고정 크기 배열입니다. API_ShellShapeData의 멤버들은 API_Polygon의 멤버들과 비슷하게 처리됩니다.
9 shellContours 메모 배열의 API_ShellContourData 레코드의 수는 API_ShellType 파라미터들로부터 계산될 수 있습니다: numHoles+(hasContour?1:0)

 

12  성능을 개선하기 위해 당신은 mask 파라미터로 필요한 데이터를 선택할 수 있습니다. 이 기능은 첨부된 데이터에 대한 필터링된 접근을 제공합니다; 이렇게 하면 함수는 부착된 모든 데이터를 변환하는 대신 관심 있는 데이터만 리턴합니다.

mask의 가능한 값은 다음과 같습니다:

Mask 의미
APIMemoMask_Polygon 폴리곤 요소들에 대한 폴리곤을 리턴합니다. 더 많은 정보는 API_Polygon을 보십시오.
APIMemoMask_Gables gable 정보를 리턴합니다.
APIMemoMask_AddPars 라이브러리 파트 기반 요소(객체, 램프, 문, 창, zone stamp, 라벨)의 추가 파라미터들을 리턴합니다.
APIMemoMask_EdgeTrims Featuring API 15 지붕 및 슬래브에 대한 edge trim 정보를 리턴합니다. (APIMemoMask_RoofSide에서 이름이 변경됨)
APIMemoMask_MeshPolyZ 메시(mesh)에 대한 메시 포인트들의 Z 좌표를 리턴합니다.
APIMemoMask_MeshLevel 메시(mesh)에 대한 메시 레벨 정보를 리턴합니다.
APIMemoMask_BeamHole 보에 대한 구멍 정보를 리턴합니다.
APIMemoMask_TextContent 텍스트 요소(텍스트, 라벨)에 대한 내용을 ANSI 문자열로 리턴합니다. (이것이 기본값입니다)
APIMemoMask_Paragraph 텍스트 요소(텍스트, 라벨)에 대한 단락 정보를 리턴합니다. paragraphs 핸들은 바이트 오프셋들을 포함합니다. APIMemoMask_TextContent mask와 함께 사용하십시오. (이것이 기본값입니다)
APIMemoMask_TextContentUni 텍스트 요소(텍스트, 라벨)에 대한 내용을 UniCode 문자열로 리턴합니다. 당신은 textContent 핸들을 unsigned short **로 캐스트해야 합니다.
APIMemoMask_ParagraphUni 텍스트 요소(텍스트, 라벨)에 대한 단락 정보를 리턴합니다. paragraphs 핸들은 문자 오프셋들을 포함합니다. APIMemoMask_TextContentUni mask와 함께 사용하십시오.
APIMemoMask_DrawingData  Featuring API 10 드로잉 요소(API_DrawingType)의 드로잉 데이터를 내부 포맷으로 리턴합니다. APIDb_StopDrawingDataID도 보십시오.
APIMemoMask_CustomOrigProfile  Featuring API 10 벽, 보, 또는 기둥 요소에 적용된 원래의 커스텀 프로파일 데이터를 리턴합니다.
APIMemoMask_StretchedProfile  Featuring API 10 벽, 보, 또는 기둥 요소에 의해 실제로 사용된 스트레치된 프로파일을 리턴합니다.
APIMemoMask_SectionSegments  Featuring API 11 단면, 입면, 또는 실내 입면 요소의 단면 세그먼트를 리턴합니다.
APIMemoMask_SectionLineCoords  Featuring API 11 단면, 입면, 또는 실내 입면 요소의 단면 뷰 라인을 리턴합니다.
APIMemoMask_WallWindows  12 주어진 벽 요소에 배치된 창들의 guid 리스트를 리턴합니다.
APIMemoMask_WallDoors  12 주어진 벽 요소에 배치된 문들의 guid 리스트를 리턴합니다.
APIMemoMask_CWSegGridMesh  12 커튼 월 요소의 GridMesh를 리턴합니다.
APIMemoMask_CWSegPrimaryPattern  12 커튼 월 요소의 1차 패턴을 리턴합니다.
APIMemoMask_CWSegSecPattern  12 커튼 월 요소의 2차 패턴을 리턴합니다.
APIMemoMask_CWSegPanelPattern  12 커튼 월 요소의 패널 패턴을 리턴합니다.
APIMemoMask_CWSegContour  12 커튼 월 요소의 세그먼트 외곽들을 리턴합니다.
APIMemoMask_CWallSegments  12 커튼 월 요소의 세그먼트들을 리턴합니다.
APIMemoMask_CWallFrames  12 커튼 월 요소의 프레임들을 리턴합니다.
APIMemoMask_CWallPanels  12 커튼 월 요소의 패널들을 리턴합니다.
APIMemoMask_CWallJunctions  12 커튼 월 요소의 정션들을 리턴합니다.
APIMemoMask_CWallAccessories  12 커튼 월 요소의 액세서리들을 리턴합니다.
APIMemoMask_FromFloorPlan Featuring API 12 추가 flag입니다; 평면도 데이터베이스로부터 요소 정보를 취합니다. 이 flag는 APIMemoMask_All에서 제외됩니다!
APIMemoMask_RoofEdgeTypes  13 지붕 요소의 외곽 폴리곤의 edge 타입들을 리턴합니다.
APIMemoMask_SideMaterials  13 슬래브 또는 지붕 요소의 측면 재질 인덱스들을 리턴합니다.
APIMemoMask_PivotPolygon  Featuring API 15 Multi-plane 지붕 요소의 피봇 폴리곤과 edge들을 리턴합니다. (API_PolyRoofData를 보십시오)
APIMemoMask_All 요소에 대한 모든 적용 가능한 필드들을 리턴합니다.

당신이 마친 뒤에 핸들을 폐기하기 위해 ACAPI_DisposeElemMemoHdls를 호출하는 것을 잊지 마십시오.

예제

void DoAnything (const API_Guid&)
{
    API_Element      element;
    API_ElementMemo  memo;
    GSErrCode        err;

    BNZeroMemory (&element, sizeof (API_Element));
    element.header.guid = guid;
    err = ACAPI_Element_Get (&element);

    if (err == NoError && element.header.hasMemo) {
        err = ACAPI_Element_GetMemo (element.header.guid, &memo, APIMemoMask_Gables);
        if (err == NoError) {
            /* ... 하고 싶은 작업 ... */
        }
        ACAPI_DisposeElemMemoHdls (&memo);
    }
}

 

요구사항

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

 

참고사항

API_ElemTypeID, API_Polygon, API_ElementMemo
ACAPI_DisposeElemMemoHdls
요소 관리자, API 함수