リンク/計画線コードをコリドー サーフェスに追加、削除する

サーフェスを定義しているリンク コードおよび計画線コードを追加または削除することにより、CorridorSurface オブジェクトを修正することができます。リンク コードは AddLinkCode () メソッドで追加し、計画線コードは、AddFeatureLineCode () メソッドで追加します。削除するには、それぞれ RemoveLinkCode() および RemoveFeatureLineCode() を使用します。これらのメソッドには、コード名を含む文字列を指定します。

下の例では、リンクおよび計画線コード名を入力するよう要求するプロンプトが表示され、それらのコードが追加され、CorridorSurface 定義から削除されます。指定されたコード名が存在しない場合は、System.ArgumentException が投入されます。CorridorSurface 定義にコードが既に存在する場合、例外は投入されません。

string corridorSurfaceName = "Corridor - (1) Top";
string corridorName = "Corridor - (1)";
// get the CorridorSurface by name:
ObjectId corridorId = _civilDoc.CorridorCollection[corridorName];
Corridor corridor = ts.GetObject(corridorId, OpenMode.ForRead) as Corridor;
CorridorSurface corridorSurface = corridor.CorridorSurfaces[corridorSurfaceName];

// get a featureline name and link code:
string linkCodeName = _editor.GetString("Enter a link code: ").StringResult;
string featureLineName = _editor.GetString("Enter a feature line code: ").StringResult;
try
{
    corridorSurface.AddLinkCode(linkCodeName, true);
                    
    // The new code will be listed here
    string[] linkCodes = corridorSurface.LinkCodes();
    _editor.WriteMessage("Link codes in corridor surface: \n  {0}", String.Join("  \n", linkCodes));

    corridorSurface.AddFeatureLineCode(featureLineName);
    string[] featureLineCodes = corridorSurface.FeatureLineCodes();
    _editor.WriteMessage("Link codes in corridor surface: \n  {0}", String.Join("  \n", featureLineCodes));

    // remove the new items
    corridorSurface.RemoveFeatureLineCode(featureLineName);
    corridorSurface.RemoveLinkCode(linkCodeName);

}

// if either code does not exist, this will be thrown:
catch (System.ArgumentException e)
{
    _editor.WriteMessage(e.ToString());
}