Autodesk Developer Network 2011
Autodesk
MultithreadedCalculation
§別スレッドで解析データを作成
§事前に選択された要素に表示
§解析結果表示に現在ビューのSpatialFieldManagerを使用
§IUpdater は要素の形状変化の解析データを更新するために実装
§
§
§注意:アイドリングイベントハンドラ関数の引数の型が変更されました。
§UpdateWhileIdling()の最初の2行:
§
§Application app = sender as Application;
§UIApplication uiApp = new UIApplication(app);
§
§を以下に置き換える必要があります:
§
§UIApplication uiApp = sender as UIApplication;
§
MultiThreadedCalculation.png
いくつか解析のサンプルをみてきましたが、このサンプルはではマルチスレッドがどのように、解析視覚化フレームワークに表示するデータをリアルタイムに提供し、モデルに作業を行いながら、データが変わった時はそれをその都度表示を変更します。この場合、シュミレーションなどで作成した解析データは別のスレッドで作成されます。注意点ですが、Revit API自体はマルチスレッドをサポートしていません。しかし、アプケーションの内部で、別のスレッドを開始してデータを作成して、アイドリングイベントを使用してRevitがビジー状態でないタイミングでモデルに反映させます。シュミレーションした解析データは選択済みの要素に表示されます。解析視覚化フレームワークのSpatialFieldManagerを使用してアイドリングイベントで解析結果をリアルタイムに表示します。アイドリングイベントハンドラ関数は送信元の引数をとりますが、Revit 2011ではこの引数はApplicatoinオブジェクトでしたが、Revit 2012ではUIアプケーションオブジェクトに変更されています。




Open C:\a\lib\revit\2012\SDK\Samples\AnalysisVisualizationFramework\MultithreadedCalculation\MultithreadedCalculation.rvt.
Run RvtSamples > AnalysisVisualizationFramework > MultithreadedCalculation.

意味不明

アイドリングイベントハンドラ関数のarg引数の型が変更されました
UpdateWhileIdling()の最初の2行:

Application app = sender as Application;
UIApplication uiApp = new UIApplication(app);

置き換える必要があります:

UIApplication uiApp = sender as UIApplication;