ラベル ジャーナルファイル の投稿を表示しています。 すべての投稿を表示
ラベル ジャーナルファイル の投稿を表示しています。 すべての投稿を表示

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のアイコンにドラッグドロップすれば、今日の皆さんの操作が再現されるというわけです。

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

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