애드온 개발
ArchiCAD 9 및 API v6.1부터 Graphisoft는 몇 가지 새로운 서드파티 정책 이슈들을 발표했습니다. 그것들은 다음과 같습니다:
- 평가를 위한 API는 무료로 만들었습니다. 하지만
- 등록된 개발자들만 상업용 제품들을 만들 수 있게 됩니다.
이 페이퍼에서 당신은 어떻게 위의 목표들이 대상이 되었는지 그 정보를 알게 될 것입니다.
애드온의 인증
그 해결책은 ArchiCAD 7.0부터 모든 애드온은 고유의 ID를 갖고 있다는 결정을 기반으로 하고 있습니다. 이 경우, 상업용 ArchiCAD 버전에서 해당 ID가 유효하지 않음을 발견하면 애드온이 로드되지 않게 됩니다. 만약 2개의 애드온이 동일한 ID를 갖고 있으면 ArchiCAD는 둘 다 거부하게 됩니다.
유효한 ID는 등록된 개발자들만 생성할 수 있습니다. 유효하지 않은 ID는 ArchiCAD DEMO 버전에서만 받아들여집니다.
어떻게 Graphisoft는 그 ID들이 정말로 '유일한' 것인지 확인할 수 있을까요?
유일한 ID
ArchiCAD 9을 위해 만들어진 모든 애드온들은 필수 'MDID' 리소스를 갖고 있어야 합니다. 이 리소스는 유일한 ID이며 정확히 8바이트 길이여야 합니다. 구체적으로 각각 4바이트인 2개의 식별 코드로 이루어져 있습니다.
처음 식별 코드는 개발자 ID입니다. 이것은 애드온을 만든 개발자를 식별합니다. 이 코드는 성공적으로 등록한 경우 Graphisoft에 의해 만들어지고 주어집니다. 등록된 개발자 지위를 얻으려면, 개발자들은 반드시 필수 조건들을 인정하고 충족시켜야 합니다. 개발자 ID에 동봉된 인증 키가 주어집니다.
둘째 식별 코드는 로컬 ID입니다. 이것은 애드온 자체를 식별합니다. 유효한 로컬 ID들은 AddOnAdmin 도구를 이용해 개발자 ID와 인증 키로부터 계산됩니다.
도구
도구는 2가지 파트로 이루어져 있습니다: 관리(administration)와 검증(validation) 파트
관리(administration) 파트에서는 당신이 만든 애드온을 계속 추적할 수 있습니다. 이것은 개발자가 애드온이 그룹들로 정렬된 데이터베이스를 설정할 수 있으며 각 항목은 특수 정보를 담을 수 있음을 의미합니다. 가장 중요한 정보는 생성된 로컬 ID입니다. 이것은 새로운 애드온이 기록될 때 자동으로 적용됩니다.
당신은 완료된 애드온을 분석하기 위해 도구의 검증 파트를 사용할 수 있습니다. 내장된 알고리즘은 API가 설정한 대부분의 요구사항을 확인합니다; 물론 외부 도구로 검증할 수 있는 부분만 확인합니다.
관리(Administration)
처음 이 도구를 사용하게 되면 New database 버튼을 눌러 데이터베이스 파일을 만들어야 합니다. 그 후엔 개발자 ID를 입력하고 데이터베이스에 이름을 부여해야 합니다. 데이터베이스는 XML 포맷으로 기록됩니다. 그래서 인터넷 브라우저 및 텍스트 에디터로 직접 읽을 수도 있습니다.
주의하십시오. 왜냐하면 이 도구는 입력한 개발자 ID 또는 인증 키의 유효성을 검사하지 않기 때문입니다. 당신이 어느 하나라도 잘못 입력한 경우 생성된 로컬 ID는 ArchiCAD가 거부할 것입니다.
새로운 데이터베이스를 선택하게 되면 당신은 몇 가지 선택지를 갖게 될 것입니다. 데이터베이스에 새로운 애드온을 추가하려면 New Addon 버튼을 누르십시오. 인증 키가 입력된 후에 로컬 ID가 자동으로 생성되고 새로 생성된 레코드가 할당됩니다. 보안을 위해 인증 키를 데이터베이스 파일 안에 저장하지 않는다는 것을 알아두시면 좋겠습니다. 그래서 데이터베이스에 새로운 애드온을 추가할 때마다 인증 키를 입력하셔야 합니다.
이름이 "New Addon"인 애드온은 항상 "Unnamed" 그룹으로 들어가게 됩니다. 그러면 자동으로 선택되고 해당 이름은 편집할 수 있도록 지정됩니다. 어떤 속성을 변경하기 위해서는 애드온을 반드시 선택해야 합니다. 그 뒤에는 이름을 변경하기 위해 클릭하거나 Move To Group... 버튼을 클릭할 수 있습니다. 또한 컨텍스트 메뉴로부터 이러한 옵션들을 활성화할 수 있습니다.
참고로 새로운 - 그래서 비어 있는 - 그룹들은 직접 생성될 수 없습니다. 대신, 기존 그룹에 새로운 애드온을 추가하고 나서 그것을 선택하고 Move To Group... 버튼을 클릭합니다. 여기서 당신은 리스트로부터 New Group... 항목을 선택할 수 있습니다. 새로운 그룹이 생성됩니다. 물론 나중에 이름을 바꿀 수 있습니다. 단지 그룹을 선택하고 이름을 바꾸기 위해 클릭합니다.
고급 주제
기본적으로 데이터베이스 레코드는 다음 정보들을 가지고 있습니다:
- 애드온의 이름,
- 레코드의 생성 시간,
- 최근 수정 시간
ID를 유지하고 관리하기 위해 이 프로그램이 필요하므로 기본 레코드를 사용자 지정 필드로 확장할 가능성이 있으므로 당신은 데이터를 하나의 데이터베이스에 보관할 수 있습니다. (예 : 프로그래머, 관리자, 상태 필드를 삽입할 수 있습니다)
데이터베이스 레코드를 확장하려면 데이터베이스를 선택하고 Customize Fields 버튼을 누릅니다. 올라오는 대화상자에서 Add 버튼을 눌러 "NewField" 항목을 얻습니다. 항목을 클릭하여 원하는 항목으로 이름을 바꿀 수 있습니다; 이름은 문자로 시작해야 하며 다른 모든 문자는 영/숫자이며 최대 64 글자까지 가능합니다. 기본 콘텐츠가 있는 모든 기존 데이터베이스 레코드에 새 필드가 삽입됩니다. 삭제된 필드는 모든 레코드에서 제거됩니다. 해당 데이터베이스 레코드를 선택하고 항목을 클릭하여 모든 데이터를 편집할 수 있습니다.
일관성을 위해 주어진 개발자 ID에 대해 하나의 데이터베이스만 설정해야 합니다. 알고리즘은 하나의 개발자 ID에 대해 최대 128개의 유효한 로컬 ID를 생성할 수 있습니다. 삭제된 모든 애드온, 로컬 ID는 데이터베이스에서 추적되므로 동일한 고유 ID를 두 번 사용할 수 있는 방법이 없습니다. 같은 ID를 두 번 이상 사용하지 않는 것은 당신의 책임입니다.
만약 로컬 ID가 고갈되면 새로운 개발자 ID를 부여 받아야 합니다.
커스텀 필드가 포함된 데이터베이스를 설정한 경우 New Database 커맨드 대신 Use As Template을 클릭합니다. 이렇게 하면 빈 데이터베이스가 만들어지고 열리지만, 커스텀 레코드가 있습니다.
물론 여러 개의 데이터베이스를 동시에 열 수 있습니다.
데이터베이스를 간단한 양식으로 저장해야 할 경우 - 데이터베이스를 선택하고 Save Database As 버튼을 클릭하고 원하는 형식을 선택합니다. 옵션은 다음과 같습니다:
- "Text (tab delimited)"
- "CSV (comma delimited)"
- "H (C/C++ Header file)"
마지막 것은 선택된 데이터베이스의 개발자 ID와 사용된 로컬 ID를 C 헤더 파일로 저장하는 데 사용될 수 있습니다. 그 다음 이 헤더 파일은 정이를 가져오기 위해 소스 또는 리소스 파일에 포함시킬 수 있습니다. 개발자 ID는 대문자로 지정된 헤더 파일의 이름을 사용하여 내보냅니다. 로컬 ID는 "_"로 연결된 애드온의 이름이 추가된 동일한 이름으로 상속합니다.