如何在Ocean中创建新功能



我使用的是Ocean 2010.2,无法使用CreateFunction方法创建新函数。它说,"它不存在于当前的背景下"。如有任何帮助,我们将不胜感激!

如果添加一些关于如何创建函数的代码示例,那就太好了。现在我可以建议你不要在你的项目中添加必要的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();
}

CreateFunction方法可用于Slb.Ocean.Petrel.DomainObject.Analysis.Analysis根、Slb.Ocean_Petrel.DDomainObject.Seismic.InterpretationCollection和Slb.Ocean.Petrel.DdomainObject.Collection对象。所有情况下的模式都是一样的。但是您的消息看起来并不是一个Ocean错误,而是一个普通的VS消息。出现这种消息的常见原因通常是if:对象的声明和对象的使用位于两个不同的隔离代码块中,彼此不可见。

最新更新