Graphisoft®

Basic Library Version: 19

LP_XMLConverter 도구의 사용자 문서

목차

  1. 요약
  2. 도구의 파일 포맷
    1. 라이브러리 파트 파일
    2. XML 파일
  3. 파라미터와 실행
    1. 파일 및 디렉토리 트리 변환하기
    2. 라이브러리의 계층 고치기
    3. 전체 라이브러리 만들기
    4. LCF 파일 다루기
    5. 서브셋 라이브러리 만들기
    6. Unicode 파라미터 값 전달하기
  4. 사용 팁
    1. 두 플랫폼에 대한 컴파일
    2. Build-in 이미지 처리하기
    3. 스크립트 섹션 숨기기
    4. 기본값의 지역화
    5. 사용하지 않는 파라미터의 리스팅

1. 요약

LP_XMLCoverter 도구는 주어진 포맷의 XML 파일을 ArchiCAD® 라이브러리 파트로 혹은 그 반대로 컴파일합니다. 이 도구는 Windows와 Macintosh 플랫폼에서 모두 작동합니다. 도구의 사용은 개발 시간에 대하여 크로스-플랫폼 텍스트-기반 포맷의 장점 덕분에 ArchiCAD 라이브러리들의 생성 과정을 용이하게 해줍니다.

2. 도구의 파일 포맷

이 도구는 XML과 라이브러리 파트 파일을 이용하고 생성합니다. 라이브러리 파일은 데이터 손실 없이 하나의 XML 파일로 명확하게 변환될 수 있으며 그 반대로도 가능합니다. (트랜스코딩에 올바른 코드 페이지를 사용할 때, 특수 문자가 손실될 수 있음)

파일 이름은 운영체제의 지역 설정에 설정된 코드 페이지를 준수해야 합니다. 예를 들어, 당신은 Western 코드 페이지에서 Greek 파일명으로 라이브러리를 컴파일 할 수 없습니다.

2.1 라이브러리 파트 파일

생성된 .gsm 파일은 ArchiCAD 라이브러리 파트 파일입니다.

라이브러리 파트 식별

간단히 말해서, 2개의 GUID - 내부적으로 코드화된 긴 숫자 - 객체 파일 이름과 함께 각 객체를 식별합니다. 이 식별자는 라이브러리 파트 ID라고 하며 이것은 객체가 개정되거나 향상됨에 따라 ArchiCAD가 객체의 반복을 추적하는 데 도움을 줍니다. ID는 두 부분으로 구성되어 있습니다: 처음 부분은 Main ID, 두 번째 부분은 Revision ID입니다.

Main ID는 라이브러리 파트가 처음 저장될 때 생성됩니다. 또한 "Save as" 커맨드를 사용하여 다른 라이브러리를 기반으로 새로운 라이브러리 파트가 생성되면 역시 바뀌게 됩니다.

Revision ID 역시 라이브러리 파트를 처음 저장할 때에 생성되지만, "Save" 커맨드를 사용하여 라이브러리 파트를 다시 저장할 때에 변경됩니다. LP_XMLConverter 도구를 이용하여 컴파일하면 Main ID는 건드리지 않고 Revision ID만 바뀌게 됩니다.

이것은 Main ID가 기능 면에서 라이브러리 파트를 인식하고 Revision ID가 객체의 개정본을 구별하는 데 도움을 준다는 것을 의미합니다.

더 많은 정보는 GDL Technical Standards 2장을 참고하시기 바랍니다. (Basic Library Documenation의 파트)

인코딩

텍스트의 인코딩은 ArchiCAD 11부터 UTF-8입니다.

2.2 XML 파일

XML 파일은 UTF-8 인코딩으로 저장되며 라인 끊기는 UNIX 라인피드를 사용합니다. XML 포맷은 XML Document Type Definition (DTD)XML Schema Definition (XSD)으로 정의됩니다.

XML 요소로 분해되지 않는 라이브러리의 모든 바이너리 섹션은 Windows 바이트 순서로 저장됩니다.

이러한 속성은 라이브러리 파트의 XML 포맷의 전체 플랫폼 독립성을 보장합니다.

