Start by creating the module for your subassembly. You can add a new module to the C3DStockSubassemblies project, or you can create your own .NET subassembly project and add the new class module there. New projects should use the Visual Studio "Class Library" template, and should reference the following files:
Be sure to include CodeSpecific.vb, SATemplate.vb, and Utilties.vb in your project as well.
Add the following framework to the Visual Basic subassembly class module:
Public Class UserDefinedSA Inherits SATemplate ' Member Variables. Protected Overrides Sub GetLogicalNamesImplement(ByVal corridorState As Autodesk.Civil.Runtime.CorridorState) ' Todo End Sub Protected Overrides Sub GetInputParametersImplement(ByVal corridorState As CorridorState) ' Todo End Sub Protected Overrides Sub GetOutputParametersImplement(ByVal corridorState As CorridorState) ' Todo End Sub Protected Overrides Sub DrawImplement(ByVal corridorState As CorridorState) ' Todo End Sub End Class
Note that: