Archicad GDLでフロア情報を扱う方法②

2025年8月19日火曜日

AC_TextFont_1 SYMB_POS_Z values{2} ラベル

t f B! P L
今年のお盆はしっかり休みをいただきました👌
BIM推進の立場では、現場に出ていた時より体力が落ちてしまいますが、暑さに負けず、頑張っていきたいと思います。

前回に引き続き、フロア情報を取得してレベル表示していきたいと思います。前回の最後に作成した簡易基礎GDLの下端レベルをラベルで表示していきます。


基礎の配置高さ
基礎の配置


基礎ラベル作成

本題の基礎ラベル作成です。
まずは、下図のようにサブタイプを「ラベル」にしてください。ここを選択しないとラベルとして認識されないので必須作業となります。

サブタイプ設定

続いて、以下のようなスクリプトを書いてみましょう。

マスタースクリプト
DIM temp[],
	index[],
	name[],
	elev[],
	height[]

n = REQUEST ("STORY_INFO", "", nr, temp)
for i=1 to nr
	index[i]=i
	name[i]=temp[4 * (i - 1) + 2]
	elev[i]=temp[4 * (i - 1) + 3]
	height[i]=temp[4 * (i - 1) + 4]
next i

values{2} "floorName", index,name

2Dスクリプト
define style "test" AC_TextFont_1, AC_TextSize_1, 5, 0
set style "test"

if SYMB_POS_Z-elev[floorName]>0 then
	symbol="+"
else
	if round_int(SYMB_POS_Z-elev[floorName])=0 then
		symbol="±"
	else
		symbol=""
	endif
endif

text2 0,0,name[floorName]+symbol+str((SYMB_POS_Z-elev[floorName])*1000,1,0)

このようなスクリプトを書くことで選択したフロアからのレベルを図示できるラベルが完成します。実際のイメージが下の画像です。基礎オブジェクトの配置フロアはいずれも2FLですが、ラベル側に設定したパラメータで基準となるフロアを選択できるようにしています。

GDLラベル
1FLを基準としたレベル
GDLラベル
2FLを基準としたレベル
GDLラベル
3FLを基準としたレベル


スクリプト説明

マスタースクリプトではフロア情報を呼び出して、values{2}コマンドでパラメータに選択肢を与えています。
2Dスクリプトでは、defineコマンドで、フォントと文字サイズなどを指定しています。なお、AC_TextFont_1はフォントタイプ、AC_TextSize_1は文字サイズのパラメータです。サブタイプをラベルにするとデフォルトでパラメータリストに追加されます。
その後のif文ではレベルの符号をコントロールしています。数値がマイナスの場合には"-"が表現されますが、プラスの場合に"+"は表現されないので追加してあげます。また、0の時の"±"も追加しておくといいと思います。
あとはtext2コマンドで、表示してあげれば完成です。

このようにしてラベルを作成していくことができます。図面(ビュー)によって基準レベルを統一したい場合などは、MVOの設定を組み込んであげるとさらにコントロールがしやすくなります。また、似たような方法で基礎の幅、高さなどを呼び出し、ラベルとしてのレイアウトを整えてあげれば、施工図でよく見るようなラベルの作成も可能となります。施工図ラベルは会社によって表現方法やレイアウトが全然違いますので、独自ラベルを作成してみると勉強になります。


今回は以上となります。

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

Xのアカウントもありますので、ぜひフォロー頂けると嬉しいです。
アカウントはこちらから⇨https://x.com/BIM_arekore

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

検索

GDLオブジェクト

ブログ アーカイブ

自己紹介

自分の写真
連絡先:bim.arekore@gmail.com  普段はBIM界隈で働いております。皆さんに役立つ情報を提供できればと思っております。BIMマネやBIMオペ、開発、プログラミング、BIMコンサル、技術営業等様々な業務をおこなっております。#施工管理#生産設計#BIM開発#ソフトウェアベンダー#ArchiCAD API#GDL#ArchiCAD python#Revit API#Dynamo

QooQ