3. 파라미터와 실행

파라미터 없이 LP_XMLConverter를 실행하면 버전 정보를 출력하게 됩니다.

커맨드 라인에 LP_XMLConverter help를 타이핑하면 커맨드 라인 인수들에 대해 간략하게 훑어볼 수 있습니다. 여기에 제공된 문서가 더 자세합니다.

3.1 파일 및 디렉토리 트리 변환하기

LP_XMLConverter libpart2xml [-l lang] [-img folder] [-cur file [-keepimagepath]] [-revids] [-compatibility ACversion] [-password pwd] source dest

위치 source에 있는 라이브러리 파트 파일을 변환해서 위치 dest의 XML로 저장합니다.

LP_XMLConverter l2x         [-l lang] [-img folder] [-cur file [-keepimagepath]] [-revids] [-compatibility ACversion] [-password pwd] source dest

주어진 (source) 디렉토리 트리에 있는 모든 라이브러리 파일(.gsm 파일)을 재귀적으로 변환하여 주어진 (dest) 디렉토리로 저장합니다. 다른 파일들은 바이너리 파일 형태로 저장합니다. (이미지, .txt, .gdl, 등)

-l lang
텍스트 변환을 위한 언어 식별자입니다: UTF8, INT, CEU, BAL, CYR, GRE, TUR, ISR, ARA, THA, JPN, TAI, CHI, KOR. 기본값은 시스템 코드 페이지입니다.
-img folder
생성할 이미지 폴더의 위치입니다. 각 라이브러리 파트 안의 이미지들은 GSM 파일에서 하위 폴더들로 추출될 것입니다. 그리고 이것들은 생성된 XML 파일에서 그림 타입 노드(InfoPict, Picture, GDLPict)의 path 속성에서 참조될 것입니다. Handling Built-in 이미지 처리하기 장을 보십시오.
-cur file
현재 대체(replacement) 파일의 위치입니다. 예전에 대체 정의 XML에 의해 변경된 파라미터 값을 원래 값으로 복구하기 위해 (바이너리 또는 XML) 파일을 읽게 됩니다. 기본값의 지역화 장을 보십시오.
-keepimagepath
섹션 GDLPict와 Picture에서 정의한 이미지의 경로와 파일명을 유지합니다. 만약 이 지정자를 사용하지 않으면, 라이브러리 파트의 경로와 그림의 ID로 경로를 결정합니다.
-revids
전체 UNID (main GUID + revision GUID)를 XML 파일로 작성합니다.
-compatibility ACversion
ArchiCAD ACversion에 대하여 LP_XMLConverter가 이해할 수 있는 포맷으로 XML 파일을 작성합니다. 이것은 예를 들면 그 이후로 도입된 섹션을 삭제함으로써 성취됩니다. ACversion은 10부터 현재 ArchiCAD 버전까지의 숫자까지 중 하나이어야 합니다. 기본값은 현재 버전의 숫자입니다.
-password pwd
주어진 패스워드로 GSM 파일 암호를 해제합니다. 만약 패스워드가 일치하지 않으면 GSM은 XML로 변환되지 않습니다. 패스워드는 최대 16 글자까지 가능합니다.
source
libpart2xml의 경우, 원본 GSM 파일의 위치입니다. 파일이 반드시 존재해야 합니다.
l2x의 경우, 변환할 라이브러리 파트의 원본 디렉토리입니다. 디렉토리가 반드시 존재해야 합니다.
dest
libpart2xml의 경우, 목적지 XML 파일의 위치입니다. 부모 디렉토리가 반드시 존재해야 합니다.
l2x의 경우, 변환된 XML 파일에 대한 목적지 디렉토리입니다. 부모 디렉토리가 반드시 존재해야 합니다.
LP_XMLConverter xml2libpart [-l lang] [-img folder] [-def file [-cur file [-keepimagepath]]] [-toplatform platform] [-setcopyright Author LicT LicV] [-password pwd] source dest

source에 있는 XML 파일을 변환하여, dest에 라이브러리 파트를 저장합니다. 만약 라이브러리 파트가 dest에 있다면, 그것을 먼저 지웁니다.

