キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
BMP#07 announcement

5月開催 BIMマネージャープログラム受講申し込み受付中!

  

ArchiCAD19用カスタム建具をキープランに対応させる方法

toh
Graphisoft
Graphisoft
この記事では、カスタム建具をキープランに対応させる方法について説明します。自作の窓やドアオブジェクトにGDLスクリプトを追加する事で、キープランが表示されるようになります。
以下の手順に従ってください。
  1. 保存した建具を開き、サブタイプを日本建具に設定します(例:窓の場合、「ACJX4WindowShoji」。ドアの場合、「ACJX4Door」)。
[窓のサブタイプ]
 
[ドアのサブタイプ]
kp02
 
2.自作建具の「パラメータスクリプト」に以下のスクリプトを貼り付けます。窓には「窓用」、ドアには「ドア用」を使用してください。
kp03
 窓の場合:パラメータスクリプト
!------------ For Window Marker -----------------------
call "ListValuesJPN" parameters all gs_JPNObjectType = 6, !COMMPARS_WINDOWS1
gs_is_p6 = 1

!------------ KeyPlan No.+ sub no. --------------------
for ii=10 to 1 step -1
if type_no<10**ii then no_len=ii
next ii
for ii=10 to 1 step -1
if type_no_sub<10**ii then no_len_sub=ii
next ii

if no_and_sub = "" then
if type_no_sub=0 then
type_no_tx = STR(type_no, no_len, 0)
else
type_no_tx = STR(type_no, no_len, 0) + "-" + STR(type_no_sub, no_len_sub, 0)
endif
else
type_no_tx = no_and_sub
endif

parameters type_no_tx = type_no_tx
lock "type_no_tx"
 
 
 
ドアの場合:ドア用デフォルトパラメータ追加
ドアの場合は以下のデフォルトパラメータを追加する必要があります:
kp04
 
 
ドアの場合
stSill_Material(テキスト型)
iSill_Material(整数型)
stFrame_Material(テキスト型)
iFrame_Material(整数型)
p2(長さ型)
 
ドアの場合:パラメータスクリプト
パラメータスクリプト
!------------ For Door Marker -----------------------
call "ListValuesJPN" parameters all gs_JPNObjectType = 5, gs_is_p2 = 1
!------------ KeyPlan No.+ sub no. for ii=10 to 1 step -1 if type_no<10**ii then no_len=ii next ii for ii=10 to 1 step -1 if type_no_sub<10**ii then no_len_sub=ii next ii
if no_and_sub = "" then if type_no_sub=0 then type_no_tx = STR(type_no, no_len, 0) else type_no_tx = STR(type_no, no_len, 0) + "-" + STR(type_no_sub, no_len_sub, 0) endif else type_no_tx = no_and_sub endif
parameters type_no_tx = type_no_tx lock "type_no_tx"
 
 
 
  1. 自作建具の「2Dスクリプト」に以下のスクリプトを貼り付けます。窓には「窓用」、ドアには「ドア用」を使用してください。
   窓の場合:2Dスクリプト
kp05
 
!------------------ キープラン対応部分 -------------------------
if GLOB_PREVIEW_MODE = 2 then 
	is_flag = 1
	goto "KeyPlan_Marker"
else
	is_flag = 0
