さて、今回からは、いよいよRevit 2014 のAPI のお話をしたいと思います。まず、具体的な変更点と強化点等を列挙したドキュメントはSDKの中の以下にあります:
- ” Revit Platform API Changes and Additions.doc”
- RevitAPI.chmファイルのなかの”What’s New” セクション
2箇所指摘しましたが、内容は同じです。ただ、英語でもありますし、総53ページにわたるので、すべてを読もうとすると、ちゅうちょしてしまう方もいらっしゃるかもしれません。ここでは、APIの変更点と新機能の概要をご紹介したいと思います。
まず変更が加わった機能は以下の分野です。これらの変更は関数のシグナチャーの変更を伴いますので、もしも既存のアプリをすでにお持ちの方は、コードを変更をする必要があります。これらの点に関しては、プロジェクトをビルドした時点でコンパイラのエラーとなったり、また変更になった旨を示唆する警告メッセージが出ますので、それらを元に比較的簡単に移植作業が可能のはずです。
- ドキュメントのオープン&保存
- フィルタリング要素コレクター
- ジオメトリのAPI
- スケッチ平面の作成
- ビームシステム/トラス作成
- ファミリシンボルのAPI
- 単位(Unit)のAPI
- ビューのAPI
- マテリアルのAPI
- UI API
- IFCのAPI
- 廃止されたAPIのクリーンアップ
Revit APIは変更が入った場合、基本的には、1リリースおいてから削除しますので、今回変更となった部分に関しては、まだ使用できる場合もあるかと思いますが、なるべくはやく最新の関数等に変更することをお勧めします。上記の最後の項目は昨年変更となった箇所です。
強化点としての新機能ですが、今リリースでは、大きく次の4つの分野に焦点がおかれています:
- 統合(インテグレーション)
- ドキュメンテーション
- モデリング
- コーディネーション
それらをさらに具体的に見ていきますと:
統合(インテグレーション)
- View API
- UI API
- コマンドAPI
- ドッキング可能なダイアログのAPI
View APIの強化機能としては、グラフィック表示オプション、表示カテゴリ(Visibility Graphics)オーバーライド設定、個々の要素表示のオーバーライド設定が可能になりました。これは、読み取り/書き込み (get/set)と共可能です。ビューフィルターのGet/Set/Add/Remove も可能です。これらのフィルタは ParameterFilterElement を使用します。クロップ領域も、ViewCropRegionShapeManagerで非矩形のクロップ領域の境界を設定/取得できます。ビューと参照(レファレンス)の吹き出し(コールアウト)は両方サポートされています。ビューポートの回転と中心点の位置のGet/Setが可能です。
UI APIとしては、UIViewでズーム操作が可能になり、サイズにフィットしてズーム、シートにズーム、倍ズームがAPIでできます。表示されているビューウインドウをクローズ することができます。(ただし、残念ながら、最後のビューがクローズできないという制限が残念ながら、まだ残っています。)PreviewControl.UIViewでプレビュー表示に UIView のハンドルを指定できるようになりました。また、PreviewControl.ScrollbarVisibilityでスクロールバーの表示設定にアクセスできます。
コマンドAPI では、Revitのネイティブなコマンドをアプリケーションから呼べるようになりました。UIApplication.PostCommand() メソッドをもちいてコマンド をポストすることが可能です。Revitは制御がAPIから戻ったときに指定されたコマンドを実行します。投稿可能なコマンドはAutodesk.Revit.UI.PostableCommand で列挙 されています。また、アドインによって作成された外部コマンドも投稿可能です。コマンドは一度に1つのみ投稿可能です。AddInCommand.BeforeExecutedはコマンドが実行される前の読み取り専用イベントです。
ドッキング可能なダイアログのAPIも公開されました。UIApplication.GetDockablePanes()で組み込みのネイティブなペインを含むすべてのドッキング可能なペインにアクセスできます。RegisterDockablePaneは起動時にドッキング可能なダイアログを提供することを登録するのに用います。DockablePaneIdはドック可能なペインにアクセスする拡張可能な enumを提供します。IDockablePaneProviderはユーザーがペインにフォーカスした際に呼ばれるインターフェースです。DockablePaneDataはDockablePaneStateを初期設定するのに用います。新しいクラスRevitDockablePaneでペインを表示、非表示、削除できます。
ドキュメンテーション
- 寸法と注釈
- 集計表API
- 移動(Displaced)表示
寸法と注釈では、先週プロダクトの強化点でお話しましたように、2014では、マルチリファレンスの注釈が可能となりました。複数の参照を含む新しい注釈です。MultiReferenceAnnotation がインスタンス、MultiReferenceAnnotationType がタイプのクラスです。寸法代替ユニットもAPIでアクセス可能です。DimensionStyle.AlternateUnits、DimensionStyle.Get/SetAlternateUnitsFormatOptions()、 DimensionStyle.AlternateUnitsPrefix/Suffixといったメソッドが用意されています。寸法ユニットタイプDimensionStyle.UnitTypeにより寸法スタイル(長さ、角度、または傾斜)でサポートされている単位のタイプにアクセスできます。
集計表は、製品のフィーチャーとしても新しくなった機能ですが、APIで公開されています。このAPIでは、ViewSchedule はTableView のチャイルド となりました。以前に存在していた ViewSchedule APIs はまだ有効 です。TableView の集計表APIにより、表セクション (ヘッダーと本体)、表の書式設定、個々のテーブル·セルの内容へのアクセスが可能です。たとえば、ヘッダーのグループ化、テーブルのセクション、フィールドの書式、フィールド情報へのアクセスを提供します。
移動(Displaced)表示。これは、製品の新機能でも紹介した機能です。DisplacementElement は実際の位置からずれて表示する要素を指定するために使用するエレメントのクラスで、DisplacementPathは実際の位置から移動表示された要素の動きを描く注釈を作成するためのクラスです。
モデリング
- スケッチ平面
- 敷地
- パラメータ
- 鉄筋
スケッチ平面は SketchPlane.Create(ElementId) という新しい方法をもちいて作成します。グリッド、参照面、またはレベルからSketchPlaneを作成することが可能です。SketchPlane要素の関連するプロパティを取得するための二つの新しいメソッドとして、SketchPlane.GetPlane() とSketchPlane.GetPlaneReference() が用意されています。SketchPlane.GetPlane() –は対応する平面を返し、SketchPlane.GetPlaneReference() -は、与えられた要素への参照を平面として返します。
敷地のAPIも大幅に公開されました。SiteSubRegion は subregionへのアクセスを可能にするクラスで、関連するTopographySurfaceから得られた特別なクラスです。境界の作成・読み取り・書き込みが可能になりました。また、BuildingPad は 建物パッド要素で、境界の作成・読み取り・書き込みが可能になりました。TopographySurface からポイントを編集するためには「編集のスコープ」を確立必要あります。TopographyEditScope により、アプリケーションが編集セッションを作成・維持することを可能にします。TopographySurface.AddPoints()は編集スコープで動作し、ドキュメントを再生成(Regenerate)しません。TopographySurfaceからポイントを読み込むには、TopographySurface.ReadPoints() 、FindPoints() 、ContainsPoint()、GetBoundaryPoints()、IsBoundaryPoint() を使用します。
ファミリパラメーで、FamilyParameter.IsSharedをもちいて、ファミリパラメータが共有パラメータであるかどうかを識別できます。
鉄筋に関するAPIも多くの小さな項目で強化されました。たとえば、AreaReinforcement ではビューで非不明瞭作成、設定、PathReinforcement では、長さ方向のオフセット作成、調整、およびビューで非不明瞭設定、FabricArea では、鉄筋の丸め設定を作成および管理、FabricSheetでは座標系の取得、ホストないでの配置、カバーオフセット調整、rebarでは、フックの向きを設定し、曲線を定義、丸め計算や制約マネージャを取得、Reinforcement/rebar/FabricRoundingManagerでは鉄筋丸めオーバーライドへのアクセスなどがあげられます。
次回はコーディネーションの分野とそのほかについてみていきたいと思います。
原田
コメント
コメントフィードを購読すればディスカッションを追いかけることができます。