Renumbers the PointNumber to a new value.

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

Syntax

C#
public uint Renumber(
	uint newPointNumber
)
Visual Basic
Public Function Renumber ( _
	newPointNumber As UInteger _
) As UInteger
Visual C++
public:
unsigned int Renumber(
	unsigned int newPointNumber
)

Parameters

newPointNumber
Type: System..::..UInt32

Return Value

The new PointNumber. If a CogoPoint with newPointNumber already exists, this method will try to find another new valid PointNumber, using the point collision resolution settings in the CreatePoints command settings. Therefore the return value may differ from the newPointNumber passed to the method.

Examples

CopyC#
 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");
 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"
CopyVB.NET
 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"

Exceptions

ExceptionCondition
System..::..InvalidOperationException Thrown when the CogoPoint is a ProjectPoint and is not checked out, and the "Allow Checked-In Points to be Modified" setting is false.

See Also