テクニカルサポート 年末年始休業について
休業期間:12月28日(土)~ 1月5日(日) 最終受付:12月27日(金) 17:00まで
休業期間中にいただたお問い合わせは、1月6日(月)より、順次、対応再開いたします。
2023-11-17 03:35 PM
GDLのラベルオブジェクトで、伏図ラベルを作成しているのですが、REQUESTコマンドの書き方がよくわからず困っています。
柱や梁が断面形状で作成されているとき、幅やせい、フカシなどの情報を取得したいです。
下画像のような断面形状パラメータであったり、IFCプロパティから値が引っ張れそうな気がするのですが、
書き方のコツを教えていただきたいです。
また、リファレンスガイドの例を参考にプロパティ名は取得できたのですが、「propertyType」を「ACPROPERTY」などに指定しても
インデックス値が配列を超えているエラーが出ます。一つだけ出力しても同じエラーが出てくるので、原因が知りたいです。
プロパティ値はいろいろ活用していきたいと思っているので、ご教授いただければ幸いです。
解決済! 解決策の投稿を見る。
2024-06-10 05:35 PM
自作ラベルに断面形状パラメータの値を表示させたいと思って検索していたところ、この投稿に辿り着き、上のコードをいろいろ触っていた結果、値が取り出せました!
1年前のトピックですが、同じことで悩んでる方もいるかな~と思ったのでコードを共有させてもらいます。
! 断面形状パラメータのIDを取得
DIM parentProperties[]
n = REQUEST("Properties_Of_Parent", "PROFILEPARAMETER", parentProperties)
FOR i = 1 TO vardim1(parentProperties) / 4
baseIndex = (i - 1) * 4 + 1
if parentProperties[(baseIndex+3)]="梁増し打ち-上" then
_ID_top = parentProperties[(baseIndex)]
endif
NEXT i
! 断面形状パラメータの値を取得
n = request ("Property_Value_Of_Parent", _ID_top, _typeValue, dim1, dim2, propertyValues)
if n then
for d = 1 to vardim1(propertyValues)
val_top = propertyValues[d]
next d
endif
2023-11-17 09:34 PM - 編集済み 2023-11-18 03:03 PM
このコード部分だけを言えば
FOR i = 1 to 100
の部分で100回繰り返していますが、プロパティ・断面形状パラメータが100未満のため配列値を超えているエラーが出ています。
この部分を
FOR i = 1 to vardim1(parentProperties)/4
とすればエラーは解消するかと思います。
vardim1は()内の配列の長さを取得する関数です。
2023-11-20 05:58 PM
回答ありがとうございます。
記載コードの通り修正しましたら、エラーがなくなりました。
「propertyType」を変更してもきちんと出力されたので、これでプロパティ名が引っ張れます。
配列苦手なので助かりました!
後は値を引っ張ることができれば…
2024-06-10 05:35 PM
自作ラベルに断面形状パラメータの値を表示させたいと思って検索していたところ、この投稿に辿り着き、上のコードをいろいろ触っていた結果、値が取り出せました!
1年前のトピックですが、同じことで悩んでる方もいるかな~と思ったのでコードを共有させてもらいます。
! 断面形状パラメータのIDを取得
DIM parentProperties[]
n = REQUEST("Properties_Of_Parent", "PROFILEPARAMETER", parentProperties)
FOR i = 1 TO vardim1(parentProperties) / 4
baseIndex = (i - 1) * 4 + 1
if parentProperties[(baseIndex+3)]="梁増し打ち-上" then
_ID_top = parentProperties[(baseIndex)]
endif
NEXT i
! 断面形状パラメータの値を取得
n = request ("Property_Value_Of_Parent", _ID_top, _typeValue, dim1, dim2, propertyValues)
if n then
for d = 1 to vardim1(propertyValues)
val_top = propertyValues[d]
next d
endif