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のセグメントの始点から手すり子が消えます。「フィットするように拡げる」を選択した場合、セグメントの距離が主パターンを構成するために必要な距離の半分を切った時には、主パターンが発生しません。

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