LP_XMLConverter x2l         [-l lang] [-img folder] [-def file [-cur file [-keepimagepath]]] [-toplatform platform] [-setcopyright Author LicT LicV] [-password pwd] source dest

주어진 (source) 디렉토리 트리에 있는 모든 XML 파일들을 변환하여, 주어진 (dest) 디렉토리에 라이브러리 파트를 재귀적으로 저장합니다. 모든 파일은 바이너리 파일로 복사될 것입니다. (images, .txt, .gdl 등)

-l lang
텍스트 변환을 위한 언어 식별자입니다: UTF8, INT, CEU, BAL, CYR, GRE, TUR, ISR, ARA, THA, JPN, TAI, CHI, KOR. 기본값은 시스템 코드 페이지입니다.
-img folder
이미지 원본 폴더의 위치입니다. 이미지는 그림 타입 노드(InfoPict, Picture, GDLPict)의 path 속성에서 참조될 수 있습니다. 컴파일된 라이브러리 파트는 그 안에 있는 이미지를 포함하게 됩니다. Built-in 이미지 처리하기 장을 보십시오.
-def file
대체 정의 XML 파일의 위치입니다. 기본값의 지역화 장을 보십시오.
-cur file
현재 대체 파일을 생성하기 위한 위치입니다. 확장자가 .xml이면 파일은 XML 포맷으로 작성될 것입니다. 그 외에는 커스텀 바이너리 포맷으로 작성합니다. (이것이 훨씬 빠름) 기본값의 지역화 장을 보십시오.
-keepimagepath
섹션 GDLPict에서 정의한 이미지의 경로와 파일명을 유지합니다. 기본값의 지역화 장을 보십시오.
-toplatform platform
대상 플랫폼을 정의합니다. 기본값은 현재 플랫폼입니다.
WIN
Windows
MAC_INTEL
Macintosh Intel
MAC_PPC
Macintosh PowerPC
-setcopyright Author LicenseType LicenseVersion
작성된 모든 라이브러리 파트 안에 Copyright 섹션(작성자, 라이선스 타입, 라이선스 버전)을 설정합니다. 만약 XML이 Copyright 섹션을 포함했다면, GSM 내부의 이 필드들은 주어진 값으로 덮어씁니다. 만약 XML이 Copyright 섹션을 포함하지 않았다면, 주어진 값을 가진 Copyright 섹션은 GSM에 추가될 것입니다.
-password pwd
작성된 GSM을 주어진 패스워드로 암호화합니다. 최대 16 글자까지 가능합니다. 참고: LP_XMLConverter는 Copyright 섹션이 없을 예정이거나 라이선스 타입이 "" 또는 "CC0"으로 설정될 예정이라면 암호화를 거부할 것입니다. 작성될 Copyright 섹션의 내용은 원본 XML과 -setcopyright 오버라이드 옵션에 따라 달라잡니다.
source
xml2libpart의 경우, 원본 XML 파일의 위치입니다. 파일이 반드시 존재해야 합니다.
x2l의 경우, 변환해야 할 XML 파일의 원본 디렉토리입니다. 디렉토리가 반드시 존재해야 합니다.
dest
xml2libpart의 경우, 목적지 GSM 파일의 위치입니다. 부모 디렉토리가 반드시 존재해야 합니다.
x2l의 경우, 변환될 라이브러리 파트 파일에 대한 목적지 디렉토리입니다. 부모 디렉토리가 반드시 존재해야 합니다.

3.2 라이브러리의 계층 고치기

LP_XMLConverter fixhierarchy libraryLocation [additionalLib ...]

libraryLocation 디렉토리 트리에 있는 각 라이브러리 파트 파일의 조상 정보, 버전, 매크로 호출 섹션 및 파라미터 섹션을 복구합니다. 변경된 모든 라이브러리 파트는 새로운 Revision ID를 얻게 됩니다.

