ArchiCAD 18의 새로운 기능
이 개요는 ArchiCAD 18에서 사용할 수 있는 API의 주요 새로운 기능과 변경 사항을 요약합니다. ().
-
환경적 변화
- 인덱스-기반 식별이 사라졌습니다. 당신은 GUID를 사용해야 합니다; 우리는 당신에게 경고했습니다. 😉
다음 함수들 역시 API에서 제거되었습니다:
- ACAPI_Element_GetNum
- ACAPI_Element_Filter_Index
- ACAPI_Element_GetMemo_Index
다음 함수/structure들이 변경되었습니다:
- API_3DProjectionInfo
- API_Base
- API_CameraType
- API_Elem_Head
- API_InteriorElevationType
- API_LevelDimensionType
- API_ParamOwnerType
- API_PerspCamPars
- API_PrimElemRef
- APIAny_SearchElementByCoordID
- APIDb_RoomReductionsID
다음 함수들이 도중에 제거되었습니다:
- APIDb_GuidToElemHeadID
- APIDb_InitGuidTableID
- APIDb_SearchGuidID
- APIDb_DisposeGuidTableID
- 데이터베이스 식별 역시 GUID-기반입니다.
다음 structure가 변경되었습니다:
전환할 수 있도록 돕기 위해 다음 함수들이 추가되었습니다:
- 그룹은 더 이상 API_Element가 아닙니다.
그룹화를 용이하게 하기 위해 분리된 함수 집합을 만들었습니다:
- ACAPI_ElementGroup_Create
- ACAPI_ElementGroup_GetGroup
- ACAPI_ElementGroup_GetRootGroup
- ACAPI_ElementGroup_GetGroupedElems
- ACAPI_ElementGroup_GetAllGroupedElems
- ACAPI_ElementGroup_GetUserData
- ACAPI_ElementGroup_SetUserData
API_GroupID 역시 은퇴했습니다; 옛날 파일에서 가져온 요소 타입 ID가 있는 경우 이 ID를 확인할 수 있도록 보관하고 있습니다. API_ElementMemo에서 API_GroupType, API_GroupHead, API_GroupTrafo, groupData 역시 도중에 지웠습니다.
- (PICT와 같은) 레거시 이미지 타입들은 더 이상 다루지 않습니다.
API_PictureFormat API_FTypeID
- 마스터 레이아웃에 배치되는 라이브러리 파트들은 레이아웃의 컨텍스트를 사용할 수도 있습니다.
API_LayoutPrefs, API_LayoutInfo
- Revision 관리
- API_LayoutBook,
- API_LayoutInfo,
- API_ChangeMarkerType,
- API_RVMChange,
- API_RVMDocumentRevision,
- API_RVMIssue,
- API_RVMLayoutInfo,
- APIAny_SetMasterLayoutOnLayoutID,
- APIDb_GetLayoutBookID,
- APIDb_GetRVMChangesID,
- APIDb_GetRVMChangeCustomSchemeID,
- APIDb_GetRVMIssuesID,
- APIDb_ChangeRVMIssueID,
- APIDb_GetRVMIssueCustomSchemeID,
- APIDb_GetRVMDocumentRevisionsID,
- APIDb_GetRVMChangesFromChangeIdsID,
- APIDb_GetRVMLayoutCurrentRevisionChangesID,
- APIDb_GetRVMIssueDocumentRevisionsID,
- APIDb_GetRVMDocumentRevisionChangesID,
- APIDb_GetRVMElemChangeIdsID,
- APIDb_GetRVMChangeFirstIssueID
- LightWorks 대신 Cinema4D 렌더링 엔진
API_RendEffects, API_RendImage
- 숫자 배열들에 대한 값 설명
API_AddParType, API_ChangeParamType, API_VLNumType
- ArchiCAD 18 범위 안에서 보호 안에 있는 향후 변화
- 2014년 4분기에는 소프트 보호 방식을 도입할 것이며, 그 보호 체계에는 고정 일련 번호(API_ProtectionInfo 안의 keySerialNumber)가 없으며, GS 서버에 대한 액세스가 필요하기 때문에 소프트 보호 키의 고유 식별자에 액세스할 수 없을 것입니다.
- 2015년 1분기부터는 오래된 WIBU 키를 CodeMeter 키로 대체하기 시작할 것입니다. ArchiCAD 19는 더 이상 '녹색' WIBU 키를 지원하지 않습니다.
- 인덱스-기반 식별이 사라졌습니다. 당신은 GUID를 사용해야 합니다; 우리는 당신에게 경고했습니다. 😉
-
기술적 변화
- Unicode로의 이동
- OS X 시스템 요구사항이 바뀌었습니다; OS X 10.7 및 상위 버전을 지원합니다.
당신의 Xcode 프로젝트 안에 적절한 배치 대상들을 설정하시기 바랍니다.
- 권장 Xcode 버전은 현재 5.x (이로 인해 GDB 지원은 감소하지만, 변수들에 대한 QuickLook 기능이 있습니다) 또는 4.6.x입니다.
- Mac에서 C++11을 지원합니다; Visual Studio 2010 컴파일러는 특별한 셋팅을 요구하지 않습니다. (새로운 기능에 대한 지원은 제한되어 있지만)
확인해야 할 기능들은 다음과 같습니다:
auto
키워드nullptr
override
키워드static_assert
- lambda 표현식 (GSRoot에서도 가능)
- 생성자, 할당 연산자들을 이동시킴 (GSRoot 컨테이너와 InputOutput 안에도 마찬가지!)
- Mac에서 새로운 문자열 리소스 포맷:
이제 문자열 리소스는 Mac 표준 Localizable.strings 파일에서 로드됩니다. 이 파일은 RO 폴더의 ResConv에서 만든 개별 .strings 파일에서 애드온의 Resources 폴더 내부의 적절한 .lproj 폴더로 병합해야 합니다. 이 파일에는 키/값 쌍이 있으며, 키에는 3개의 부분이 있습니다. (resourceType.resourceID.itemID) 그리고 값은 (지역화된) 문자열입니다. 예를 들면:
"utx#.32000.1" = "Element Information" ;
참고: 리로스와 항목 ID들은 반드시 숫자이어야 합니다!
ResConv 파라미터화에 대한 정보는 리소스 컴파일러 설명 안에 있습니다.
- 리소스 체인이 사라졌습니다. (ACAPI_UseOwnResModule()와 ACAPI_ResetResModule() 또한 사라졌습니다)
OS X는 내부적으로 리소스 체인이라고 불리는 오픈 리소스 파일 스택을 유지했습니다. 리소스를 로드할 때마다 시스템은 현재 스택 아래의 열린 리소스 파일에서 리소스를 찾기 위해 이 스택에서 아래쪽으로 검색합니다. 우리는 그 암묵적인 메커니즘을 제거했습니다; 자원 모듈을 명시적으로 지정할 때마다 당신은 각각 지정해야 합니다. (보통 ACAPI_GetOwnResModule()과 함께)
-
변경된/새로운 structure
- API_AddParType
- API_BuildingMaterialType
- API_ChangeParamType
- API_ChangeParamType
- API_DrawingType
- API_Element
- API_ElemTypeID
- API_FTypeID
- API_GetPointType
- API_LayoutBook
- API_LibPartDetails
- API_MorphType
- API_NavigatorItem
- API_Neig
- API_NeigID
- API_PetPaletteType
- API_ProtectionInfo
- API_RendEffects
- API_RendImage
- API_SectionSegment
- API_ServerApplicationInfo
- API_ShapePrimsParams
- API_UserData
- API_VLNumType
- API_ConstructionPrefs
API_LegacyPrefs
- API_LibrariesInfo
API_LibraryInfo
-
변경된/새로운 함수
- ACAPI_Element_GetElemListByIFCIdentifier
- ACAPI_Element_GetIFCIdentifier
- APIAny_APIGuidToIFCGuidID
- APIAny_IFCGuidToAPIGuidID
- ACAPI_Element_Merge_Elements
- ACAPI_Element_Merge_GetMergedElements
- ACAPI_Element_Merge_Remove
- ACAPI_Element_GetHotspots
- ACAPI_LibPart_RegisterAll
- ACAPI_Selection_Get
- ACAPI_TeamworkControl_GetHotlinkCacheManagementOwner
- ACAPI_TeamworkControl_ReleaseHotlinkCacheManagement
- ACAPI_TeamworkControl_ReserveHotlinkCacheManagement
- APIAny_ElemHasVisibleSkinID
- APIAny_GetSkylightHolePoly2DDataID
APIAny_GetSkylightHolePolygonID
- APIDb_GetHotLinkOwnerID
- APIDb_GetLayoutBookID
- APIDo_LoadLibrariesID
- APIEnv_ChangeNavigatorItemID
- APIEnv_GetLibrariesID
- APIEnv_GetRenderingSceneNamesID
- APIEnv_GetRenderingSetsID
- APIEnv_SetCurrentRenderingSceneID
- APIEnv_SetLibrariesID
- APIFilt_IsInStructureDisplay
- ACAPI_Element_Delete는 다량의 요소들에 대해 훨씬 빨라야 합니다
참고: 이전 ArchiCAD 버전에서의 새로운 API 기능 목록도 확인해 보시기 바랍니다.