ArchiCAD GDLを学習 〜椅子②〜

2024年8月20日火曜日

GDL hotspot 椅子 座標変換 配列

t f B! P L

ArchiCAD GDLで椅子をつくてみる②

前回作成した椅子について、細かい部分を調整していこうと思います。まず、椅子の位置をホットスポットで移動できるようにしたいので、以下のようにコードを記述していきます。また、パラメータを配列として扱えるように設定してみます。下の画像の①〜③の手順でボタンを押すことで、行や列を追加してパラメータを配列化することが可能です。

Revitのファミリでは配列をパラメータとして扱うことができないため、これもGDLの優れた点の一つだと感じています。これができることで、オブジェクトとしての自由度はRevitファミリと比較してもかなり高いと感じます。(これはあくまで個人的な感想ですが...)

パラメータの配列設定
配列の設定画面
unid = 1
unid = 1
material mat

gosub "desk"

hotspot 0, 	     chair_pos[2], chair_height, unid, chair_pos[1], 1+128	:unid = unid+1
hotspot chair_pos[1], chair_pos[2], chair_height, unid, chair_pos[1], 2	        :unid = unid+1
hotspot -1, 	     chair_pos[2], chair_height, unid, chair_pos[1], 3	        :unid = unid+1

hotspot chair_pos[1], 0		  ,chair_height, unid, chair_pos[2], 1+128	:unid = unid+1
hotspot chair_pos[1], chair_pos[2],chair_height, unid, chair_pos[2], 2		:unid = unid+1
hotspot chair_pos[1], -1	  ,chair_height, unid, chair_pos[2], 3		:unid = unid+1

add chair_pos[1], chair_pos[2], 0

gosub "chair"

end 


配列とホットスポット

今回は、椅子の位置座標を chair_pos というパラメータにして配列化しています。配列は2行1列とし、1行目の値をX座標、2行目の値をY座標として扱います。もちろん、chair_pos_x  chair_pos_y のように、それぞれを別のパラメータとして設定しても良いのですが、練習も兼ねて配列を使用しています。

配列の値を操作したい場合は、"パラメータ名[行][列]" のように配列内の位置を [] で指定することで、値を利用可能にします。上記の例では、chair_pos[1] が1行目の値、つまりX座標に当たる部分で、chair_pos[2] が2行目の値、つまりY座標に当たる部分です。今回は1列なので "[行]" だけで機能しますが、複数列の場合は "[行][列]" と指定します。

配列の値をホットスポットで呼び出すことで、椅子の位置を自由に移動できるようになります。上記コードのようにX座標とY座標についてそれぞれ記述すると、XY平面上を自由に動くホットスポットが作成されます。あとは add コマンドを使って椅子("chair" ラベルで定義)の位置座標を変更すれば、ホットスポットに追従する椅子の完成です。下の画像は、椅子の中心にホットスポットが追加されている様子を示しています。

GDL配列を利用したホットスポット
完成イメージ


なお、基本的なGDLの学習はこちらの教材がおすすめです!
GDLリファレンスがgraphisoftが用意していますが、初見では理解しづらいので、
簡単にまとめられたやさしく学ぶArchiCAD GDLプログラミングという本で基礎をしっかり学びましょう!


また、ココナラでのサポートサービスも始めましたので、
ご活用いただければと思います。
1日GDL作成やArchiCAD関連の相談のります 自分でGDLを作成している方へ


【お知らせ】
Xのアカウントを作成しましたので、ぜひフォロー頂けると嬉しいです。
アカウントはこちらから⇨https://x.com/BIM_arekore

世界の建設業従事者、BIM推進者と繋がりたいです。よろしくお願いします。

検索

最新記事

多角形GDLに機能を追加してみる②

GDLオブジェクト

UI (1) ユニーク (1) 椅子 (4) 仮囲い (6) (7) 小ネタ (3) 足場 (15) 足場計画 (4) 多角形 (3) 法規 (1) 無償DL (4)

ブログ アーカイブ

自己紹介

自分の写真
GDL作成などBIM活用のお仕事の相談お待ちしております。 #中堅ゼネコン出身 #施工管理職 #生産設計部 #BIM開発部門
ArchiCADのGDLをコスパよく作成します ArchiCADユーザーでGDL作成を外部委託されている方へ

QooQ