endif
!------------------ キープラン対応部分 ------------------------- "KeyPlan_Marker": shxx=0 xxx = REQUEST ("window_show_dim", "", shxx)
add2 0, WIDO_SILL
un_id=1000
IF (shxx = 1 and key_mark_flag = 1) OR GLOB_PREVIEW_MODE = 2 then
if scale_link_label then if GLOB_SCALE > detail_high then marker_type =0 else marker_type =1 endif else if iKey_Mark_Type = 1 then marker_type = 0 else marker_type = 1 endif endif
CALL "AC14_symbol_marker" PARAMETERS k_dia = k_dia, \ k_line = k_line, k_lenb = k_lenb, k_lena = k_lena, k_lenc = k_lenc, fsize_flag = fsize_flag, fsize = fsize, k_notation1 =k_notation1, n_offx1 =n_offx1, n_offy1 =n_offy1, k_notation2 =k_notation2, n_offx2 =n_offx2, n_offy2 =n_offy2, k_notation3 = k_notation3, n_offx3 =n_offx3, n_offy3 =n_offy3, k_notation4 =k_notation4, n_offx4 =n_offx4, n_offy4 =n_offy4, pen_text = pen_marker, pen_symbol = pen_marker, pen_fill = keyplan_fill_pen, type_fill = keyplan_fill_type, keyplan_fill_bg_pen = keyplan_fill_bg_pen, fontType = fontType, type_symbol = stW_Type_Name, type_no = type_no_tx, globid = GLOB_ID, k_idflag = k_idflag, fill_flag = bKeyplan_fill, marker_type = marker_type,
op_height = B, is_flag = is_flag, ltype_marker = ltype_marker, wd_show_size = wd_show_size, size_anno_x = size_anno_x, size_anno_y = size_anno_y, A = A,
paper_scale = paper_scale, ex_fsize = ex_fsize, wd_fsize = wd_fsize, k_dia_paper = k_dia_paper, k_lenb_paper = k_lenb_paper, k_lena_paper = k_lena_paper, k_lenc_paper = k_lenc_paper,
n_offx1_paper = n_offx1_paper, n_offy1_paper = n_offy1_paper, n_offx2_paper = n_offx2_paper, n_offy2_paper = n_offy2_paper, n_offx3_paper = n_offx3_paper, n_offy3_paper = n_offy3_paper, n_offx4_paper = n_offx4_paper, n_offy4_paper = n_offy4_paper, size_anno_x_paper = size_anno_x_paper, size_anno_y_paper = size_anno_y_paper,
k_dia_M = k_dia_M, k_lenb_M = k_lenb_M, k_lena_M = k_lena_M, k_lenc_M = k_lenc_M,
n_offx1_M = n_offx1_M, n_offy1_M = n_offy1_M, n_offx2_M = n_offx2_M, n_offy2_M = n_offy2_M, n_offx3_M = n_offx3_M, n_offy3_M = n_offy3_M, n_offx4_M = n_offx4_M, n_offy4_M = n_offy4_M, size_anno_x_M = size_anno_x_M, size_anno_y_M = size_anno_y_M,
k_rot_ang=k_rot_ang
endif
!________________________ Regulation marker __________________
if reg_mark_flag = 1 and iW_Regulations <> 5 and iW_Regulations <> 4 then
CALL "AC14_regulation_marker" PARAMETERS r_dia = r_dia, \ r_lenb = r_lenb, r_lena = r_lena,
paper_scale = paper_scale, r_dia_paper = r_dia_paper, r_lenb_paper = r_lenb_paper, r_lena_paper = r_lena_paper, r_dia_M = r_dia_M, r_lenb_M = r_lenb_M, r_lena_M = r_lena_M,
pen_text = reg_pen, pen_symbol = reg_pen, pen_fill = mark_fill_pen, type_fill = mark_fill_type, mark_fill_bg_pen = mark_fill_bg_pen, fill_flag = mark_fill_flag, fontType = fontType, stW_Regulations = stW_Regulations, iW_Regulations = iW_Regulations, kaj_door_ident = kaj_door_ident, is_flag = is_flag, ltype_marker = ltype_marker
endif
del top
 
 
ドアの場合:2Dスクリプト
kp06
 
!------------------ キープラン対応部分 -------------------------
if GLOB_PREVIEW_MODE = 2 then 
	is_flag = 1
	goto "KeyPlan_Marker"
else
	is_flag = 0