libraryLocation
복구할 (GSM) 라이브러리의 위치입니다.
additionalLib
0개 이상의 추가 바이너리 라이브러리의 위치입니다. 이 라이브러리들은 라이브러리 파트 간의 참조를 수정하는 데 사용됩니다. (라이브러리 파트 ID를 기반으로 함 - 더 자세한 것은 GDL Technical Standards의 2.2장을 보십시오)

3.3 전체 라이브러리 만들기

여기 커맨드는 라이브러리가 개발되는 make 시스템에서 작동하도록 설계되었습니다. 전부 마지막 컴파일 이후 XML 파일이 변경되었는지 확인합니다. 이를 위해 IDEntryList.dbe 파일을 사용합니다. 이 파일에서는 도구가 모든 원본 파일의 ID와 MD5 체크섬을 저장합니다. 이 데이터는 다음과 같이 각 파일에 대하여 사용됩니다.

비-XML 텍스트 파일(.gdl 및 .txt)은 Unicode 코딩으로 저장될 수 있습니다. 문자 코딩은 주어진 로컬 코드 페이지로 변환될 것입니다. 비-XML 바이너리 파일은 변경되지 않은 채 복사될 것입니다. (XML 및 앞에서 언급한 텍스트 파일을 제외한 이미지와 전체 파일)

LP_XMLConverter convertlibrary [options] source dest [additionalLib ...]
XML 파일의 디렉토리 트리를 라이브러리 파트의 디렉토리 트리로 컴파일합니다.
LP_XMLConverter convchecklibrary [options] source dest [additionalLib ...]
XML 파일의 디렉토리 트리를 라이브러리 파트의 디렉토리 트리로 컴파일합니다. 그리고 전체 라이브러리의 일관성을 확인합니다. (조상 정보 및 매크로 호출 섹션)
LP_XMLConverter makelibrary [options] source dest [additionalLib ...]
XML 파일의 디렉토리 트리를 올바른 계층을 가진 라이브러리로 컴파일합니다. 그래서 이 변형은 연속으로 convertlibraryfixhierarchy를 만듭니다.
LP_XMLConverter finalizelibrary [options] source dest [additionalLib ...]
makelibrary를 수행하고 XML 파일의 4개 섹션을 업데이트합니다. 이 섹션은 다음과 같습니다: Ancestry, CalledMacros, ParamSection, 선택적으로 Copyright. (만약 -setcopyright가 주어질 경우) 이 섹션들은 파일을 다시 저장하고(GUID로 인해), 일관성 문제를 고칠 때(fixhierarchy로 행해짐) 변경됩니다.

옵션은 다음과 같습니다: [-l lang] [-s suffix] [-suffix_placeable] [-img folder] [-def file [-cur file [-keepimagepath]]] [-toplatform platform] [-setcopyright Author LicT LicV] [-check level] [-verbose n] [-interface file] [-mastergdl file] [-skip_params file] [-password pwd]

