2015年6月28日日曜日

集計表~用途別面積表

階別・用途別の面積表

前回は、住戸タイプの各階別の分布を集計表を使って調べましたが、今回は同様に面積を部屋用途ごと、階ごとに集計してみましょう。
階別・用途別に面積表を作成する

面積用途を作成する

まず、前回の住戸タイプ同様、面積用途を表す集計キーを作成します。

(1) [表示]-[集計]-[集計表/数量]
(2) カテゴリで「部屋」、集計キーを選択し、下の図のように設定します。
集計キー 「面積用途」 を作成
(3) [パラメーターを追加]を選択し、「面積用途番号」を作成します。前回同様、このパラメーターの型は整数にすることが重要です。
パラメータータイプは「整数」

(4)フィールドタブと並べ替えタブは以下のようになります。
面積番号を上位にする

面積番号で並べ替える

面積用途

[データ行を挿入]をクリックして、使用する面積用途を追加します。
面積用途を追加

カラースキーム

次に平面図で面積用途を各部屋に設定しますが、このとカラースキームを使うと便利です。平面図のビューを開き、ビューのプロパティ[カラースキーム]をクリックします。
カラースキームをクリック
カテゴリから「部屋」を選択し、リストからなにかを選んで複製し、名前をつけます。
既存を複製して名前をつける

タイトルを設定し、色から「面積用途」を選択します。面積用途がリストされるので、必要に応じて色を変えてOK。
面積用途の色を編集する

平面図が面積用途ごとに色分けされます。部屋を選択し、プロパティ「面積用途」を変更します。
平面図を色で確認しながら面積用途を設定する
このときビュープロパティで「カラースキームの場所」を「前景」にしておけば、色が階段などで白抜きになることがありません。

面積表の作成

各部屋に面積用途が設定できたら、集計表を作成します。前回の応用ですので、よく注意して設定してみてください。

まず、[表示]-[集計]-[集計表/数量]で集計表を作成します。カテゴリは部屋を選び、今度はそのままOKで次に進みます。

使用可能なフィールドからまず、「レベル」「面積」「面積用途番号」を選択します。

次に、「計算値」を押してください。前回を思い出してください。ここではif文を使って条件を設定するのですが、ちょっと注意が必要です。面積を求めるのですから以下のように設定します。
タイプは「面積」、計算式は「if(面積用途番号=1,面積,0)」
この計算式は、「もし、部屋の"面積用途番号"が1ならば、その部屋の"面積"を返し、そうでなければ0を返しなさい」という意味です。

同様にほかの計算式も以下のように設定します。



最後のフィールドとして、合計値を設定します。

並べ替えタブではレベルごとに並べ替えられるように、次のように設定します。
並べ替えタブの設定
書式では二つ重要なポイントがあります。
面積と面積用途番号を「非表示」にする
専用・共用・便所・設備・合計の位置合わせを右に、合計を計算にチェックを入れる
以上の設定で以下のような集計表が完成します。
階別・用途別面積表

2015年6月21日日曜日

集計表~階別のタイプ分布

住戸タイプの分布を調べる

集合住宅の各フロアに○○タイプの部屋がいくつあるのかを下の図のように集計表を使って調べてみましょう。
階別住戸タイプ分布

キーとなるテクニックは次の二つです。

  • 集計キー
  • 計算式

集計キーを作成

以下の手順で住戸タイプの一覧を作成します。

(1) [表示]-[集計]-[集計表]
(2) カテゴリは「部屋」、集計表の名前は「住戸タイプ一覧」、集計キーをチェックして、キー名を「住戸タイプ」とします。(名前はなんてもよい)
集計キーを作成
(3) [フィールド]タブで[パラメーターを追加]をクリック
(4) [名前]に「住戸タイプ番号」、パラメータータイプを「整数」にします。

パラメータータイプを「整数」にする。
(5) [フィールド]タブで、「住戸タイプ番号」、「キー名」の順に並べ替え、[並べ替え/グループ化]タブで先頭の並べ替え方法を「住戸タイプ番号」にし[OK]。
並べ替え方法を変更

