イベント

イベント

イベントは、Revit ユーザ インタフェースまたは API ワークフローの特定のアクションで開始される通知です。イベントに登録すると、操作を実行しようとするときや、操作が実行された直後にイベント関連の操作を実行したときに、アドイン アプリケーションに通知することができます。一部のイベントは操作に対してペアで発生し、1 つが操作を実行する前(プレ イベント)に、もう 1 つが操作実行後(ポスト イベント)に発生します。このように前/後のペアで発生しないイベントは「単一の」イベントと呼ばれます。

Revit では、アプリケーション レベル(ApplicationClosing や DocumentOpened など)と、ドキュメント レベル(DocumentClosing と DocumentPrinting)でイベントにアクセスできます。Application クラスから使用可能なアプリケーション レベルのイベントは ControlledApplication クラスから同様に使用できますが、これは、Revit アプリケーションはドキュメントにはアクセスできないことを表します。OnStartup()や OnShutdown()メソッドからアドインに対して使用できるのは、ControlledApplication です。イベントの登録と登録解除に関しては、これらのクラスは相互に交換可能です。つまり、ControlledApplication クラスからのイベントへの登録は、Application クラスからの登録と同じになります。

さらに、イベントはデータベース(DB)イベントまたはユーザ インタフェース(UI)イベントとして分類することもできます。DB イベントは Application クラスと Document クラスから使用でき、UI イベントは UIApplication クラスから使用できます(現在、すべての UI イベントはアプリケーション レベルでのみ使用できます)。

一部のイベントは読み取り専用とみなされます。つまり、実行中はモデルが修正されないことになります。イベントが読み取り専用であることは API ヘルプ ファイルに記載されています。通常のイベント中(読み取り専用ではないイベントなど)であっても、モデルが修正できない状態になる場合があることを理解しておくことが大切です。プログラマは、Document.IsModifiable と Document.IsReadOnly プロパティを確認して、モデルが修正可能かどうかを判断する必要があります。