c3d-custom-subassemblies

Automate Civil 3D corridor subassembly design using the SATemplate pattern and SubassemblyGenerator.

3|Updated Feb 17, 2026
One-click install
npx skills add https://github.com/hebackus/c3d-api-plugin --skill c3d-custom-subassemblies
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: c3d-custom-subassemblies
Source: https://github.com/hebackus/c3d-api-plugin/tree/main/skills/c3d-custom-subassemblies
Command: npx skills add https://github.com/hebackus/c3d-api-plugin --skill c3d-custom-subassemblies

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Custom subassemblies solve the need to create reusable, parameterized geometry for Civil 3D corridors by letting developers implement .NET classes that generate subassembly geometry via the SATemplate pattern and SubassemblyGenerator.

Core Features & Use Cases

  • Define cross-sectional shapes using the SATemplate pattern for reusable, well-structured subassemblies.
  • Configure SubassemblyGenerator to load a compiled .NET assembly and a fully qualified class name to produce geometry.
  • Support reliable naming conventions, parameter types (Widths, Offsets, Slopes), and target mappings (Surface, Alignment, Profile).
  • Handle superelevation scenarios and common design challenges (pivot points, PGL relationships) within corridor workflows.
  • Example components: LaneBasic, ShoulderExtended, CurbTypeA; incorporate Utilities and CodesSpecific for consistency.
  • Best practices include robust error handling via corridorState.RecordError() and adherence to the SATemplate workflow.

Quick Start

Compile a first custom subassembly by implementing a .NET class following the SATemplate pattern and wire it to a SubassemblyGenerator instance for testing in Civil 3D.

Frequently Asked Questions about c3d-custom-subassemblies

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create custom Civil 3D subassemblies in .NET?

To create custom Civil 3D subassemblies in .NET, implement a class using the SATemplate pattern and wire it to a SubassemblyGenerator instance to produce reusable, parameterized corridor geometry.

What is the SATemplate pattern used for in Civil 3D corridor design?

The SATemplate pattern in Civil 3D corridor design defines cross-sectional shapes and structures reliable, parameterized subassemblies that generate geometry via a compiled .NET assembly and a fully qualified class name.

How do I handle superelevation and target mapping for custom subassemblies?

Handle superelevation and target mapping for custom subassemblies by configuring parameter types like Widths, Offsets, and Slopes, and mapping targets to Surface, Alignment, or Profile within your .NET corridor workflow.

What is the best way to manage errors in custom Civil 3D subassembly code?

The best way to manage errors in custom Civil 3D subassembly code is to use robust error handling practices, specifically invoking corridorState.RecordError() to capture and log issues during generation.

Do I need .NET to build custom subassemblies for Civil 3D corridors?

Yes, you need .NET to build custom subassemblies for Civil 3D corridors because the workflow requires compiling a .NET assembly that the SubassemblyGenerator loads to produce the geometry.

Can I use custom subassemblies for both lanes and shoulders in Civil 3D?

Yes, you can use custom subassemblies for both lanes and shoulders in Civil 3D by implementing specific variants like LaneBasic and ShoulderExtended to address unique superelevation and pivot point requirements.