
Explore Autodesk plugin development using C# across AutoCAD, Civil 3D, Revit, and Navisworks. Learn setup, dotnet basics, APIs, debugging, and practical plugins across sections.
Discover section one course introduction and setup, including scope and requirements. Learn C sharp for Autodesk .Net APIs and AutoCAD, Revit, Civil 3D, Navisworks.
Identify who benefits from this course, including beginners and CAD professionals, BIM managers, and project coordinators, and learn practical C# coding to automate AutoCAD, Civil 3D, Revit, and Navisworks tasks.
Identify and install the required tools for this course, including Visual Studio 2022 Community Edition and AutoCAD, Civil 3D, Revit, and Navisworks (2022 or newer), plus their Net SDKs.
Learn a four-section path across C-sharp fundamentals, AutoCAD plugins and APIs, advanced AutoCAD automation, and APIs for Civil 3D, Navisworks, and Revit, with live coding demos and real-world examples.
Discover why C# is ideal for Autodesk development, with native dotnet integration, rich resources, performance, and future-proofing across AutoCAD, Civil 3D, Revit, and Navisworks.
Explore Autodesk .NET APIs for AutoCAD, Civil 3D, Revit, and Navisworks, covering drawing automation, geometry creation, layer management, BIM automation, and plugin deployment.
Programming these tools automates tasks across AutoCAD, Civil 3D, Revit, and Navisworks, boosting productivity and enabling data extraction, tagging, quantities, metadata, and integration with Excel and web APIs.
Explore plugin architecture and deployment across Autodesk platforms by building C# class libraries and loading DLLs in Revit add-ins, AutoCAD, Civil 3D, and Navisworks.
Explore how Autodesk APIs differ and share concepts like transactions, documents, and elements within a plugin based architecture, across AutoCAD, Civil 3D, Revit, and Navisworks.
Explore the dotnet framework and clr, Visual Studio 2022, and your first dotnet program, then cover C# features for Autodesk APIs, namespaces, assemblies, project structure, and object oriented programming basics.
Discover the dotnet framework and CLR, where C# is compiled to IL and run as machine code, with memory management, security, exception handling, and garbage collection.
Explore the Visual Studio 2022 IDE, the main tool for writing, testing, and debugging C# code, with key components like the Solution Explorer, code editor, Output window, and Property window.
Open Visual Studio, create a new console app for the .NET framework, and write Console.WriteLine to print 'Hi' text, illustrating the System namespace and the Main entry point.
Demonstrates the most relevant C# features for Autodesk APIs, including classes and objects, events and delegates, linq, and exception handling, with an intro to inheritance (oops).
Understand how namespaces organize classes and how assemblies compile projects into dlls or exes. Explore project structure, program.cs entry point, references, properties, and project settings.
Explore the four pillars of object-oriented programming—encapsulation, inheritance, polymorphism, and abstraction—and see their impact on dot net c# coding in AutoCAD, C3d, Revit, and Navisworks.
Explore encapsulation with a bank account class that uses a private balance and public deposit and get balance methods. Access to balance stays inside the class, protecting the object's state.
Explore how inheritance in object-oriented programming lets a dog reuse the animal's eat method while adding its own bark, illustrating base class concepts and code reuse.
Explore polymorphism by using a base shape with a virtual draw method and overriding it in circle and square classes, then calling via the shape reference to demonstrate runtime binding.
Explore abstraction in object-oriented programming with an abstract vehicle class and a car subclass, exposing only the essential start method while hiding implementation details, as part of four oops principles.
Install and manage NuGet packages to add functionality without writing from scratch, demonstrated with JSON parsing using Newtonsoft.Json; right-click the project, choose manage NuGet packages, and install the latest version.
Explore key C# concepts from reserved keywords and variables to debugging, loops, conditions, operators, and collections; learn exception handling, logging, modifiers, and writing clean, maintainable code with best practices.
Explore C# reserved keywords across categories like access modifiers, data types, control flow, OOP, and LINQ to show how they shape class design and program behavior.
Learn variables and data types in C# with int, double, string, bool, and char through a Visual Studio console app demo, including string quotes and single character rules.
Explore debugging techniques using breakpoints, watch window, and step commands to inspect variables and control flow; learn to guard against divide-by-zero with conditional logic.
Discover for, while, do while, and foreach loops, with emphasis on initialization, condition, and increment. See how a Windows Forms app uses Console.WriteLine and environment.new line to display loop results.
Master while loops in C# by evaluating conditions before each iteration, using break for control, and handling dynamic user input in a window form example.
Explore the do-while loop, which runs at least once, checks the condition after the loop body, and suits user-driven or retry logic.
Master the foreach loop to iterate over arrays, lists, and dictionaries without counters, cannot modify the collection, and display items one by one.
Learn how to make decisions in dot net C# coding by using if-else and switch-case statements, chaining multiple conditions, handling user input, and nesting blocks with curly braces.
Learn switch-case statements in C#, testing a variable against fixed values with case and break, using default for no match and improving readability for menu style logic.
Learn arithmetic operators in dot net c# by applying addition, subtraction, multiplication, division, and modulus with integers, floats, and strings; explore a live windows forms calculator demo.
Learn how to use logical operators in C# with and, or, and not; apply them to combine checks in a single if statement and enable multi-condition filters.
Explore comparison operators in C#, including equal to, not equal to, less than, greater than, and their inclusive variants, with numeric and string examples and case sensitivity.
Explore lists in C# as dynamic, strongly typed collections that resize automatically, support add, remove, insert, sort, and foreach looping, with a live demo.
Explore dictionaries in c# by storing key-value pairs, enabling fast lookups, adds, and removals with flexible key and value types; learn via a console demo using country codes and names.
Explore arrays in C#: fixed-size collections of the same type with zero-based indexing, including 2D or 3D arrays, default values, and looping with for, foreach, or while.
Explore exception types and handling, including system-defined and user-defined custom exceptions, using try catch finally and throw; cover null reference, index out of range, divide by zero, file not found.
Learn to implement dotnet core logging with ILogger, configure providers via appsettings.json, and use structured logging with Serilog or NLog, including log levels, placeholders, and lazy evaluation or conditional logging.
This lecture introduces access modifiers, highlighting the public modifier for external use. It demonstrates console app with a public car class and a public model field, illustrating access and encapsulation.
Learn how private modifiers restrict access to class members, enforce encapsulation, and hide data; a private model field stays inside the class and is exposed only via a public method.
Explore how the protected modifier grants access within a class and its derived classes, supporting inheritance and encapsulation, with a vehicle and car demo.
Learn how the internal modifier restricts access to within the same assembly, controlling the api surface in multi-assembly projects, as demonstrated with an internal class and its fields.
Explore the protected internal modifier, which combines protected and internal access for shared base classes across modules, enabling limited external inheritance, demonstrated with a vehicle to car inheritance demo.
Adopt clean, maintainable C# coding practices by using meaningful names, small focused functions, consistent formatting, and avoiding magic numbers, while applying solid principles and unit testing.
Explore the AutoCAD .NET API with Visual Studio to build plugins, load DLLs via netload, and work with lines, MText, circles, blocks, and attributes through transactions.
Learn to automate AutoCAD with the .NET API: create and modify drawing entities via transactions, manage layers and blocks, handle user input, and generate drawings with data extraction.
Explore the AutoCAD object structure from application to document, database, transaction, and entity, and learn how atomic changes and rollbacks safeguard drawing edits.
Develop a first AutoCAD plugin by creating a class application, adding required DLLs and namespaces, and exposing a command method that prints a hello message in AutoCAD's editor.
Create a line object in AutoCAD with C# .NET by defining start and end points, adding the line to model space via a command.
Create an m text object in AutoCAD via a C# class application, setting contents, location, and height within a transaction, then net load and run the command to visualize it.
Create a circle object in a dotnet AutoCAD plugin by setting its center (100, 100, 0), radius, color index 3, line weight, transparency, and visibility; append to transaction and commit.
Learn to create and manage AutoCAD blocks programmatically, including defining a block table record, adding geometry, avoiding duplicates, and inserting blocks with attributes using transactions.
Access and modify block reference attributes in AutoCAD with C#, enabling batch updates and automation by reading and writing attribute collections by tag in model space, then committing changes.
Learn to safely manage transactions and document locking in AutoCAD plugins, ensuring safe access to the drawing database, rollback on errors, and proper commit.
Learn to manage layers, line types, and text styles, and capture robust user input with prompts, strings, points, and keywords, using dictionaries, Xdata, and result buffers for metadata.
Learn to create and set the current layer in AutoCAD using a layer table. Follow five steps: create the layer table, check existence, add the layer, and set it current.
Explore loading line types from the line type table and assign them to layers or entities in AutoCAD, using transactions to ensure safe updates.
Create and register a new text style in AutoCAD, set font and height, add it to the text style table, then apply the style to db text and m text.
Learn how to capture user input in AutoCAD .NET with getString, enforce non-empty strings, and use prompt options to collect names or labels, producing a personalized hello response.
Capture a 3D point from user input with get point, enabling snapping, rubber band tracking, and visual feedback to place lines, circles, or blocks in AutoCAD.
Capture a numeric distance from the user with get distance for sizing, scaling, or offsetting geometry, including a base point for relative measurement with unit formatting and precision.
Learn to use get keyword to offer predefined choices in AutoCAD, drive branching logic, and capture the selected keyword with prompt keyword options, enabling toggles, modes, and tool selection.
Learn how to create and manage AutoCAD named object dictionaries to store persistent non-graphical data, using transactions, contains checks, and setAt to safely register dictionaries.
Learn how to attach custom metadata to AutoCAD entities using Xdata and extension dictionaries, enabling tagging and linking to external systems for asset tracking, BIM, and GIS.
Learn to design interactive AutoCAD commands using prompts and editors, guiding users with point, distance, and keyword prompts and visual rubber band previews of a line.
Create dynamic input dialogs with winforms to collect multiple user inputs. Design dialogs using textboxes, dropdowns, checkboxes, and buttons and integrate with AutoCAD commands.
learn to handle user input with typed value and result buffer in AutoCAD, using DXF codes to filter selections by entity, type, or layer and attach custom tags to entities.
Create custom AutoCAD commands with keyword options in C# using Visual Studio, prompting users to draw lines, circles, or rectangles in model space via a transaction.
Advanced AutoCAD automation covers filtering entities by type and attributes, inserting and modifying title blocks, managing properties and layers, and exporting data to Excel or CSV for reporting.
Filter entities by type and attributes in AutoCAD using typed value, layer name, and selection filter, then use editor.getSelection to prompt the user and return matching entities.
Learn to insert and modify title blocks, which hold key project information through attribute definitions. Use AutoCAD S API to automate updates across sheets and streamline documentation.
Access and modify the properties window programmatically with the AutoCAD API to set color, layer, and line type on selected objects. Enable batch editing and CAD guideline enforcement.
Automate renaming all layers in AutoCAD to enforce consistent naming conventions, improve clarity, and reduce errors in collaborative projects by avoiding duplicates and managing visibility.
Create custom palettes and toolbars in AutoCAD using C# with Windows Forms or WPF, build a class library, add references, and implement a show palette command via a palette set.
Export AutoCAD data to CSV for analysis and reporting, including layer names, coordinates, and block attributes, enabling batch editing and reimporting in Excel and ERP systems.
Integrate AutoCAD with an external SQL Server database. Create the my AutoCAD data database and tibial points table, then read name, x, and y from SQL in a C# plugin.
Learn Civil 3D .NET API development, covering overview, architecture, plugin creation, surfaces, corridors, pipe networks, data export to csv or xml, and Excel-based import/export workflows.
Learn how the civil 3d .net api sits on the Autodesk AutoCAD .net api to access surfaces, alignments, profiles, corridors, and pipe networks; reference civil.application and civil.database services.
Learn to create your first Civil 3D plugin in C# by building a class library, registering a command, accessing surface IDs, and counting surfaces with editor messages.
Create a tin surface in civil 3d using the civil 3d dotnet API, defining a command method and naming the surface my surface. Commit the transaction and display a confirmation.
Access corridor objects in the active Civil 3D document, loop through corridor IDs to read names, count corridors, and display all names in the command line.
Learn to access pipe network data in Civil 3D with C#, listing networks and pipes and printing their names to the command line during a net load demo.
Access pressure pipe networks in AutoCAD Civil 3D by listing pressure pipes and retrieving pressure pipe network names. Inspect their properties and extended data as part of the workflow.
Export gravity pipe data from Civil 3D to CSV using Civil 3D .NET APIs. Use a string builder to format headers: network name, pipe name, inner diameter, and color index.
Learn to add property sets for pipes in Civil 3D by building a user input form, defining AEC property set definitions, attaching properties to selected objects, and confirming success.
Export properties with data for pipe objects in Civil 3D by filtering gravity pipes, extracting property sets, and exporting a csv with pipe names and custom data.
Import CSV data into Civil 3D pipe properties via a WinForms tool, map CSV rows to pipes by name, update property sets, and export updates to CSV.
Explore Revit net api development from overview to plugin creation, covering Autodesk Revit and Autodesk Revit.UI namespaces, external commands, add-in manifests, transactions, and reading element parameters.
Explore the Revit .NET API overview to access and modify model elements like walls, doors, and windows, create views, sheets, and annotations, and extract BIM data for analysis.
Learn to build your first Revit plugin in C#.NET by creating an external command, a simple windows form, and registering a .addin, then run the plugin inside Revit.
Select elements in Revit using .NET C# and the Revit API, prompting a UI document for object selection and retrieving the element's name and category.
Learn to read multiple elements in Revit with C# by using pick objects for multi selection, accessing each element, and displaying details with a stringbuilder in a message box.
Programmatically create a Revit wall with a C# external event, triggered by a UI button, drawing a line from (0,0,0) to (10,0,0) for a ten-unit high wall, avoiding transaction errors.
Explore Navisworks .net api development through four chapters: overview, first plugin, model hierarchy and metadata access, and extracting and visualizing simulation data.
Explore the Navisworks .NET API overview and its dlls, for model data, properties, timelines, and UI control, noting that models are items with properties, geometry, and children, with read-only geometry.
Create your first Navisworks plugin by building a class library in Visual Studio, referencing the Navisworks API DLLs, and deploying the plugin in the Navisworks plugins folder.
Learn to traverse the Navisworks model tree, extract display names, class info, and metadata such as dimensions, materials, and custom tags, and present results in a rich text box.
Utilize the Navisworks API to extract crash test data, iterate through results, capture display name and comments, and present simulation data in a rich text box for review.
Celebrate your progression from beginner to intermediate as you build tools and plugins for AutoCAD, Civil 3D, Revit, and Navisworks using C#.
Course Overview
This comprehensive course empowers you to master C# fundamentals and the .NET Framework using Visual Studio. You’ll learn to build real-world plugins for AutoCAD, Civil 3D, Revit, and Navisworks using Autodesk’s powerful APIs. From basic coding to advanced automation, each section guides you through practical development techniques. By the end, you’ll be ready to create your own tools, solve real problems, and grow as a professional developer.
What You’ll Learn
Understand the course goals, structure, and who it’s designed for.
Set up your development environment with required Autodesk software and Visual Studio.
Learn why C# is ideal for Autodesk plugin development.
Explore .NET APIs for AutoCAD, Civil 3D, Revit, and Navisworks.
Discover plugin architecture, deployment, and licensing essentials.
Get started with C# and .NET Framework fundamentals.
Launch your first .NET program and explore Visual Studio 2022.
Master key C# concepts: namespaces, assemblies, OOP, and NuGet packages.
Dive into core programming: variables, loops, conditions, error handling, and collections.
Learn debugging, logging, and writing clean, maintainable code.
Build AutoCAD plugins using CommandMethod, WinForms, and object creation.
Work with layers, styles, user input, and custom dictionaries in AutoCAD.
Automate tasks like title blocks, palettes, drawing generation, and data export.
Develop Civil 3D plugins to handle surfaces, corridors, and pipe networks.
Create Revit and Navisworks plugins to access families, metadata, and simulation data.
Course Requirements / Prerequisites
Basic understanding of programming concepts is helpful but not mandatory.
A little prior experience with AutoCAD, Civil 3D, Revit, or Navisworks plugins is required.
You’ll need a Windows PC with Visual Studio 2022 and Autodesk software installed.
Familiarity with C# or .NET is a plus, but everything is explained step-by-step.
Enthusiasm to learn and build real-world tools is the most important requirement!
Who This Course Is For
Beginners who want to break into Autodesk plugin development using C#.
Intermediate developers looking to automate tasks in AutoCAD, Civil 3D, Revit, or Navisworks.
BIM professionals, CAD technicians, and engineers aiming to extend Autodesk functionality.
Students and hobbyists curious about .NET programming in design software.
Anyone who wants to build practical tools and grow as a professional developer.