2026-05-11 10:16 AM
改修図で2Dの既存図を引きずることが多いので、2Dの建具オブジェクトを作成を試みているのですが、
今はプルダウンで、スキーム、簡易、詳細と分けていて、
これをモデルオプションに連動させることが出来ないかと思っており、
どなたか方法を知っている方いますでしょうか?
①か、②か、どちらかが出来ると嬉しいです。
(簡単な方がいいです・・・・)
最近GDLを始めたもので、とんちんかんなことを言っていたらすみません・・・
どうぞよろしくお願いします。
-------------------------------------------------------
<やりたいこと①>
if ドアと窓の詳細レベルの「ドア」が詳細の場合 then
if ドアと窓の詳細レベルの「ドア」が簡易の場合 then
if ドアと窓の詳細レベルの「ドア」がスキームの場合 then
if ドアと窓の詳細レベルの「窓」が詳細の場合 then
if ドアと窓の詳細レベルの「窓」が簡易の場合 then
if ドアと窓の詳細レベルの「窓」がスキームの場合 then
-------------------------------------------------------
<やりたいこと②>
モデル表示オプションの名前で分岐
if モデル表示オプションが、「企画図」 then
if モデル表示オプションが、「一般図」 then
if モデル表示オプションが、「詳細図」 then
2026-05-11 05:52 PM
①の方法であれば可能です。
モデル表示オプションもGDLで作成されていますので、その値を参照可能です。
参考:MVO(モデル表示オプション)と連動したGDLオブジェクトの作り方【旧サイトからの転載】
以下、Archicad29を前提として説明します。
日本仕様の窓扉のMVOは「DW_MVOSettings_JPN.gsm」というGDLファイルに記述されています。
このファイルを開くと「iWindowMVODetlevel」「iDoorMVODetlevel」がそれぞれ窓と扉の詳細レベルであるようです。
このような形でMVOの変数の状態を取得すればDoorDetLevelという変数に、MVOの扉の詳細表示状態が取得できます。
<マスタスクリプト>
success = LIBRARYGLOBAL ("DW_MVOSettings_JPN", "iDoorMVODetlevel", _DoorDetLevel)
if success then
DoorDetLevel = _DoorDetLevel
parameters DoorDetLevel = DoorDetLevel
endif
あとは窓も同じように取得してIF文で分岐させればOKです。
サンプルのgsmを作成してみたのでこちらも参考にしてみてください。
大雑把ですがこんな感じでいけると思います。
お試しください。
2026-05-12 10:40 AM
Kotetsu様
おかげさまで、やりたかったことが実現しました!
success = LIBRARYGLOBALがリファレンスガイドを読んでも使い方が分からず、
困っていたので、サンプルとても助かりました。
オブジェクト名が、Archicad~28と、29で違うのがちょっと厄介な感じですが、
29以降は名前が変わらないことを願いつつ、このまま突き進んでみたいと思います。
本当にありがとうございました!
<オブジェクト名>
Archicad29 DW_MVOSettings_JPN
Archicad28 LG_JPNDWSettings
Archicad27 LG_JPNDWSettings
Archicad26 LG_JPNDWSettings