WisDOT Civil 3D SDK

WisDOT publishes a Civil 3D customization that includes many tools and feature enhancements above and beyond what the core Civil 3D application provides. This customization is designed to augment Civil 3D for the production of WisDOT roadway design projects as well as enhance the efficiency and experience of the roadway design process. WisDOT encourages the use of the full customization package as-delivered. However, certain agencies, organizations, or companies may have a need to access the tools WisDOT has developed, without the embedded WisDOT roadway design production standards. This API provides access to the WisDOT Civil 3D tools for incorporation into other third party customizations.

Disclaimer:

Although this API and the tools it provides access to have been tested by the Design and Construction Technologies Section, no warranty, expressed or implied, is made by the Wisconsin Department of Transportation as to the accuracy of the material, nor shall the fact of distribution constitute any such warranty, and responsibility is not assumed by the Wisconsin Department of Transportation in connection therewith.

The WisDOT Civil 3D SDK is provided as-is and without additional support. WisDOT does not provide training for software customization or development. This SDK is only maintained and published for the WisDOT current production version of Civil 3D.

License:

Copyright 2025 State of Wisconsin - Department of Transportation

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Quick Start Notes:

The WisDOT Civil 3D SDK includes a basic Visual Studio project to get started using the API. More experienced developers may use their own Visual Studio project and reference the WisDOT.C3D.Extensions nuget package.

The WisDOT Civil 3D API was designed for developers with very little programming experience. Each WisDOT tool has been wrapped into a single static method with various properties exposed as method parameters. WisDOT.Extensions.dll contains 3 primary namespaces that expose the WisDOT Civil 3D tools:

  • WisDOT: Contains the majority of WisDOT tools. The namespace is divided into multiple classes based on the Civil 3D entity type or subject.
  • WisDOT.Acad: Contains methods to access WisDOT tools that are specific to AutoCAD functions. The namespace is divided into multiple classes based on the AutoCAD entity type or subject.
  • WisDOT.Map3D: The Services class within this namespace contains methods to access WisDOT tools that are specific to Map 3D functions.

Project Setup using the SDK:

  1. Unzip the WisDOT_C3D2026_SDK.zip.
  2. Open the MyExtension solution in Visual Studio. The WisDOT Civil 3D SDK requires that the Civil 3D version matching the SDK is installed on the developer's device. The WisDOT.C3D.Extensions nuget package is already referenced into the project. The included MyExtension solution is not kept up-to-date with the latest WisDOT.C3D.Extensions nuget package. Update the WisDOT.C3D.Extensions nuget package in the project to get the latest content. The nuget package will be updated each time WisDOT release updated plugin.
  3. Further customization of AutoCAD Civil 3D may require referencing additional Autodesk assemblies. See the AutoCAD and Civil 3D Developers guides for more information.
  4. The project contains Commands.cs.
    • Commands.cs contains a MyApp class that initializes the application. This class provides an opportunity to add any custom actions at Civil 3D startup, when your assembly is loaded. It also provides an opportunity to add custom actions when Civil 3D exits, when your assembly is unloaded.
    • Commands.cs also contains a MyCommands class. Use this class to create custom commands for Civil 3D. A sample command is provided that utilizes the WisDOT Civil 3D API.
  5. The project contains Globals.cs, which contains a single Globals class. This class is provided as an example of how organization-specific variables may be passed into the methods contained in the WisDOT Civil 3D API.

HelpResources.csv:

Many of the WisDOT tools include a user interface with a Help button. Each help button works the same way by accessing a HelpResource.csv file located in a "en-US" directory directly below the location of the your DLL file in your application bundle. Any method encountered in the WisDOT Civil 3D API that includes a parameter called "helpKey" utilizes this csv file. The input parameter is equal to the corresponding command name you choose in the MyCommands class. The HelpResources.csv acts as a lookup table, where the command name is the lookup key and the corresponding value is the URL containing the help documentation. Most methods in the API include the applicable WisDOT help URL in the remarks, which may be used in the absence of your own help documentation. A sample HelpResources.csv is include in the SDK.

Dependencies:

Some of the WisDOT tools accessible with the API are very specific to WisDOT deliverables and utilize WisDOT-specific files not found in the SDK. If required by your customization, these files may be obtained from the full WisDOT Civil 3D customization package. Some of these tools and files include, but are not limited to:

  • BatchPublish.dll: Required for the Publish Collections Manager.
  • Earthwork Template.xlsx: Required for the Earthwork Detail Report.
  • PointsToSurfaceComparison-Template.xlsx: Required for the Points to Surface Comparison Report.

Other WisDOT tools may also require supporting input files to function, but the contents can be variable depending on the needs of the organization or user. Samples of these files can also be found in the full WisDOT Civil 3D customization package or the WisDOT Civil 3D Knowledgebase.

Building 'MyExtension':

  1. Before building your project assembly, review and modify the project properties as-needed.
  2. Some sample post-build events are included for consideration. Note that these events are set to only occur after running the included publish profile. This assures that all project dependencies are included.
    • MyExtensionXX.X.bundle is created under %AppData%\Autodesk\ApplicationPlugins if it does not exist. If you are not familiar with developing AutoCAD plugins, see the AutoCAD Developer's Guide for more information.
    • The PackageContents.xml included in the Visual Studio project is copied to the bundle location.
    • The compiled DLL is copied to the bundle location.
    • The project dependencies ared copied to the bundle location.
    • The sample HelpResource.csv is copied to the bundle location.
In this article
Back to top Generated by DocFX