集計キーを作成する

各住戸タイプの名称をキーに割り当てます。

(1) [集計表/数量を修正]-[行]-[挿入]-[データ行]で住戸タイプの数だけ行を追加します。
必要なだけデータ行を追加
(2)住戸タイプ番号に数字を、キー名にタイプ名を記入します。
住戸タイプに数字、キー名に名前

集計キーを部屋に割り当てる

作成した集計キー「住戸タイプ」は部屋のパラメータとなるので、集計表や平面図などから、住戸を表す部屋に割り当てます。
部屋に集計キーを割り当てる
集計表を使っても割り当てることができます。
集計表で割り当てるのも効率的

階別の住戸タイプ分布の集計表を作成

キーの割り当てが終わったら、集計表を作成します。

(1) [表示]-[作成]-[集計]-[集計表/数量]
(2) カテゴリは「部屋」、任意の名前を設定。
(3) [フィールド]タブで、「レベル」と「住戸タイプ番号」を追加し、[計算値]をクリックします。
レベルと住戸タイプ番号を追加し「計算値」をクリック

(4) 計算値の名前を「Aタイプ」(住戸タイプの名前)とし、タイプを「整数」(住戸タイプの戸数なので整数が良い)、計算式を次のように設定しOK。

                                               if(住戸タイプ番号=1,1,0)
計算式を設定
これは、「もし住戸タイプ番号が1ならば、戸数として1を、そうでなければ0を返す」という意味です。

(5)同様にBタイプ、Cタイプの計算値を設定します。
Bタイプの住戸タイプ番号は2
Cタイプの住戸タイプ番号は3
(6)戸数合計を追加します。同様に[計算値]をクリックし、下の図のような設定にします。
戸数合計の計算値
(7)並べ替え/グループ化のタブで下の図のように並べ替えを設定します。
並べ替えの設定
(8)書式タブで、Aタイプ、Bタイプ、Cタイプ、戸数合計のフィールドの[合計を計算]をONにします。また、住戸タイプ番号は「非表示」にします。
「合計を計算」を忘れずに!
以上で下の図のような集計表が完成します。
完成した住戸分布集計表

集計キーを作成したのは、計算式のif文が、現在のところ数値とYes/Noに関するの判定しかできないからです。

属性情報はBIMのかなめです。集計表をうまく利用して仕事の効率を高めましょう。




2015年6月14日日曜日

ボードの高さを変えるには?

壁の拡張レイヤ

LGSの壁を断面・展開図に表示するとき、「スタッドの上端はスラブまでだけど、GBは天井まで」ということはよくあります。例えば、次のようなLGSの壁タイプを作成し
壁のアセンブリ

普通に断面を切ると、壁全体がスラブ-スラブで作成されます。

ボードを高さを変更してみる
この状態から、GBのレイヤを天井まで下げてみましょう。

壁タイププロパティで断面を調整

(1) 壁タイププロパティの構造の編集をクリックし、アセンブリを編集ダイアログボックスを開く。
(2) ダイアログ左下の[プレビュー]をクリック。
(3) ダイアログ左下のビューを[断面図:タイプ属性を修正]を選択

以上の手順で、下の図のようになります。サンプルの高さを変更すると見やすくなります。

次に、マウスのホイールボタンを使って、プレビューの上部を拡大します。
ダイアログ右下の[修正]クリックし、GBの上端の水平線をクリックすると、「かぎ」のマークが現れます。


この鍵のロックを外します。
ロックを外す

同様にすべてのレイヤのロックを外し、OKで編集を終了します。

断面を修正

断面図で壁を選択すると三角形の形状ハンドルが現れるので、これをドラッグしてボードの高さを変更します。
ボードの高さを変更
この場合はGBレイヤを拡張しましたが、LGSのレイヤのロックを外しても同じです。

制限事項

この機能は拡張レイヤ(extended layer)と呼ばれる機能ですが、制限事項もあります。この「ロック外し」は隣り合うレイヤでなければならないので、下の図のように左右のGBの高さが同じの場合は有効なのですが、

