基線リージョンを追加、修正する

コリドー リージョンは、BaselineRegionCollection タイプのコレクションで、基線の BaselineRegions プロパティに保持されます。 Add() および Remove() メソッドを使用して、このコレクションにリージョンを追加したり除去することができます。Add() メソッドには 4 種類があり、いずれも新しいリージョンの名前、および、リージョンの作成に使用するドキュメント Assembly の名前(文字列)または ObjectId のいずれかを指定します。2 種類は、リージョンの開始測点と終了測点を指定します。測点を指定しなければ、リージョンは基線全体に適用されるとみなされます。リージョンはオーバーラップできません。基線内の既存のリージョンにオーバーラップするようなリージョンを追加しようとすると、Add() メソッドは失敗します。

次の例では、指定したコリドーから基線を取得し、リージョンに関するいくつかの情報を出力します。次に、リージョンを削除し、2 つの新しいリージョンを追加します。

// use on a document with at least one alignment, and one profile for the alignment,
// and a baseline with a BaselineRegion defined.
// EG: Corridor-5b.dwg in the tutorials directory
string corridorName = "Corridor - (1)";
Corridor corridor = ts.GetObject(_civildoc.CorridorCollection[corridorName], OpenMode.ForWrite) as Corridor;
// get first baseline in corridor
Baseline baseline = corridor.Baselines[0];
BaselineRegion baselineRegion = baseline.BaselineRegions[0];
// print out some properties for this baseline region:
_editor.WriteMessage("Baseline region name: {0} start station: {1}  end station: {2}", 
    baselineRegion.Name, baselineRegion.StartStation, baselineRegion.EndStation);                    

// Remove the existing baseline region
baseline.BaselineRegions.Remove(baselineRegion);
// Add two new baseline regions
// This will fail if there is already a baselineRegion for the same start-end station range
ObjectId assemblyId = _civildoc.AssemblyCollection[0];
baseline.BaselineRegions.Add("New Region1", assemblyId, baseline.StartStation, baseline.EndStation / 2);
baseline.BaselineRegions.Add("New Region2", assemblyId, baseline.EndStation / 2, baseline.EndStation);