【小ネタ】GDLでバブルソート

2024年11月7日木曜日

DIM GDL print 小ネタ

t f B! P L

ここでは、GDLプログラミングでよく使うバブルソートの方法について記録しておきます。

下記の例ではlistという配列を定義し、適当な整数を順番に格納しています。なお、DIMコマンドは「これから定義する変数が配列(リスト)型である」と宣言するために使用します。配列を宣言する場合はlist[]、行列を宣言する場合はlist[][]と書きます。


マスタースクリプト
DIM list[], _sorted[]

list[1]=2
list[2]=4
list[3]=1
list[4]=5
list[5]=3

 _sorted = list


FOR i = 1 TO VARDIM1(list) - 1
	FOR j = 1 TO VARDIM1(list) - i
		IF _sorted[j] > _sorted[j+1] THEN
			temp = _sorted[j]									
			_sorted[j] = _sorted[j+1]
			_sorted[j+1] = temp	
		ENDIF
	NEXT j
NEXT i 

print(list)
print(_sorted)


ソートの確認

マスタースクリプト内でprintコマンドを使用すると、指定した引数(例えばlistsorted)の中身をダイアログボックスまたはレポートウィンドウに出力することができます。これにより、配列の内容や変数の値を確認でき、デバッグに役立ちます。

実際に上記のコードで「スクリプトを確認」ボタンを押すと以下の画像のようなダイアログが出現します。見ての通り、ソート後のリストは昇順になっていることが分かります。

降順にしたい場合は、if文の不等号の向きを逆にすれば良いです。
このような処理を組み合わせることで、GDLをより発展させることができます。

GDL printコマンド
listの中身
(ソート前)

GDL printコマンド
sortedの中身
(ソート後)



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

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

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



自己紹介

自分の写真
初めまして。 BIM活用のあれこれ運営人です。 普段はBIM界隈で働いております。皆さんに役立つ情報を提供できればと思っております。BIMマネやBIMオペ、開発、プログラミング、BIMコンサル、技術営業等様々な業務をおこなっております。 GDL作成などBIM活用のお仕事のご相談お待ちしております。 #ゼネコン出身 #施工管理 #生産設計 #BIM開発 #ソフトウェアベンダー #ArchiCAD API #GDL #ArchiCAD python #Revit API #Dynamo

メール

bim.arekore@gmail.com

検索

GDLオブジェクト

ブログ アーカイブ

ArchiCADのGDLをコスパよく作成します ArchiCADユーザーでGDL作成を外部委託されている方へ

QooQ