SampleLine オブジェクトは、線形の SampleLineGroup コレクションに格納されます。これは、Alignment.GetSampleLineGroupIds() メソッドで取得します。SampleLineGroup の SampleLine オブジェクトのコレクションは、SampleLineGroup.GetSamleLineIds() メソッドで取得します。次の例では、図面内の最初の線形の SampleLineGroups と SampleLines をリストすることによって、これらのコレクションの両方にアクセスする方法を示します。
ObjectId alignmentId = _civildoc.GetAlignmentIds()[0]; Alignment alignment = ts.GetObject(alignmentId, OpenMode.ForRead) as Alignment; foreach (ObjectId oid in alignment.GetSampleLineGroupIds()) { SampleLineGroup sampleLineGroup = ts.GetObject(oid, OpenMode.ForRead) as SampleLineGroup; _editor.WriteMessage("Sample Line Group: {0}\n", sampleLineGroup.Name); foreach (ObjectId sampleLineId in sampleLineGroup.GetSampleLineIds()) { SampleLine sampleline = ts.GetObject(sampleLineId, OpenMode.ForRead) as SampleLine; _editor.WriteMessage("Sample Line: {0}\n", sampleline.Name); } }
SampleLine.Create() スタティック メソッドを使用して、新しい SampleLines を作成できます。このメソッドには、新しい SampleLine の名前、SampleLine を追加する SampleLineGroup の ObjectId、および測点番号(RawStation 番号、Double 型)または、新しい SampleLine の頂点を定義する点を含む Point2dCollection のいずれかを指定します。
次の例では、線形を選択するように求めるプロンプトがユーザに表示され、横断抽出ライン が線形のそれぞれの主測点に追加されます。
// prompt user for Alignment ObjectId alignmentId = promptForEntity("Select an Alignment to add sample lines to:", typeof(Alignment)); Alignment alignment = ts.GetObject(alignmentId, OpenMode.ForWrite) as Alignment; ObjectId sampleLineGroupId = SampleLineGroup.Create("New Group", alignmentId); SampleLineGroup sampleLineGroup = ts.GetObject(sampleLineGroupId, OpenMode.ForWrite) as SampleLineGroup; Station[] majorStations = alignment.GetStationSet(StationTypes.Major); foreach (Station station in majorStations) { ObjectId sampleLineId = SampleLine.Create("SampleLine" + station.RawStation, sampleLineGroupId, station.RawStation); SampleLine sampleLine = ts.GetObject(sampleLineId, OpenMode.ForWrite) as SampleLine; sampleLine.StyleName = "Standard"; }