-l lang
텍스트 변환을 위한 언어 식별자입니다: UTF8, INT, CEU, BAL, CYR, GRE, TUR, ISR, ARA, THA, JPN, TAI, CHI, KOR. 기본값은 시스템 코드 페이지입니다.
-s suffix
모든 대상 폴더의 파일에 대한 선택적인 접미사입니다. 라이브러리 버전을 구별하는 데 사용될 수 있습니다. (예. Basic Library 19)
-suffix_placeable
만약 이 스위치가 존재하면, 접두사는 배치 가능한 라이브러리 파트에도 접붙여지게 됩니다.
-img folder
이미지 라이브러리의 위치입니다. 이미지는 그림 타입 노드(InfoPict, Picture, GDLPict)의 path 속성에서 참조될 수 있습니다. Built-in 이미지 처리하기 장을 보십시오.
-def file
대체 정의 XML 파일의 위치입니다. 기본값의 지역화 장을 보십시오.
-cur file
현재 대체 파일을 생성하기 위한 위치입니다. 확장자가 .xml이면 파일은 XML 포맷으로 작성될 것입니다. 그 외에는 커스텀 바이너리 포맷으로 작성합니다. (이것이 훨씬 빠름) 기본값의 지역화 장을 보십시오.
-keepimagepath
섹션 GDLPict에서 정의한 이미지의 경로와 파일명을 유지합니다. 기본값의 지역화 장을 보십시오.
-toplatform platform
대상 플랫폼을 정의합니다. 기본값은 현재 플랫폼입니다.
WIN
Windows
MAC_INTEL
Macintosh Intel
MAC_PPC
Macintosh PowerPC
-setcopyright Author LicenseType LicenseVersion
이 인자는 4가지 모드에서 다르게 작동합니다.
convertlibrary
파라미터를 무시합니다.
convchecklibrary
추가 라이브러리에 없는 모든 라이브러리 파트의 Copyright 섹션에서 다음의 주어진 값을 가지고 있는지 확인했습니다. (작성자, 라이선스 타입, 라이선스 버전)
makelibrary
마지막 finalizelibrary 이후 라이브러리 파트가 변경되었고 이것들에게 의존하기 때문에, 만약 Copyright 섹션을 갖고 있다면, Copyright 섹션(작성자, 라이선스 타입, 라이선스 버전)이 주어진 값으로 오버라이드됩니다. 만약 Copyright 섹션을 갖고 있지 않다면, 주어진 값으로 새로운 Copyright 섹션이 추가됩니다.
finalizelibrary
makelibrary 뿐만 아니라, 작성된 Copyright 섹션이 XML 원본 파일에 역으로 복사됩니다.
참고: LP_XMLConverter는 오버라이드할 라이선스 타입이 "" 또는 "CC0"이고 라이브러리 파트가 암호로 보호된다면 라이브러리 파트의 Copyright 섹션을 오버라이드 하는 것을 거부할 것입니다.
-reportLevel
보고서 검사 레벨입니다.
0
보고서 없음 (기본값)
1
GDL 오류 보고
2
일반 GDL 경고 보고
-interpret
GDL 스크립트를 통역합니다.
-checkFiles
.GDL 파일을 확인합니다.
-checkPictures
그림 파일을 확인합니다.
reportLevel 2인 경우 이용 가능합니다:
-checkInit
초기화되지 않은 변수 확인하기.
-checkPrec
정밀도 경고 확인하기.
-checkParams
라이브러리 파트에서 사용하지 않는 파라미터 확인하기. 사용하지 않는 파라미터의 리스팅 장을 보십시오.
-checkBinSections
사용하지 않는 바이너리 3D 및 fragment 확인하기.
-checkThreadSafety2D
멀티쓰레드 프로그램 실행시 2D 스크립트 호환성 확인하기.
-checkThreadSafety3D
s
멀티쓰레드 프로그램 실행시 3D 스크립트 호환성 확인하기.
-checkAll
가장 높은 레벨로 모든 경고를 켭니다.
-verbose n
출력 메시지의 상세(verbosity) 레벨 설정을 위한 옵션입니다:
0
침묵 모드
1
컴파일 정보 출력 (기본값)
2
모든 프로세스 정보 출력
-interface file
매크로 라이브러리 인터페이스 정의 XML 파일입니다. interface 파라미터를 지정하지 않고 라이브러리를 컴파일할 때, 도구는 별개의 경고로 사용하지 않는 모든 매크로를 보고할 것입니다. 매크로 라이브러리의 경우 사용하지 않는 매크로가 있는 것은 작성자의 자연스러운 의도이며 이러한 경고가 다른 중요한 문제를 가릴 수도 있습니다. 따라서 매크로 라이브러리는 게재된 매크로에 대해 unused macro 경고를 생략하기 위해 XML 파일에 public 인터페이스를 지정해야 합니다. (그리고 그 파일을 도구에게 전달합니다) XML 파일의 포맷은 XML Schema for Interface Definition 파일 안에 지정합니다.
-mastergdl file
사용할 마스터 GDL 파일의 위치입니다. 만약 설정하지 않으면, 애플리케이션 경고에 있는 LP_XMLConv.gdl을 사용하게 됩니다.
-skip_params file
checklevel 9의 경우, 이 예외 파일은 파라미터들을 사용하지 않는 파라미터 리스트에 두지 않도록 정의합니다. 심지어 이 파라미터들을 사용하지 않는다 하더라도 말입니다. 사용하지 않는 파라미터의 리스팅 장을 보십시오.
-password pwd
모든 컴파일된 XML에 대하여 주어진 암호로 GSM을 암호화합니다. 최대 16 글자까지 가능합니다. 참고: LP_XMLConverter는 원본 XML이 Copyright 섹션을 갖고 있지 않거나 라이선스 타입이 "" 또는 "CC0"인 경우 GSM 암호화를 거부할 것입니다.
source
컴파일의 원본 디렉토리입니다.
dest
컴파일의 목적지 디렉토리입니다.
additionalLib
0개 이상의 추가 바이너리 라이브러리의 위치입니다. 이 라이브러리들은 라이브러리 파트 간의 참조를 수정하는 데 사용됩니다. (라이브러리 파트 ID를 기반으로 함 - 더 자세한 것은 GDL Technical Standards의 2.2장을 보십시오)

