2011-06-09 66 views
0

我想通過海洋在Petrel的自定義單元系統中添加自定義單元。
正如開發者指南的建議,我用下面的代碼:如何在海洋中添加Petrel中的自定義單位?

IUnitService unitService = Slb.Ocean.Core.CoreSystem.GetService(); 
IUnitCatalog catalog = unitService.GetCatalog(null); 
System.Collections.Generic.IDictionary map = 
     new System.Collections.Generic.Dictionary(); 
map["Pressure"] = "MyUnit"; 
catalog.CreateCustomUnitSystem("My UnitSystem", 
           "UnitSystem for my additional units.", 
           map, 
           "MyUnitSystem"); 

我把這些代碼在初始化和集成方法。 在這兩種情況下,Ocean都會拋出一個SEHException。

任何想法出了什麼問題?

回答

1

您創建的自定義單位系統必須基於現有單位制。
現有單位系統名稱用作方法CreateCustomUnitSystem中的參考系統。
現有單元系統包括可從IUnitServiceSettings獲得的Canonical和Display單元系統。
下面是創建一個定製單元系統中的示例代碼:

IUnitService unitService = CoreSystem.GetService(); 
IUnitCatalog catalog = unitService.GetCatalog(null); 
IUnitServiceSettings uss = CoreSystem.GetService(); 
IUnitSystem refSystem = uss.InvariantSystem; 
IDictionary map = new Dictionary(); 
map["Pressure"] = "MyUnit"; 
ICustomUnitSystem myUnitSystem = catalog.CreateCustomUnitSystem("My UnitSystem", "Unit System for my additional units.", map, refSystem.Name); 

定製單元系統不會改變任何的Petrel模板,也不會被添加到模板選項卡中的Petrel Explorer窗口

相關問題