建具調整スクリプト

建具表の作成などのために必要な作業のいくつかをスクリプト化しています。

PROCEDURE Tategu;

VAR
	cou :INTEGER;
	daki,gaku,ww,hh,fl :REAL;
	hugou,glass:STRING;

	PROCEDURE Fugou(h:handle);
BEGIN
hugou :=  GetRField(h,'tategu','符号');
cou := count((('tategu'.'符号'=hugou)));
SetRField(h,'tategu','数量',Num2Str(0,cou));

SetClassN(h,'木造建具-本体',false);

END;

	PROCEDURE Mado(h:handle);
BEGIN
daki :=  Str2Num(GetRField(h,'Window','JambWidth'));
gaku := Str2Num(GetRField(h,'Window','IntTrimWidth'));

IF(daki<gaku)THEN daki := gaku;

hh := Str2Num(GetRField(h,'Window','height')) - daki*2;
ww := Str2Num(GetRField(h,'Window','Width'))- daki*2;
fl := Str2Num(GetRField(h,'Window','Elevation')) + daki;

SetRField(h,'tategu','高さ',Num2Str(1,hh));
SetRField(h,'tategu','幅',Num2Str(1,ww));
SetRField(h,'tategu','取付高',Num2Str(0,fl));

glass := GetRField(h,'tategu','ガラス');


if( pos('型',glass)=0 ) THEN	BEGIN
	SetRField(h,'Window','GlazingClass','木造建具-3Dガラス1');
	SetRField(h,'Window','TransomGlazingClass','木造建具-3Dガラス1');

	END  ELSE 	BEGIN
	SetRField(h,'Window','GlazingClass','木造建具-3Dガラス2');
	SetRField(h,'Window','TransomGlazingClass','木造建具-3Dガラス2');

	END;

END;

BEGIN

ForEachObject(Fugou,((R IN ['tategu'])));
ForEachObject(Mado,((PON='Window')));

END;

run( Tategu );

例によって、省力化を計るため、モデルと図面表記(建具表のレコードフォーマット)とを関連付けるのが主な目的で、主要な機能は以下の3つです。

建具の数量

これは単純に同じ建具符号の数量をcountで取得してフィールドに入力してます。

建具サイズの取得

これも単純です。

建具表で表示するサイズは枠内の有効サイズにしているのですが、全体のサイズからだき寸法を引くことで算出し、あわせてFLからの取付高さも計算してフィールドに入力しています。(窓オブジェクトのみ対応させてます。モデリングの仕方でコードは変わってくるかと思います。)

ちなみに、この辺を一括でしたかったのと、もろもろの理由から、木造BIMツールの窓ではなく、一般の窓でアルミサッシは作成しています。(ただ、細かい設定は木造BIMツールの方が向いていたりするので何を優先させるかは常に揺れています・・・)

窓オブジェクトのガラス表現をレコードフォーマットに合わせる

これは先の2つとは逆に、レコードフォーマットの情報をモデルに受け渡しています。

「ガラス」フィールドの値に「型」の文字が入っていれば、窓オブジェクトのガラスのクラスを型ガラスのクラスにし、そうでない場合は透明ガラスのクラスにするように設定しています。

これは省力化の意味もありますが、建具表のガラスをどちらで表記したかを、モデルで視覚的に判別することができるようにして、内容のチェックをしやすくする、という目的もあります。

ちなみに、建具表の内容も、データシートをつくることで見やすくしています。

画像1

(データシートの使いみちは、視覚的に整理することくらいしか思いついていないのですが、もっと効果的な使い方があれば知りたいです。)

省力化できることはとにかくやってみる

とりあえず、ここ最近使い方が変わった部分や工夫してみたことは一通り書いてみました。

引き続き、省力化できることはとにかくやってみる、の精神でやっていきたいと思います。(ここにそれをまとめるのは、やってみるモチベーションの一つだったりします。)

この記事が気に入ったらサポートをしてみませんか?