いくつか解析のサンプルをみてきましたが、このサンプルはではマルチスレッドがどのように、解析視覚化フレームワークに表示するデータをリアルタイムに提供し、モデルに作業を行いながら、データが変わった時はそれをその都度表示を変更します。この場合、シュミレーションなどで作成した解析データは別のスレッドで作成されます。注意点ですが、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; |
|