従前と同様に、新しい Revit バージョンでは旧バージョン用に作成したアドイン アプリケーションやマクロとの互換性がありません。既存のモジュールを Revit 2015 で動作させるためには、移植作業が必要となります。今回は、開発環境も一新されていますので、まずは、準備が必要な新しい開発環境 について、ご紹介しましょう。
Revit 2015 の開発環境
- .NET Framework : .NET Framework 4.5
- コンパイラ : Visual Studio 2012 Update 4
- サポート OS:Windows 7(x86、x64)、Windows 8(x64)
※ Windows XP、Vista と Windows 8(x86) はサポートなし
移植作業では、最低でも上記開発環境でプロジェクトを開いて、Revit 2015 に含まれる Revit API アセンブリ、RevitAPI.dll と RevitAPIUI.dll を参照設定して、再ビルドする必要があります。Revit SDK やツールに関しては、こちら をご参照ください。
基本的な移植作業
Revit 2015 では、クラスやメソッド、プロパティなど、前バージョンで旧式にマークされたものが利用できなくなっています。これらは、置き換えられた代替クラス、メソッド、プロパティに書き換える必要があります。
個々に列挙するには数が多すぎるので、詳細は、Revit 2015 SDK に含まれる RevitAPI.chm から、What’s New 項を参照してみてください。
新しく利用できる API
ここでは、Revit 2015 になって利用できるようになった API 機能をいくつかご案内します。
アクティブ グラフィカル ビュー
UIDocument.ActiveGraphicalView プロパティは、アクティブ ドキュメントのアクティブなビューを返します。UIDocument.ActiveView とは異なり、このプロパティは、プロジェクト ブラウザやシステム ブラウザのようなビューを返さないので、グラフィカル ビューだけを抽出した場合に便利です。
既定の作成タイプ
PostCommand メソッドで Revit はカテゴリの要素の作成時に関連するコマンドが呼び出された際に、次のメソッド、プロパティで、ユーザ インタフェース上に表示される既定タイプを指定できるようになりました。
- Document.GetDefaultFamilyTypeId(categoryId):カテゴリの既定タイプを取得
- Document.SetDefaultFamilyTypeId(categoryId, familyTypeId):カテゴリの既定タイプを設定
- Document.IsDefaultFamilyTypeIdValid(categoryId, familyTypeId):既定タイプの有効性をチェック
- ElementType.IsValidDefaultFamilyType(familyCategoryId)
パラメータ
次のメソッドを利用することで、与えられたファミリのグループ内でパラメータ順序の変更が可能になっています。
- FamilyManager.GetParameters()
- Element.GetOrderedParameters()
- FamilyManager.ReorderParameters():指定された入力に従ってファミリ内でファミリ パラメータの順序を再指定
外部リソース サーバー API
キーノート データや Revit リンクのような外部ファイルに保存されてモデル内で利用されているリソース内容を、アプリケーションが Revit に提供する新しいサービスです。
- IExternalResourceServer:リンクされたファイルなど、アプリケーションが任意の場所から外部リソースを提供することを可能にする
- ExternalResourceLoadContent:IExternalResourceServer がその LoadResource() メソッドから Revit 内で利用されるはずのデータを返すことを可能にする
- ExternalResourceLoadContext:外部リソースをロードするリクエストの実行コンテキストについての追加情報を提供する
- ExternalResourceBrowserData:IExternalResourceServerが特定の場所から利用可能なリソースとサブフォルダをエミュレートすることを可能ぬする
- ExternalResourceReference:IExternalResourceServer によって提供される外部リソースを識別する
- ExternalResourceServiceUtils:外部リソース サービスに関連するユーティリティを含む
- IExternalResourceUIServer:外部リソース サービスに関連する操作用のカスタム UI を提供する
鉄筋の番号付け
- NumberingSchema クラス:特定の種類と範囲がどのように鉄筋の番号付け/タグ付けに利用されるかを定義する
- NumberingSchemaType 列挙型:NumberingSchemaType は Revit で利用可能な番号付けスキーマのタイプをリストする
注釈機能(雲マーク)
Revit 2015 はプロジェクト注釈の設定と関連付けられた雲マークへアクセスする新しい API クラス メンバが導入されています。
RevisionSettings クラス
注釈と雲マークに影響するプロジェクト全体の設定情報を含む
- RevisionAlphabet:アルファべット順注釈の注釈番号パラメータの操作に使われる文字を決定する
- RevisionCloudSpacing:プロジェクト内の雲マーク用グラフィックスのサイズを決定する
- RevisionNumbering:注釈番号がシート毎かプロジェクト毎かを判断する
新しい RevisionCloud クラス
- モデル内に表現されている雲マークと新しい雲マークの作成に関する情報にアクセス
- RevisionCloud.Create()、 RevisionId、IsRevisionIssued() とGetSheetIds()
- Element.Geometry は拡張され、雲マークを作成する実際のカーブラインを返す
RevisionCloud.GetSketchLines() はアプリケーションが雲マークのスケッチから線分を読み取ることを可能にする。
ネーミング ユーティリティ
- NamingUtils.IsValidName():入力値が Revit 内でオブジェクト名としての利用に妥当か識別したり、文字列中に禁止された文字用だけのルーチンチェックをおこなう
- NamingUtils.CompareNames(string nameA, string nameB):Revit 比較ルールに従って2つの名前を比較する
UpdaterRegister 上の変更はアップデータの一時的な
有効化と無効化を可能にすることが出来ます。
- UpdaterRegister.EnableUpdater()
- UpdaterRegister.DisableUpdater()
- UpdaterRegister.IsUpdaterEnabled(UpdaterId id)
マテリアル
- Material.IsNameUnique(Document document, String name)
- マテリアル名がドキュメント内で一意かどうかチェックする
- Material.Create() や Material.Duplicate() を介して新しいマテリアルを作成する前に名前の正当性の確認に使用
- Material.UseRenderAppearanceForShading
- シェードされたビューでマテリアルの外観が使われるかを決定
- CustomExporter.IsRenderingSupported()
- アプリケーションがレンダリングをサポートするライブラリが必要か、3D エクスポートがインストールされて利用できるかがテストすることを可能にする
サポートを提供します。
- GetStackedWallMemberIds() は重ね壁に沿ったサブウォールを取得する(下部から上部の順)
- IsStackedWall、IsStackedWallMember
- StackedWallOwnerId – isStackedWallMember は ture ならオーナー重ね壁
Wall Function
- WallType.Function – 壁タイプの Function プロパティへの読み込み/書き込みアクセス