高さが異なる場合は対応できません。

厳密に高さを合わせたいのであれば、パーツを使うことになります。




2015年5月1日金曜日

ファミリの一括処理(2)

複数のファミリのパラメーターの値を設定するには?

まず、実際に一つのファミリファイルを開いて、ファミリパラメーターの値を設定します。たとえば、「製造元」というタイプパラメーターに「Revit Peeler」と入れて、保存して終了します。次の手順でファミリファイルを開き、パラメーターの値を変更して保存して閉じる、を実行してみてください。

(1)ファミリを開く
(2)[作成]タブ-[プロパティ]-[ファミリタイプ]
(3)識別情報の「製造元」に「Revit Peeler」を設定しOK

(4)[アプリケーションマーク(左上のR)]-[閉じる]で保存してファイルを閉じる。

ここで前回ちょっとご紹介したジャーナルファイルを開いてみます。ジャーナルファイルは一般に

C:\Users\(ユーザー名)\AppData\Local\Autodesk\Revit\Autodesk Revit 2015\Journals

にあるテキストファイルです。この大量のテキストファイルの中から、日付が最新のファイルを開いてみてください。このファイルは先ほどのRevit上の操作を記録したものです。ちょっとややこしいのですが、検索機機能を利用して「Revit Peeler」の文字を探してみてください。

検索で見つかったあたりをよく見てください。「Jrn.」で始まる分がRevitでの操作を表しています。まず(2)でファミリタイプのダイアログボックスを開いたのですが、これは・・・

Jrn.Command "Internal" , "このファミリの定義済みタイプを修正 , ID_FAMILY_TYPE"

です。Jrn.Commandはコマンドを起動することを意味しています。
次に(3)で「製造元」のプロパティを「Revit Peeler」にしました。これはテキスト分の最後の「Revit Peeler」があるヶ所です。

Jrn.Grid "Control; Modal , ファミリ タイプ , Dialog_Family_FamilyType; Control_Family_TypeGrid"  , "EditIfValid" , "製造元" , "ValueCol" , "Revit Peeler"

1行目の最後の「_(アンダーバー)」は次の行に文章が続いていることを示しています。

そしてOKボタンを押すのは・・・・

 Jrn.PushButton "Modal , ファミリ タイプ , Dialog_Family_FamilyType" _
         , "OK, IDOK"

そして大事なことは、この変更をファイルに反映させることで、これは・・・

Jrn.Data "Transaction Successful"  _
        , "ファミリ タイプ"

です。この4つの文を使って、前回説明したContentBatchUtilityのUpgrade_RFA.txtを改造してみましょう。

Upgrade_RFA.txtの編集


Upgrade_RFA.txtをテキストエディタで開き、Sub upgrade(namepath, file)の行を探してください。これはいわゆる「サブルーチン」であり、すべてのファイルに繰り返されるジャーナル文を示しています。この中の

Jrn.Data "File Name" _
          , "IDOK", namepath


Jrn.Command "Internal" , " , ID_REVIT_SAVE_AS_FAMILY"
の間に上記の4つの文をコピー&ペーストしてください。完成形は

Sub upgrade(namepath, file)

Jrn.Command "Menu", "Open an existing project , 57601 , ID_FILE_OPEN"
  Jrn.Data "File Name" _
          , "IDOK", namepath


Jrn.Command "Internal" , "このファミリの定義済みタイプを修正 , ID_FAMILY_TYPE"

Jrn.Grid "Control; Modal , ファミリ タイプ , Dialog_Family_FamilyType; Control_Family_TypeGrid" , "EditIfValid" , "製造元" , "ValueCol" , "Revit Peeler"

Jrn.PushButton "Modal , ファミリ タイプ , Dialog_Family_FamilyType" , "OK, IDOK"
Jrn.Data "Transaction Successful"  , "ファミリ タイプ"


 Jrn.Command "Internal" , " , ID_REVIT_SAVE_AS_FAMILY"
  Jrn.Data "File Name"  , "IDOK", namepath

  Jrn.Command "Menu" , "Close the active project , ID_REVIT_FILE_CLOSE"