endif
!------------------ キープラン対応部分 ------------------------- "KeyPlan_Marker": xxx = REQUEST ("door_show_dim", "", shxx)
add2 0, WIDO_SILL
if (shxx = 1 and key_mark_flag = 1) OR GLOB_PREVIEW_MODE = 2 then
if scale_link_label then if GLOB_SCALE > 50 then marker_type =0 else marker_type =1 endif else if iKey_Mark_Type = 1 then marker_type = 0 else marker_type = 1 endif endif
CALL "AC14_symbol_marker" PARAMETERS k_dia = k_dia, \ k_line = k_line, k_lenb = k_lenb, k_lena = k_lena, k_lenc = k_lenc, fsize_flag = fsize_flag, fsize = fsize, k_notation1 =k_notation1, n_offx1 =n_offx1, n_offy1 =n_offy1, k_notation2 =k_notation2, n_offx2 =n_offx2, n_offy2 =n_offy2, k_notation3 = k_notation3, n_offx3 =n_offx3, n_offy3 =n_offy3, k_notation4 =k_notation4, n_offx4 =n_offx4, n_offy4 =n_offy4, pen_text = pen_marker, pen_symbol = pen_marker, pen_fill = keyplan_fill_pen, type_fill = keyplan_fill_type, keyplan_fill_bg_pen = keyplan_fill_bg_pen, fontType = fontType,
type_symbol = stD_Type_Name, type_no = type_no_tx, globid = GLOB_ID, stD_Lock_Type = stD_Lock_Type, iD_Lock_Type = iD_Lock_Type, e_offx =e_offx, e_offy =e_offy, k_idflag = k_idflag,
fill_flag= bKeyplan_fill, marker_type = marker_type,
op_height = B, is_flag = is_flag, ltype_marker = ltype_marker,
wd_show_size = wd_show_size, size_anno_x = size_anno_x, size_anno_y = size_anno_y, A = A,
paper_scale = paper_scale, ex_fsize = ex_fsize, wd_fsize = wd_fsize, k_dia_paper = k_dia_paper, k_lenb_paper = k_lenb_paper, k_lena_paper = k_lena_paper, k_lenc_paper = k_lenc_paper,
n_offx1_paper = n_offx1_paper, n_offy1_paper = n_offy1_paper, n_offx2_paper = n_offx2_paper, n_offy2_paper = n_offy2_paper, n_offx3_paper = n_offx3_paper, n_offy3_paper = n_offy3_paper, n_offx4_paper = n_offx4_paper, n_offy4_paper = n_offy4_paper, size_anno_x_paper = size_anno_x_paper, size_anno_y_paper = size_anno_y_paper,
k_dia_M = k_dia_M, k_lenb_M = k_lenb_M, k_lena_M = k_lena_M, k_lenc_M = k_lenc_M,
n_offx1_M = n_offx1_M, n_offy1_M = n_offy1_M, n_offx2_M = n_offx2_M, n_offy2_M = n_offy2_M, n_offx3_M = n_offx3_M, n_offy3_M = n_offy3_M, n_offx4_M = n_offx4_M, n_offy4_M = n_offy4_M, size_anno_x_M = size_anno_x_M, size_anno_y_M = size_anno_y_M, k_rot_ang=k_rot_ang
endif
!________________________ Regulation marker __________________
if reg_mark_flag = 1 and iD_Regulations <> 15 and iD_Regulations <> 14 then
CALL "AC14_regulation_marker" PARAMETERS r_dia = r_dia, \ r_lenb = r_lenb, r_lena = r_lena, r_dia_paper = r_dia_paper, r_lenb_paper = r_lenb_paper, r_lena_paper = r_lena_paper, r_dia_M = r_dia_M, r_lenb_M = r_lenb_M, r_lena_M = r_lena_M, paper_scale = paper_scale, pen_text = reg_pen, pen_symbol = reg_pen, pen_fill = mark_fill_pen, type_fill = mark_fill_type, mark_fill_bg_pen = mark_fill_bg_pen, fill_flag = mark_fill_flag, fontType = fontType, stD_Regulations = stD_Regulations, iD_Regulations = iD_Regulations, kaj_door_ident = kaj_door_ident, is_flag = is_flag, ltype_marker = ltype_marker
endif
del top
 
 

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

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

フォーラムへ戻る

最新の解決策をチェック

採用された解決策

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

投稿する