2

(答えについては、以下の私のコメントを参照してください)私は、厳密にテストされた(私が思った)以下を使用するプログラムを持っています:

Options options = new Options();
AnalyticalModel model = Source_Beam.GetAnalyticalModel() as AnalyticalModel; ;
Curve Curvy = model.GetCurve();
XYZ End1 = Curvy.GetEndPoint(0); XYZ End2 = Curvy.GetEndPoint(1);

これは以前は問題なく機能していましたが、現在はプロジェクトで (以前に使用されていたものと同じファミリのビームを使用して) 使用すると、「Curvy.GetEndPoint(0)」を実行しようとすると失敗します。

「Revit で System.NullReferenceException が発生しました: オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーが表示されます。

もちろん、これは非常に奇妙です。要素 Source_Beam は確かにビームであり、そこから GetAnalyticalModel を取得する方法を認識しており、コンパイラは喜んで「model.GetCurve()」を許可します。

そのコードを追加した行の例を見たので、エラーにパッチを当てようとして最初に失敗した後、「as AnalyticalModel」を追加したことに注意してください-キャストの有無にかかわらず失敗します。前述したように、このプログラムはまったく同じ梁ファミリを使用したテスト プロジェクトで使用されていました。

私の現実のプロジェクトに GetAnalyticalModel の機能を無効にする設定があるかどうか、またはビームの定義された開始点/終了点を単に取得するためのより良い方法があるかどうか、誰かが知っていますか?

4

0 に答える 0