キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

ライブラリオブジェクトの正確なGUIDを知る方法

Michitaka Kiriki
Graphisoft
Graphisoft
オブジェクトライブラリの複雑さが増すにつれて、Archicad 8ではライブラリ部品とその改訂を追跡する方法が開発されました。つまり、2つのGUID(内部的にコード化された16バイトの数字)が、オブジェクト(ファイル)名と組み合わされて、各オブジェクトを識別します。通常、この構成は77文字の長さの特殊文字列として視覚化されます。この識別子はライブラリ部品IDと呼ばれ、修正または改善されたオブジェクトの繰り返しをArchicadが追跡するのに役立ちます。

GUID

GUIDは、それぞれ36文字の2つの部分で構成されています。最初の36文字は"MainID"を表し、最後の36文字は"RevisionID"を表します。
wp-content_uploads_archicadwiki_guid--guid.jpg

 

  • MainIDは、ライブラリ部品が初めて保存されたときに作成されます。[名前を付けて保存]コマンドを使用してライブラリ部品を再保存する場合も変更されます。
  • RevisionIDは、ライブラリ部品が初めて保存されるときにも作成されますが、「保存」コマンドを使用してライブラリ部品を再保存すると変更されます。

ライブラリ部品の識別

Archicadにオブジェクトを配置する場合、名前を考慮する前にGUIDを参照します。ライブラリをロードする際、Archicadは、ロードされたライブラリ部品をプロジェクトに配置済みのオブジェクトにマッチングさせるために、以下の階層基準を使用します:
  1. GUIDの両方の完全な一致を試みようとします
  2. 失敗した場合は、GUIDの最初の部分(MainID)と一致しようとします。
  3. Archicadバージョン8-11では、MainIDに一致するものが見つからない場合、ライブラリ部品名で一致しようとします。(記事下部のArchicad 12の変更点をご参照ください)
Archicad 8より以前のバージョンからライブラリ部品が来ている場合、GUIDのようなものはありませんでした。そのため、ファイルでそのようなライブラリ部品が検出されると、ArchicadはGUIDにゼロを入力します。また、識別手順の最初の2ステップを処理する必要がなく、名前で一致させようとします。

新しいライブラリ部品を作成したとしましょう。テンプレートには「モデル要素」ライブラリ部品を選択します。このテンプレートのGUIDは{103E8D2C-8230-42E1-9597-46F84CCE28C0}-{CE15CD1D-E6C8-4C6B-B919-C4E367D3983A}です。ライブラリ部品は「Chair 1.gsm」という名前で保存されます。そのGUIDは{5E258C98-C74E-43E6-9F8A-894F2F9A3E22}-{9AD91219-5A87-4C64-8F32-84CB4DFB5E05}になります。
 
ご覧のとおり、これは以前の数字とはまったく異なります。このファイルを修正して保存し、GUIDをチェックすると、次のようになります。{5E258C98-C74E-43E6-9F8A-894F2F9A3E22}-{ACFAA215-4B96-4CA2-9277-4C613AD50AC7}GUIDのMainID部分は変更されていませんが、RevisionID部分は変更されています。
 
ここで、このライブラリ部品を「ファイル」メニューの「名前を付けて保存...」コマンドを使って「Chair 2.gsm」という名前で保存し直すと、そのGUIDは{463F5328-53EC-4255-AC9F-614AB6B26C10}-{7521BF5D-66E3-4A62-8FD3-E5DFA4B245B7}となり、まったく別のGUIDになります。この新しい「椅子2.gsm」は「椅子1.gsm」と改名されることもあります。これは、以下の理由でArchicadやユーザーに問題を引き起こすことはありません: まず、WindowsでもMacでも、同じフォルダに同じ名前のファイルを2つ置くことはできないため、読み込んだライブラリに同じ名前のライブラリ部品が2つある場合、それらは2つの異なるフォルダに置かなければなりません。
 
2つのライブラリを読み込んだ場合、1つは元の「Chair 1.gsm」、もう1つは「saved-as-Chair 2.gsm-renamed to Chair 1.gsm」という名前で、Archicadのステータスウィンドウには「重複したライブラリ部品」の下に2つのライブラリ部品を表示します。これは、名前は同じですが、GUIDは同じではないためです。読み込まれたライブラリに2つの「Chair 1.gsm」ファイルがある場合-1つは元のファイル、もう1つはそこからコピーされ、変更されて保存されたファイルです(ただし名前を付けて保存されていません)。MainIDは同じままであるため、ステータスウィンドウの「重複したライブラリ部品」に報告されます。
 
そのため、同じ名前の2つ以上のライブラリオブジェクトがロードされた場合、ArchicadはGUIDを使用して、ライブラリ部品が実際に同一なのか、それとも1つが異なるリビジョンなのか、または実際にはまったく異なるオブジェクトなのかを判別できます。

ライブラリオブジェクトの正確なGUIDを知る方法

