首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获得Petrel的旋转单元系统

获得Petrel的旋转单元系统
EN

Stack Overflow用户
提问于 2014-04-15 10:24:04
回答 2查看 310关注 0票数 1

我目前正在开发一个插件,在这个插件中,我需要在petrel中获得当前的单元系统(即在野外或公制系统中)。怎么弄到?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-15 11:02:10

要获得不变单元(单元数据存储在其中):

代码语言:javascript
复制
var invUnit = PetrelUnitSystem.GetInvariantUnit(someTemplate);

要获得系统/项目当前正在使用的单元:

代码语言:javascript
复制
var dispUnit = PetrelUnitSystem.GetDisplayUnit(someTemplate);

在它们之间转换的转换器。

代码语言:javascript
复制
var convInvDisp = PetrelUnitSystem.GetConverter(invUnit, dispUnit);

var fahrenheit=convInvDisp.Convert(100);
票数 1
EN

Stack Overflow用户

发布于 2014-04-23 13:34:51

您指的是模拟用例的单元系统(即场还是公制)?

恐怕“模拟单位”不是通过海洋API暴露的。

但是,您可以通过检查ECLIPSE甲板中字段或度量关键字的存在来测试每个(导出的)模拟用例是否是字段或度量。

无论是字段还是度量,以下代码段都将运行这些情况并输出它们。

代码语言:javascript
复制
 using (ITransaction trans = DataManager.NewTransaction())
 {
     SimulationRoot SimRoot = SimulationRoot.Get(PetrelProject.PrimaryProject);

     foreach (Case Case in SimRoot.Cases)
     {
         EclipseKeywordEditor editor = SimulationSystem.CreateEclipseKeywordEditor(Case);

         trans.Lock(editor);

         foreach (EclipseKeyword keyword in editor.Sections.RunSpec.GetAll("FIELD"))
         {
             // found FIELD keyword

             PetrelLogger.InfoOutputWindow(String.Format("### Case {0} is FIELD", Case.Name));
         }

         foreach (EclipseKeyword keyword in editor.Sections.RunSpec.GetAll("METRIC"))
         {
             // found METRIC keyword

             PetrelLogger.InfoOutputWindow(String.Format("### Case {0} is METRIC", Case.Name));
         }
     }

     trans.Commit();
 }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23080965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档