キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
ライブラリ&オブジェクト
ArchicadとBIMcloudのライブラリ、ライブラリの管理と移行、オブジェクトとその他のライブラリオブジェクトなどに関するフォーラムです。

【GDL】ACプロパティから情報を取得

SASII
Participant

ArchiCAD25で

プロパティマネージャーで、整数として情報を追加しているのに

円が描けないで困っています。

 

dim parentProperties[]
myPropertyGUID = ""

n = REQUEST ("Properties_Of_Parent", "ACPROPERTY", parentProperties)
for i = 1 to vardim1(parentProperties)/4
idx = 4*(i-1)
if parentProperties[4+idx] = "Y方向_ベース筋_本数" then
myPropertyGUID = parentProperties[1+idx]

_value1=0
_type=2
n = REQUEST ("Property_Value_Of_Parent", myPropertyGUID, _type, _dim1, _dim2, _value1)

if _type=4 then
n = split(_value1,"%n",_value10)
endif

TEXT2 0,0,_type
TEXT2 0.5,0,_value1
!CIRCLE2 0,0,_value10  ←_value10の数値で円を描きたい

endif
next i

1 件の受理された解決策
2件の返信2

Akira Ishida
Enthusiast

<>はその下のオレンジ文字の処理を説明しています。

!<_value1の
初期値を定義>

_value1=0

 

!<myPropertyGUIDのプロパティが整数の時>
_type=2  
!<myPropertyGUIDのプロパティの値を_value1に入れる>

n = REQUEST ("Property_Value_Of_Parent", myPropertyGUID, _type, _dim1, _dim2, _value1)

 

!<myPropertyGUIDのプロパティが文字列の時>

!※_typeの値を4と定義しているだけでその後の処理には使われていないです。

!myPropertyGUIDを整数のプロパティを対象にしているのでそもそも必要ない処理だと思います。

if _type=4 then

!この下でmyPropertyGUIDのプロパティ値を文字列から整数に変えたい処理ですか?
!そもそも_typeは2で処理がされているのでこのIF文はスルーされています。

n = split(_value1,"%n",_value10)
endif

ですので、ここまでの処理で_value10の値は「0」です。
半径0の円が描かれている状態です。
CIRCLEの半径は正の値しか許容しないので下図のエラーは出ると思いますが、「継続」すると 「正以外または0のパラメータ
」という警告ダイアログが出ませんか?

AkiraIshida_0-1675225299765.png



問い合わせの回答以上の話になってしまいますが、myPropertyGUIDのプロパティは「Y方向_ベース筋_本数」としているので、本数を半径にするのが適切なのでしょうか?

SASII
Participant

>>問い合わせの回答以上の話になってしまいますが、myPropertyGUIDのプロパティは「Y方向_ベース筋_本数」としているので、本数を半径にするのが適切なのでしょうか?

 

ご指摘の通り、本数はLINEで描きます。

 

エラーの原因はCIRCLEのスクリプトで発生してた様なので、

本質通り、そこをLINEに変えると、_value1(整数)で描画できました。

回答が見つかりませんでしたか?

このフォーラムで
他の記事をチェック

フォーラムへ戻る

最新の解決策をチェック

採用された解決策

新しいディスカッションを始める

投稿する