Back to blogBIM automation

    Automating Revit with C#: planning a useful BIM add-in

    Updated: 4 min

    Define a testable BIM automation, prepare a safe Revit pilot, and understand where NM Civil Solutions CAD plugins fit into the workflow.

    A useful Revit automation starts with a task you can describe and verify. “We need a BIM add-in” expresses a wish. “We need to identify elements without a classification code and review the findings before changing the model” describes a testable requirement. That distinction helps determine whether an existing tool, a C# command, or custom development is appropriate.

    This guide outlines an information-checking pilot and explains how civil-model preparation with NM Civil Solutions tools can support the wider process. AutoCAD and Civil 3D plugins have a different role from native Revit add-ins; the exchange between applications must be planned and tested.

    1. Specify the input and expected result

    Choose one category and one property. A classification check might inspect selected elements and report identifier, category, current value, and a reason for each finding. Decide whether the scope is the current selection or the entire document. Users need to understand which objects were reviewed before they can trust the result.

    Prepare a small reference model containing a valid value, an empty value, a missing parameter, and an intentionally excluded element. Write down the expected result for each. These examples expose ambiguous requirements early and provide a practical basis for evaluating the first implementation with the people who will actually use it.

    2. Match the development setup to the Revit release

    Check the API and development requirements for the target Revit version before choosing .NET settings and assembly references. Do not assume that an add-in compiled for one release will work unchanged in another. Include the supported releases in the delivery specification rather than discovering compatibility problems during rollout.

    Separate the command entry point, validation rules, and result interface. Start with a read-only command on a copy of the model. This makes it easier to discuss the findings before adding any automatic editing. A successful first pilot should explain what it found, including cases that were skipped because the rule did not apply.

    3. Make changes explicit and recoverable

    Revit document changes require transactions in a supported API context. A background task or an open interface is not by itself permission to modify the document. Follow the rules documented for the target API version when introducing editing into the pilot.

    For the user, provide a clear progression: scope, findings, proposed changes, and confirmed result. A preview should identify affected elements. The final message should distinguish applied changes from skipped items and failures. Cancellation or a rejected update must not be reported as successful completion.

    4. Prepare the civil input before coordinating it

    Model automation cannot repair every upstream issue. Undefined coordinates, inconsistent units, and geometry without a clear source can undermine a coordinated project. Record the origin, date, intended detail, and exchange method of the civil information before using it as input to another discipline.

    NM Terrain supports elevation-data and TIN-surface preparation in Civil 3D. It can help establish territorial context before BIM coordination. Check the resolution and suitability of satellite data for the study; it does not automatically replace a detailed site survey.

    NM Hydraulic Builder supports parametric hydraulic components and native 3D solids in AutoCAD and Civil 3D. Its role in this workflow is to prepare consistent civil geometry. Do not assume that it produces native Revit families: verify the agreed exchange method, retained properties, and downstream editability with a representative sample.

    5. Evaluate correctness before speed

    Run the manual review and pilot on the same examples. Compare their findings and investigate every discrepancy. Only then compare the time spent reviewing information and producing a usable report. A fast command that misclassifies elements simply moves work to the coordination team.

    • Check valid, empty, absent, and excluded values.
    • Test an empty selection and a document without the target category.
    • Confirm that reported identifiers let reviewers find the elements.
    • If editing is enabled, verify reversal and preservation of unrelated data.

    When custom development is appropriate

    Bring a representative model, examples of expected outputs, target software releases, and acceptance criteria to a custom BIM/CAD automation discussion. NM Civil Solutions can assess the task and propose development around the actual workflow.

    Review the existing tools or describe your project. The right solution may combine an established civil plugin with a specific Revit command, with each application responsible for a clearly defined part of the process.

    Reference documentation

    Solutions for this workflow

    Review each plugin's features, compatibility, and availability.

    Civil 3DAutoCAD
    Quote

    NM Hydraulic Builder

    Model parametric channels, pipes and hydraulic structures with a 3D family editor.

    Civil 3D
    Quote

    NM Terrain

    Generate TIN surfaces from satellite data or DEM files and integrate orthophotos and geology.

    NM Civil Solutions

    Civil Engineering - Plugin AEC - Software.

    Software

    • AutoCAD
    • Civil 3D
    • Revit
    • Navisworks

    Contact

    © 2026 NM Civil Solutions. All rights reserved.v1.0.0