Добрый день!
Есть такой код:
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.Civil.ApplicationServices
Imports app = Autodesk.AutoCAD.ApplicationServices.Core.Application
Public Class Commands
<CommandMethod("CUSTOMXXX")>
Public Sub Custom()
Dim civilDoc As CivilDocument = CivilApplication.ActiveDocument
If Not civilDoc.PointGroups.Contains("XXX") Then
civilDoc.PointGroups.Add("XXX")
End If
End Sub
<CommandMethod("SHOWDIALOG")>
Public Sub ShowDialog()
Autodesk.AutoCAD.ApplicationServices.Application.ShowModelessDialog(app.MainWindow.Handle, New NewGroup, False)
End Sub
End Class
Команда
SHOWDIALOG вызывает форму:
Imports Autodesk.Civil.ApplicationServices
Imports app = Autodesk.AutoCAD.ApplicationServices.Core.Application
Public Class NewGroup
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim civilDoc As CivilDocument = CivilApplication.ActiveDocument
If Not civilDoc.PointGroups.Contains("XXX") Then
civilDoc.PointGroups.Add("XXX")
Else
app.ShowAlertDialog("Группа существует!")
End If
End Sub
End Class
Если я запускаю команду
CUSTOMXXX, то в чертеже создаётся новая группа точек "XXX".
Если в новом чертеже вызываю форму (команда
SHOWDIALOG ) и жму в ней на кнопку "New",
по щелчку на которой должна создаваться группа точек "XXX", то возникает ошибка:
System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
в Autodesk.Civil.DatabaseServices.PointGroupCollection.Add(String name)
Тем не менее, если группа точек с таким именем существует в чертеже,
то об этом будет выведено сообщение:
app.ShowAlertDialog("Группа существует!")
Почему не удаётся создать группу точек из кода формы?
Спасибо!