我目前正在开发一个插件,在这个插件中,我需要在petrel中获得当前的单元系统(即在野外或公制系统中)。怎么弄到?
发布于 2014-04-15 11:02:10
要获得不变单元(单元数据存储在其中):
var invUnit = PetrelUnitSystem.GetInvariantUnit(someTemplate);要获得系统/项目当前正在使用的单元:
var dispUnit = PetrelUnitSystem.GetDisplayUnit(someTemplate);在它们之间转换的转换器。
var convInvDisp = PetrelUnitSystem.GetConverter(invUnit, dispUnit);
var fahrenheit=convInvDisp.Convert(100);发布于 2014-04-23 13:34:51
您指的是模拟用例的单元系统(即场还是公制)?
恐怕“模拟单位”不是通过海洋API暴露的。
但是,您可以通过检查ECLIPSE甲板中字段或度量关键字的存在来测试每个(导出的)模拟用例是否是字段或度量。
无论是字段还是度量,以下代码段都将运行这些情况并输出它们。
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();
}https://stackoverflow.com/questions/23080965
复制相似问题