要素のGUIDを確認できる場所は、 サブタイプ別にオブジェクトを開くダイアログのみです。このダイアログにアクセスするには、[GDLライブラリ部品の編集]ツールバーを有効にする必要があります(または、[サブタイプでオブジェクトを開く]コマンドを[作業環境]からメニューに追加できます)。
wp-content_uploads_archicadwiki_guid--1.jpg
wp-content_uploads_archicadwiki_guid--2.jpg
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
[サブタイプ階層]ダイアログで、サブタイプ階層ツリーでオブジェクトを見つける必要があります。ライブラリオブジェクトはリストに緑色で表示されます。
wp-content_uploads_archicadwiki_guid--libpartselectsubtypedialog-2.png
 
 
 
 
 
 
 
 
 
 
 
 
階層内のどこにライブラリ部品があるかわからない場合は、どの「テンプレート」に属しているかを確認する必要があります。これを行うには、編集するライブラリ部品を開き、[サブタイプの選択...]ボタンをクリックします。
wp-content_uploads_archicadwiki_guid--libparteditingwindow.png
 
ライブラリエディタの[サブタイプの選択...]ボタンを押すとサブタイプ階層ダイアログが表示されます。ここに表示されるGUIDは、編集 されているライブラリ部品のGUIDではなく、その親要素(テンプレート)のGUIDです。以下の画面キャプチャでは、選択した要素が「Armchair 01.gsm」ではなく、その直接の親要素「Seating」であることがわかります。名前、バージョン、GUID、および場所が表示されます。
wp-content_uploads_archicadwiki_guid--libpartselectsubtypedialog.png
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
サブタイプ階層内のライブラリ部品の「パス」を確認してから、サブタイプ別にオブジェクトを開くダイアログに戻り、ライブラリ部品のGUIDを確認します。いずれにせよ、ロードされたライブラリ内のライブラリ部品間でG衝突が発生した場合、ライブラリロードレポートは重複ライブラリ部品のアラートを通知します。この場合、関連するライブラリ部品のGUIDも表示されます。
wp-content_uploads_archicadwiki_guid--libraryloadingreport.png
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
逆も当てはまります: 全てのライブラリが正常に読み込まれた後にライブラリ読み込みレポートに警告が表示されない場合は、読み込まれたライブラリに同じGUIDを持つ2つのライブラリ部品がないことを確認できます。

ライブラリロードレポート

特に、4つの異なるカテゴリがあります:
  1. 欠落
  2. 重複(読み込まれたライブラリ内のライブラリ部品間でGUIDの衝突が発生した場合、ライブラリロードレポートがライブラリ部品の重複の警告で通知します)。
  3. 名前の重複(名前のみが同じです)
  4. 複数のバージョン(MainIDは同じですが、RevisionIDは異なります)

マクロの使用方法

キッチンキャビネットと標準ドアの例を考えてみましょう。両方とも "Knob "という名前の別のオブジェクトを呼び出すかもしれませんが、キャビネットノブとドアノブは完全に異なるファイルかもしれません。この状況は、世界中のサードパーティの開発者と製品メーカーが独立して何千ものGDLオブジェクトを作成している場合に発生する可能性があります。
 
GUIDのおかげで、ArchicadはGDL開発者が一意の部品名を使用することを制限することなく、幅広いライブラリ部品を使用することができます。これにより、部品名はユーザーが簡単に理解でき、Archicadが大規模で複雑なライブラリを管理するのに十分な洗練されたものになります。また、配置されたライブラリ部品を新しいバージョンで更新する新しい戦略も容易になります。(この点については、以下で詳しく説明します。)
 
ライブラリ部品のスクリプトにマクロ呼び出しが含まれている場合、Archicadはロードされたライブラリに指定されたマクロ名を持つマクロが存在するかどうかをチェックします。その場合、ライブラリ部品が保存されたときに、それを呼び出すライブラリ部品にそのGUID情報が含まれます。したがって、マクロ参照は通常のライブラリオブジェクトと同様、最初にGUID、次にMainID、次に名前で識別されます。特定のGUIDを持つマクロの呼び出しを含むライブラリ部品があるとします。
 
後で同じ名前のマクロを含む別のライブラリがロードされますが、そのマクロには異なるGUIDを持っています。マクロを呼び出すライブラリオブジェクトが変更されて保存されると、Archicadはロードされたライブラリで同じGUIDを持つマクロを探します。それは見つからないでしょう。次に、同じMainIDを持つものを探します。それは見つからないでしょう。したがって、同じ名前のマクロを探します。みつかった場合は、そのGUIDを取得し、マクロ参照用に保存されたGUDI値の以前の値を上書きして保存されます。
 
ライブラリ部品を変更する場合、同じ名前の複数のマクロをライブラリで読み込むべきではありません。ライブラリ部品を変更したい場合、ライブラリ部品が保存されるとき、GUIDまたはMainIDに一致するものが見つからなければ、その名前に一致する最初のマクロが選択されます。ライブラリ部品を保存するときにGUIDの一致またはMainIDの一致が見つからない場合は、名前に一致する最初のマクロが使用され、ユーザーの制御を超えたランダムな選択になります。この同じルールは、ライブラリ部品が変更され、保存または更新されるすべての操作に適用されます。

回答が見つかりませんでしたか?

このフォーラムで
他の記事をチェック

フォーラムへ戻る

最新の解決策をチェック

採用された解決策

新しいディスカッションを始める

投稿する