HI John, if the Public Objects were also Dim'ed in another module, VBA doesn't like that IIRC.
Here are 3 examples for: Setting a point using COM, adding an alignment to the siteless alignments using COM and another for .NET
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.Geometry
Imports Autodesk.Civil
Imports Autodesk.Civil.ApplicationServices
Imports Autodesk.Civil.Land.DatabaseServices
Imports Autodesk.AECC.Interop.Land
Imports Autodesk.AECC.Interop.UiLand
Imports Autodesk.Civil.Land.DatabaseServices.Styles
Public Class Class1
<CommandMethod("MySetPoint")> _
Public Sub MySetPoint()
Dim aeccapp As AeccApplication = New AeccApplicationClass()
aeccapp.Init(Application.AcadApplication)
Dim aeccdoc As AeccDocument = aeccapp.ActiveDocument
Dim pt As Point3d = New Point3d(100.0, 100.0, 100.0)
Dim aeccpt As AeccPoint = aeccdoc.Points.Add(pt.ToArray())
aeccapp = Nothing
End Sub
<CommandMethod("MyAddAlignCOM")> _
Public Sub MyAddAlignCOM()
Dim aeccapp As AeccApplication = New AeccApplicationClass()
aeccapp.Init(Application.AcadApplication)
Dim aeccdoc As AeccDocument = aeccapp.ActiveDocument
Dim alignstyle As AeccAlignmentStyle = aeccdoc.AlignmentStyles(0) ''get the first style in the collection
Dim alignlblstyle As AeccAlignmentLabelStyleSet = aeccdoc.AlignmentLabelStyleSets(0) ''get the first label style set in the collection
Dim layer As String = aeccdoc.Settings.DrawingSettings.ObjectLayerSettings.AlignmentLayer.Layer
Dim aeccalign As AeccAlignment = aeccdoc.AlignmentsSiteless.Add("MyFirstAlign", "0", alignstyle, alignlblstyle)
Dim pt1 As Point3d = New Point3d(100.0, 100.0, 100.0)
Dim pt2 As Point3d = New Point3d(300.0, 100.0, 100.0)
aeccalign.Entities.AddFixedLine1(pt1.ToArray(), pt2.ToArray())
aeccapp = Nothing
End Sub
<CommandMethod("MyAddAlignNET")> _
Public Sub MyAddALignNET()
Dim civdoc As CivilDocument = CivilApplication.ActiveDocument
Dim alignstyle As ObjectId = civdoc.Styles.AlignmentStyles(0)
Dim alignlblstyle As ObjectId = civdoc.Styles.LabelSetStyles.AlignmentLabelSetStyles(0)
Dim layer As ObjectId = civdoc.Settings.DrawingSettings.ObjectLayerSettings.GetObjectLayerSetting(Autodesk.Civil.Settings.SettingsObjectLayerType.Alignment).LayerId
Dim alignid As ObjectId = Alignment.Create(civdoc, "MyFirstNETAlign", ObjectId.Null, layer, alignstyle, alignlblstyle)
Using tr As Transaction = Application.DocumentManager.MdiActiveDocument.Database.TransactionManager.StartTransaction()
Dim pt1 As Point3d = New Point3d(100.0, 100.0, 100.0)
Dim pt2 As Point3d = New Point3d(300.0, 100.0, 100.0)
Dim align As Alignment = tr.GetObject(alignid, OpenMode.ForWrite)
align.Entities.AddFixedLine(pt1, pt2)
tr.Commit()
End Using
End Sub
End Class