3.4 LCF 파일 다루기

라이브러리 패키지를 Library Container File (LCF) 안에 보관할 수 있습니다. LP_XMLConverter는 다음 커맨드를 이용하여 그러한 LCF를 생성하고 추출할 수 있습니다.

LP_XMLConverter createcontainer lcfFile [-compress level] libraryFolder [...]

전달된 라이브러리들을 포함하는 LCF를 위치 lcfFile에 생성합니다.

lcfFile
생성할 LCF 파일의 위치입니다.
-compress level
압축 레벨 셋팅입니다. 레벨은 0 - 9 범위 안에 있어야 합니다. 0은 무압축, 1은 최적 속도, 9는 최적 압축입니다. 기본값은 0입니다.
libraryFolder
LCF 파일에 포함되는 1개 이상 라이브러리 폴더의 위치입니다.
LP_XMLConverter extractcontainer lcfFile libraryFolder

위치 lcfFile에 있는 LCF를 추출하여 libraryFolder 폴더로 넣습니다.

lcfFile
추출할 LCF 파일의 위치입니다.
libraryFolder
LCF의 내용이 추출될 목적지 폴더입니다.

3.5 서브셋 라이브러리 만들기

LP_XMLConverter는 다음 파라미터화를 통해 서브셋 라이브러리를 생성할 수 있습니다. 서브셋 라이브러리는 동일한 라이브러리의 예전 버전과 새로운 버전을 기반으로 한 일방적인 차집합입니다.

예로 AC18Lib과 AC19Lib을 보겠습니다. 이것들의 서브셋에는 AC19Lib에서 등가 호환성을 갖고 있지 않은 AC18Lib의 모든 라이브러리 파트를 포함하게 됩니다. 다음과 같이 될 수 있습니다:

  1. 더 이상 지원되지 않고 삭제된 요소입니다.
  2. 호환되지 않는 방식으로 변경되고 새로운 Main ID를 얻은 요소입니다.
LP_XMLConverter makesubsetlibrary previous current subset
previous
XML에 있는 예전 라이브러리의 원본 위치입니다. 폴더가 반드시 존재해야 합니다.
current
XML에 있는 현재 라이브러리의 원본 위치입니다. 폴더가 반드시 존재해야 합니다.
subset
XML에서 작성할 서브셋 라이브러리의 대상 위치입니다. 지정된 폴더가 생성될 것입니다.

3.6 Unicode 파라미터 값 전달하기

당신은 비-ASCII 파라미터를 LP_XMLConverter에게 전달할 수 있습니다. 예를 들면 비-ASCII 문자를 포함하는 폴더 및 파일 경로가 있습니다. 아래에 나온 것처럼 당신은 그러한 인자들을 커맨드 라인에, 또는 파라미터 파일 안에 직접 전달할 수 있습니다.

-f paramFile
Param_file는 UTF-8 인코딩 파일입니다. 이것은 각 라인마다 LP_XMLConverter 인자를 1개씩 가지고 있습니다. 예를 들면 -img. 그리고 이미지 폴더의 위치는 2개의 라인으로 분리되어야 합니다. 빈 라인은 빈 문자열 인자로 취급합니다. 아무 타입의 newline 문자 (Windows, Mac, UNIX) 모두 허용합니다. 파일의 인자는 -f paramFile을 대체하는 커맨드 라인에 삽입될 것입니다. 파라미터 파일과 직접 파라미터화는 조합될 수 있습니다. -f 인자는 커맨드 라인에 여러 번 나타날 수 있습니다.

