Share

CogoPointCollection.SetPointNumber(ObjectId, UInt32) Method

Sets the PointNumber for a single CogoPoint.



Namespace: Autodesk.Civil.DatabaseServices
Assembly: AeccDbMgd (in AeccDbMgd.dll) Version: 13.8.0.280

Syntax

C#

public ObjectId SetPointNumber(
	ObjectId pointId,
	uint pointNumber
)

VB

Public Function SetPointNumber ( 
	pointId As ObjectId,
	pointNumber As UInteger
) As ObjectId

C++

public:
ObjectId SetPointNumber(
	ObjectId pointId, 
	unsigned int pointNumber
)

Parameters

pointId  ObjectId
The ObjectId of the point you want to set the PointNumber for.
pointNumber  UInt32
The new PointNumber value.

Return Value

ObjectId
If the method succeeds, it returns the same ObjectId pointId passed in. If the method fails, it returns ObjectId.Null.

Example

C#

 1// We create some random points and we use the returned
 2// ObjectIdCollection to access the first two points.
 3// 
 4Point3dCollection pts = getRandomPoints();
 5ObjectIdCollection addedPointsIds = _civildoc.CogoPoints.Add(pts, "Example Point", false);
 6
 7ObjectId firstCogoPointId = addedPointsIds[0];
 8ObjectId secondCogoPointId = addedPointsIds[1];
 9CogoPoint firstPoint = firstCogoPointId.GetObject(OpenMode.ForWrite) as CogoPoint;
10CogoPoint secondPoint = secondCogoPointId.GetObject(OpenMode.ForWrite) as CogoPoint;
11
12_editor.WriteMessage("\nInitial point number values:");
13_editor.WriteMessage("\n- First COGO Point = {0}", firstPoint.PointNumber);
14_editor.WriteMessage("\n- Second COGO Point = {0}", secondPoint.PointNumber);
15
16// This will fail and throw a System.ArgumentException because of the PointNumber collision.
17// Points are not renumbered.
18// 
19try
20{
21    firstPoint.PointNumber = secondPoint.PointNumber;
22}
23catch (ArgumentException ex)
24{
25    string msg = String.Format("\n{0}", ex.Message);
26    _editor.WriteMessage(msg);
27}
28_editor.WriteMessage("\nAfter trying to set the PointNumber property (with collision):");
29_editor.WriteMessage("\n- First COGO Point = {0}", firstPoint.PointNumber);
30_editor.WriteMessage("\n- Second COGO Point = {0}", secondPoint.PointNumber);
31
32// This will work, because it will resolve the collision using the CreatePoints command settings
33// for resolving duplicate PointNumbers.  The default is to display a dialog and let the user choose a
34// resolution.
35// 
36firstPoint.Renumber(secondPoint.PointNumber);
37_editor.WriteMessage("\nAfter using the Renumber() method:");
38_editor.WriteMessage("\n- First COGO Point = {0}", firstPoint.PointNumber);
39_editor.WriteMessage("\n- Second COGO Point = {0}", secondPoint.PointNumber);
40
41// This will also work, and uses the command settings to resolve.  However, it returns
42// an ObjectId.Null because of the duplicate number.
43// 
44if (_civildoc.CogoPoints.SetPointNumber(firstCogoPointId, secondPoint.PointNumber) == ObjectId.Null)
45    _editor.WriteMessage("\nSetPointNumber() duplicate number.");
46
47_editor.WriteMessage("\nAfter using SetPointNumber() in CogoPointCollection:");
48_editor.WriteMessage("\n- First COGO Point = {0}", firstPoint.PointNumber);
49_editor.WriteMessage("\n- Second COGO Point = {0}", secondPoint.PointNumber);
50
51// You can check how point number collisions will be handled by looking at this setting:
52// _civildoc.Settings.GetSettings<SettingsCmdCreatePoints>().PointIdentity.ResolveDuplicatePointNumbersOption;
53// The default is "Notify"

VB

 1' We create some random points and we use the returned
 2' ObjectIdCollection to access the first two points.
 3'
 4Dim pts As Point3dCollection = getRandomPoints()
 5Dim addedPointsIds As ObjectIdCollection = _civildoc.CogoPoints.Add(pts, "Example Point")
 6
 7Dim firstCogoPointId As ObjectId = addedPointsIds(0)
 8Dim secondCogoPointId As ObjectId = addedPointsIds(1)
 9Dim firstPoint As CogoPoint = TryCast(firstCogoPointId.GetObject(OpenMode.ForWrite), CogoPoint)
10Dim secondPoint As CogoPoint = TryCast(secondCogoPointId.GetObject(OpenMode.ForWrite), CogoPoint)
11
12_editor.WriteMessage(vbLf & "Initial point number values:")
13_editor.WriteMessage(vbLf & "- First COGO Point = {0}", firstPoint.PointNumber)
14_editor.WriteMessage(vbLf & "- Second COGO Point = {0}", secondPoint.PointNumber)
15
16' This will fail and throw a System.ArgumentException because of the PointNumber collision.
17' Points are not renumbered.
18'
19Try
20  firstPoint.PointNumber = secondPoint.PointNumber
21Catch ex As ArgumentException
22  Dim msg As String = [String].Format(vbLf & "{0}", ex.Message)
23  _editor.WriteMessage(msg)
24End Try
25_editor.WriteMessage(vbLf & "After trying to set the PointNumber property (with collision):")
26_editor.WriteMessage(vbLf & "- First COGO Point = {0}", firstPoint.PointNumber)
27_editor.WriteMessage(vbLf & "- Second COGO Point = {0}", secondPoint.PointNumber)
28
29' This will work, because it will resolve the collision using the CreatePoints command settings
30' for resolving duplicate PointNumbers.  The default is to display a dialog and let the user choose a
31' resolution.
32'
33firstPoint.Renumber(secondPoint.PointNumber)
34_editor.WriteMessage(vbLf & "After using the Renumber() method:")
35_editor.WriteMessage(vbLf & "- First COGO Point = {0}", firstPoint.PointNumber)
36_editor.WriteMessage(vbLf & "- Second COGO Point = {0}", secondPoint.PointNumber)
37
38' This will also work, and uses the command settings to resolve.  However, it returns
39' an ObjectId.Null because of the duplicate number.
40'
41If _civildoc.CogoPoints.SetPointNumber(firstCogoPointId, secondPoint.PointNumber) = ObjectId.Null Then
42  _editor.WriteMessage(vbLf & "SetPointNumber() duplicate number.")
43End If
44
45_editor.WriteMessage(vbLf & "After using SetPointNumber() in CogoPointCollection:")
46_editor.WriteMessage(vbLf & "- First COGO Point = {0}", firstPoint.PointNumber)
47_editor.WriteMessage(vbLf & "- Second COGO Point = {0}", secondPoint.PointNumber)
48
49' You can check how point number collisions will be handled by looking at this setting:
50' _civildoc.Settings.GetSettings<SettingsCmdCreatePoints>().PointIdentity.ResolveDuplicatePointNumbersOption;
51' The default is "Notify"

See Also

Reference

Was this information helpful?