End Sub

となります。これを保存して、前回の手順に従ってこのファイルリストを作成し、Upgrade_RFA.txtをデスクトップのRevitアイコンにドラッグドロップしてみてください。複数のファミリファイルのパラメーターの値を連続して変更することができます。


2015年3月8日日曜日

ファミリの一括処理(1)

Revitでも連続処理ができる!

あまり知られていませんが、RevitでもAutoCADみたいにファイルの連続処理ができます。たとえば

  • 複数のファミリのバージョンをアップグレードする
  • 複数のファミリのプロパティに値を設定する

などの作業ができます。手順を追って説明します。

ContentBatchUtility

連続処理を行うユーティリティが以下のフォルダにあります。
C:\Program Files\Autodesk\Revit 2015\ja-JP\Utilities\ContentBatchUtility
このフォルダの中に次の3つのファイルがあります。

  • readme.english.txt 説明書きです。
  • Upgrade_RFA.bat  ファイルをリストアップするバッチファイル
  • Upgrade_RFA.txt  ファイルをアップグレードするジャーナルファイル(呪文のようなもの)


ファイルリストを作成する

旧バージョンのファミリを一括で現バージョンにアップルグレードしてみましょう。「開いて上書き保存」を繰り返せばいいだけです。以下の手順に沿ってアップグレードするファミリファイルのリストを作成します。

(1)新しくフォルダ(ここではFolderAとします)を作成して、そのフォルダの中にアップグレードしたいファイルをコピーします。サブフォルダがあってもかまいません。

(2)(1)で作成したFolderAにUpgrade_RFA.batをコピーします。

(3)Upgrade_RFA.batを右クリックして「編集」を選択します。お好みのテキストエディタで開いていただいても結構です。

(4)先頭行のCHCP 1252 を 932に書き換えて保存します。(CHCPはChange Code Pageのコマンドで932はshift-jisの文字コードを示します。ちなみに1252は英語一般のことです。)
CHCP 1252を

CHCP 932 に書き換えて保存
(5)Upgrade_RFA.batをダブルクリックして実行しすると、famlist_rfa.txtというテキストファイルが作成されます。
Upgrade_RFA.batをダブルクリックするとfamlist_rfa.txtができる。

このファイルを開いてみると、このフォルダ内にあるrfaファイルの絶対パスのリストができていることがわかります。

(6)ファミリファイルの属性の「読み取り専用」属性を外す。
ファミリが入っているフォルダを右クリックして「プロパティ」を選択し、「全般」タブの属性の「読み取り専用」のチェックが外れていることを確認してください。
読み取り専用では上書き保存が出ないので、チェックされていたら外す。

ファミリをアップグレードする。

今度はファミリを連続で「開いては保存して閉じて」みます。ちょっと意外な動きをするので慎重に手順を追ってください。

(1)Revitを閉じます。デスクトップにRevitのアイコンが表示されていることを確認してください。

(2)Upgrade_RFA.txtをドラッグして、デスクトップのRevitアイコンにドロップします。

するとまるでRevitが自動運転されているように、次々とファイルを「開く」→「保存して閉じる」を繰り返します。

ジャーナルファイル

この処理はジャーナルファイルというあなたのRevitの操作を記録しているファイルです。以下のパスを確認してみてください。

C:\Users\(ユーザー名)\AppData\Local\Autodesk\Revit\Autodesk Revit 2015\Journals

この中にたくさんのテキストファイルがあります。これらはあなたがRevit上で行ったすべての操作がマウスの動きまで含めて記録されているファイルです。

このファイルを上記と同様にRevitのアイコンにドラッグドロップすれば、今日の皆さんの操作が再現されるというわけです。

もちろん今日の操作前のファイルが残っていれば、ということですが。

次回はこれを利用して、ファミリのプロパティを一気に更新する方法をご紹介します。