LP_XMLConverter는 커맨드 라인과 파라미터 파일에서 Basic Multilingual Plane (U+0000 – U+FFFF)에 속하는 문자만 처리할 수 있습니다. Unicode는 17개의 plane으로 나뉘며, 1번째 plane이 바로 Basic Multilingual Plane입니다.

4. 사용 팁

4.1 두 플랫폼에 대한 컴파일

XML 파일은 크로스-플랫폼이지만 GSM 파일은 그렇지 않다는 것을 참고하십시오. (그러나 ArchiCAD는 양쪽 플랫폼에서 GSM 파일을 이용할 수 있습니다)

도구는 자신이 구동했던 플랫폼에 맞게 XML 파일을 GSM-라이브러리로 컴파일합니다. 우리는 Windows와 Mac에서 동일한 라이브러리 파트의 Revision ID의 분산을 피하길 원합니다. 다른 Revision ID는 크로스-플랫폼 프로젝트 파일을 사용할 때 약간의 시간을 늦춥니다. 두 플랫폼에 적합한 ID를 가진 올바른 라이브러리를 생성하기 위해 다음 단계들을 따르십시오:

4.2 Built-in 이미지 처리하기

라이브러리 파트는 "Build-in" 이미지를 포함할 수 있습니다. LP_XMLConverter는 이 기능에 접근하는 것도 용이하게 합니다.

사용법은 다음 단계를 거치면 됩니다:

  1. 이미지 파일에 대한 폴더를 만들고 거기에 이미지를 둡니다. 이미지는 ArchiCAD가 인식할 수 있는 아무 포맷이 될 수 있습니다.
  2. 다음 구문을 사용하여 XML 파일에서 이미지를 참조하십시오:
    <GDLPict MIME="image/png"
        path="subfoldername/filename.png"
        SubIdent="3"
        platform="Win"
        SectVersion="19"
        SectionFlags="0">
    </GDLPict>
    path는 메인 이미지 폴더에 상대적이며 -img 커맨드라인 파라미터를 통해 컨버터에게 전달됩니다. SubIdent는 이미지의 내부 식별자입니다. 이 ID는 스크립트에서 이미지에 접근할 때 사용합니다. -keepimagepath 커맨드라인 옵션을 사용하는 경우, 이 파일명은 변환 후에 변하지 않습니다. 그 외의 경우 파일명은 subfoldername/GDLPict_X.ext가 됩니다. 여기서 X는 이미지의 내부 식별자입니다. ('SubIdent')
  3. 그것을 포함하는 라이브러리 파트의 스크립트에서 이미지를 사용하십시오. 아래 예제에서 볼 수 있듯이, 실제 이미지는 SubIdent 값으로 식별할 수 있습니다:
    UI_INFIELD "parName", xPos, yPos, width, height,
            1, 3, 5, 1,        ! "3"을 생각하라
            56, 50, 40, 40,
            1, "",
            2, "",
            3, "",
            4, "",
            5, ""

4.3 스크립트 섹션 숨기기

라이브러리 파트는 최종 사용자로부터 스크립트를 숨길 수 있는 방법을 제공합니다. 이것은 XML에서 숨겨야 할 스크립트의 SectionFlags 속성에 64를 더하면 됩니다. 이렇게 하면 주어진 스크립트가 숨겨진 채로 GSM 파일이 생성됩니다. 스크립트가 숨겨진 라이브러리 파트를 XML로 다시 변환하면 빈 스크립트 요소가 생성될 것입니다. 그래서 라이브러리를 게재한 후에 원래 XML 파일을 잘 보존해야 합니다.

4.4 기본값의 지역화

