0

Ocean 2010.2 を使用していますが、CreateFunction メソッドで新しい関数を作成できません。「現在のコンテキストには存在しない」ということです。どんな助けでも大歓迎です!

4

2 に答える 2

2

関数の作成方法に関するコード例を追加するとよいでしょう。今のところ、必要な Petrel アセンブリをプロジェクトに追加していないことを提案できます。

関数を作成する私の例を次に示します。

Collection SimpColl = Collection.NullObject;
Function SimpFunction = Function.NullObject;
// Do not forget to use transactions
using (ITransaction trans = DataManager.NewTransaction())
{
    // Use current project to create collection
    // that will contain your function
    trans.Lock(PetrelProject.PrimaryProject);
    SimpColl = PetrelProject.PrimaryProject.CreateCollection("Simple collection");
    trans.Commit();
}

using (ITransaction trans = DataManager.NewTransaction())
{
    // Create your function in your newly created collection
    trans.Lock(SimpColl);
    SimpFunction = SimpColl.CreateFunction("Simple Function");
    trans.Commit();
}
于 2012-08-01T05:53:42.767 に答える
0

CreateFunctionメソッドは、Slb.Ocean.Petrel.DomainObject.Analysis.AnalysisRoot、Slb.Ocean.Petrel.DomainObject.Seismic.InterpretationCollection、およびSlb.Ocean.Petrel.DomainObject.Collectionオブジェクトに対して呼び出すことができます。パターンはすべての場合で同じです。ただし、メッセージはOceanエラーのようには見えませんが、一般的なVSメッセージのように見えます。このようなメッセージの一般的な理由は、通常、次の場合です。オブジェクトの宣言とオブジェクトの使用法は、2つの異なる分離されたコードブロックにあり、互いに表示されません。

于 2012-08-15T12:12:27.433 に答える