2015年3月1日日曜日

階段手すり(6)

踊り場の手すり

踊り場の手すりの手すり子の位置を調整します。フラットバーの手すりなので、コーナー部の手すり子の位置がちょっと問題です。
コーナー手すり子を調整します。
平面図を開き、手すりをダブルクリックして、パスを編集します。
[修正|手すり > パスをスケッチ]-[修正]-[要素を分割]を使って、コーナーからすこし離れた位置でパスを分割します。
パスを分割
パスを分割すると、分割点に手すり子が発生します。
手すり子の位置が変わりました。

「手すり子の位置」プロパティ

上の例では、コーナーに手すり子が発生していませんが、これは手すりタイプの設定に秘密があります。手すりのタイププロパティのうち「手すり子の位置」をチェックしてみましょう。

手すり子の位置
ここではまず、下段の「手すり柱」の欄に注目します。コーナー柱が「なし」、コーナー支柱の位置が「なし」に設定されているため、セグメントの分割点に支柱は発生せず、始点と終点にのみ指定された支柱が発生します。

それではなぜ、先ほどセグメントを分割した位置には手すり子が発生しているのでしょうか?これは「主パターン」の設定で

  • パターンを中断が「各セグメントの端」
  • 位置合わせが「フィットするように拡げる」

に設定しているからです。これらの設定の違いを確認するため、平面上に次のような三つのセグメントからなる手すりを作成してみました。違いが分かるように、始点側は赤、終点側は緑、主パターンのの手すり子は青に変更しています。

始点:赤、主パターン:青、終点:緑
「各セグメントの端」でパターンを中断し、「フィットするように拡げる」を位置合わせに指定しているので、主パターンのピッチは

  • セグメント1 : 3600÷5=720
  • セグメント2 : 2800÷4=700
  • セグメント3 : 3400÷5=680

というように主パターンで指定した「750」に最も近いピッチに割り込まれています。ここで、パターンの中断を「なし」に設定してみると・・・
パターンの中断:なし
この場合、セグメントの分割を無視して、視点から終点の間を750mmに最も近い値で割り込みますので、主パターンのピッチは

  • 全長9800÷750=13.066666≒13       9800÷13=753.84

となります。次に、パターンの中断を「各セグメントの端」に戻し、位置合わせを「開始点」に設定します。
パターンの中断「各セグメントの端」 位置わせ「開始点
この場合、各セグメントごとに開始点側(赤)から750mmずつ割り付けます。同様に、
パターンの中断「各セグメントの端」 位置合わせ「終点
パターンの中断「各セグメントの端」 位置合わせ「中心
ここで、パターンを中断を「各セグメントの端」、位置合わせを「フィットするように拡げる」に戻し、セグメント2を100,100,2600に切断してみると次の図ようになります。

パターンの中断「各セグメントの端」 位置合わせ「フィットするように拡げる
セグメント2を100,100,2600に分割
このようにすると2番目の100mmのセグメントの始点には手すり子が発生しません。セグメントの間隔が狭すぎて、主パターンが作成できないために起こる現象です。上記の階段の踊り場の事例はこの特徴によるものです。
それでは、セグメントの間隔がどの程度あれば、主パターンが生成されるのでしょうか?試しに2番目のセグメントを100mmから400mmまで順に広くしてみます。
200に分割しても主パターンは発生しない
300でも主パターンは発生しない
400mmになると主パターンが発生する
400mmまで広げると、主パターンが発生します。今度は主パターンの設定を変更して「以前の値からの距離」を750から800に変更します。
主パターン「以前の値からの距離」800
状況はなにも変わりません。ところが「以前の値からの距離」を801mmに変更すると・・・

主パターン「以前の値からの距離」:801
再び、400mmのセグメントの始点から手すり子が消えます。「フィットするように拡げる」を選択した場合、セグメントの距離が主パターンを構成するために必要な距離の半分を切った時には、主パターンが発生しません。

この特性を知っておけば、様々なパターンに対応できます。