일부 게재된 라이브러리는 다른 기본 속성 세트를 가지고 작동해야 합니다. - 따라서 서로 다른 사용자에게 다른 기본 파라미터가 제공되어야 합니다. ArchiCAD 11부터는 LP_XMLConverter가 동일한 원본 XML에서 서로 다른 파라미터를 가진 라이브러리를 컴파일할 수 있는 방법을 제공합니다. 이 기술은 meanings의 개념을 기반으로 하고 있습니다.

Meanings은 주어진 파라미터에 건축 개념을 할당할 수 있는 가능성을 제공합니다. International ArchiCAD Library's Armchair 01.xml에서 다음 예제를 보십시오. 여기서 우리는 gs_cont_pen 파라미터에서 4의 값이 Furnishing_ContPen의 개념의 인스턴스이어야 한다고 assert합니다. (이것은 '4'와는 대조적으로 의미 있는 건축적인 것입니다)

<PenColor Name="gs_cont_pen">
    <Description><![CDATA["Contour Pen"]]></Description>
    <Fix/>
    <Flags>
        <ParFlg_Child/>
    </Flags>
    <Value Meaning="Furnishing_ContPen">4</Value>
</PenColor>

이 assert를 이용하면 당신이 지정한 모든 meanings에 대하여 기본값을 정의할 수 있습니다 이것은 대체 정의 XML 파일에서 수행할 수 있으며 -def 파라미터로 LP_XMLConverter에게 전달할 수 있습니다. 이것은 컨버터 도구에게 현재 컴파일에서 모든 furnishing contour pen을 7로 치환하라고 알려주는 snipplet입니다.

<ReplacementDef>
    <ReplacementItem meaning="Furnishing_ContPen" value="7"/>
    ...
</ReplacementDef>

안타깝게도 GSM 라이브러리 파트 포맷은 이러한 추가 의미 힌트를 가질 수 없으므로 이러한 대체 시나리오에서는 바이너리 라이브러리 옆에 추가 파일을 생성해야 합니다. 이 추가 파일은 현재 대체 파일이며 바이너리 GSM을 XML로 변환할 때 원래 값과 의미를 복원하는 경우에 사용합니다.

현재 대체 파일은 -cur 파라미터를 이용하여 컨버터 도구에게 전달될 수 있습니다.

Built-in 이미지 파일의 경로는 이 파일에 저장할 수도 있습니다. 이 경우 -keepimagepath 지정자를 추가하십시오. 더 많은 정보는 Build-in 이미지 처리하기 장을 보십시오.

4.5 사용하지 않는 파라미터의 리스팅

checkParams를 이용하면, LP_XMLConverter는 라이브러리 파트 파일의 사용하지 않는 파라미터 리스트를 만듭니다. 일반적으로 파라미터는 값이 무언가에 사용되거나, 이 파라미터에 어떤 값을 할당하는데 사용합니다.

모든 GDL 스크립트 파일이 사용하지 않는 파라미터 검사의 범위에 포함되는 것은 아닙니다. 서브타입이 Property가 아닌 비-템플릿 라이브러리 파트만 사용하지 않는 파라미터를 검사할 수 있습니다. 그 외 파일: .gdl 파일, 템플릿 라이브러리 파트 파일, Property 라이브러리 파트는 사용하지 않는 파라미터 검사 범위 밖에 있습니다.

사용하지 않는 모든 파라미터를 사용하지 않는다고 전부 리스트에 넣으면 안 됩니다. 규칙은 다음과 같습니다:

Unused Parameters to Skip XML 파일의 포맷:

<?xml version="1.0" encoding="UTF-8"?>
<UnusedParsToSkip>
    <Common>
        <Param>GS_LIST</Param>
        <Param>FM_TYPE</Param>
    </Common>
    <LibPart>
        <Name>MEP_m_Connections.gsm</Name>
        <Param>MEP_VERSION</Param>
        <Param>GS_DETLEVEL_3D</Param>
    </LibPart>
    <LibPart>
        <MainGUID>0585F813-1620-476A-A6B4-9EAD75FC9F17</MainGUID>
         <Param>GS_DRNOEDIT</Param>
    </LibPart>
</UnusedParsToSkip>
        

사용하지 않는 파라미터를 제거하는 방법: