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アイコンにドラッグドロップしてみてください。複数のファミリファイルのパラメーターの値を連続して変更することができます。