Inventor Design Automation Guidelines

Wesley Zloza | Mar 4, 2025 | 16 min read

As an engineer with over 15 years of experience, I’ve had the privilege of working on a wide variety of design automation projects utilizing iLogic and the Inventor API. Throughout this time I’ve developed a series of best practices (i.e., my guidelines) for working with CAD models and writing iLogic.

Contents

Modeling

Parameters

Parameters are a set intrinsic variables that define the size, shape, and/or functionality of a part and/or assembly. Autodesk Inventor has three types of parameters:

  1. model parameters,
  2. reference parameters,
  3. and user parameters.

Only user parameters should be programmatically driven when performing CAD automation. Model parameters and reference parameters (in most cases) should be left untouched for the following reasons:

Overall, user parameters are a more stable and have a greater range of features. These parameters can have units of measure separate from the document, they do not have be consumed by a feature to exist (i.e., they can exist in an empty part or assembly), they can be driven by a Microsoft Excel spreadsheet, and they can have different types: a number, string, or boolean. More information about parameters is provided in the official Autodesk documentation.

Parameter Guidelines

A 3D model of a 6-inch ANSI B16.5 flange.
Figure 1: ANSI B16.5 Flange CAD Model
A screenshot of a part's Parameters Window that contains descriptive
    parameter names with comments.
Figure 2: CAD Model User Parameters w/ Descriptive Names

Work Features

Properly defined work features are key to creating robust and stable models for use in CAD automation. It is important that when creating work features that their location be strictly defined using global geometry and user parameters. A named entity can be used in place of work feature if this cannot be easily achieved. The following rules should be applied when working with work features:

Named Entities

Named entities (otherwise referred to as named geometry) can be used for drawing automation and in assemblies where work features would otherwise be tedious to create. Named entities, however, should be used with caution. Because named entities are tied to geometry, it is possible for them to be removed by the modification or deletion of a part feature. Named entities should be given a name that indicate its type and location and written in PascalCase.4 For example, an appropriate name of corner on a plate would be “VertexTopRight”. The available geometry types are Vertex, Edge, and Face.

Model Tree

The model tree displays different content depending on the document type. In a part file, for example, the model tree will display part features and sketches while in assembly it will display component occurrences. The default naming convention used by Autodesk Inventor also varies based on the node type. The following rules should be followed when creating nodes in the model tree:

Part Model Tree

An illustration showing two part model trees for a model of ANSI B16.5
    flange. On the left is the default model tree while on the right is the same
    model tree with descriptive names.
Figure 3: Default & Better Part Model Tree Naming

Assembly Model Tree

Drawing Model Tree

iProperties

iProperties define the identity of a part, assembly, and/or drawing. The following list only covers the minimum requirements/best practices when working with this data:

File Naming

Companies have various rules/opinions regarding file naming. In most cases, companies will choose to name CAD files based on their associated part number.5 This practice works well as long as the following exception is made - a part number (or autogenerated file name) should not be assigned to files used in CAD automation. These files instead should be given descriptive names and organized based on their scope (similar to a namespace).

iLogic

iLogic embeds rules as objects directly into part, assembly, and drawing documents. Typically, the rules that are defined by the user are used to determine the design of a model and drive the content inside a document. iLogic should be used for simple automation; the Inventor API should be used instead if any of the following conditions apply:6

General

Rules

Comments

Variables

Functions

Footnotes

  1. A master model may also be referred to as a template or factory file. These files are never directly used for fabrication; instead but is used by an automation program as a starter to generate models that will be used in fabrication.

  2. It is recommended to use PascalCase when naming parameters because this is consistent with the naming conventions used in C#.

  3. Capitalized Sentence Case is recommend because it easier to read. Some may argue, however, that this naming convention is more prone to error especially when names are used programmatically to get a reference of an object. For example, one of the most frustrating issues is to debug is failing to find a reference of an object because an extra space was accidentally included between a word. If this is a concern, then PascalCase can be as a substitute. 2 3 4

  4. Readers will notice that PascalCase is recommended for parameters and named entities while Capitalized Sentence Case is recommended for part features, assembly features, work features, and sketches (i.e., objects shown in the model tree). This differentiation was based on who is consuming these objects. Parameters and named entities are mostly utilized by advanced CAD users while the other objects are consumed by users of all skill types. As a result, it felt important for the items in the model tree to have higher readability.

  5. Companies not using a document management system (DMS) generally depend on this practice because its the only way they can quickly locate part models and drawings in the file system.

  6. The Autodesk Inventor API (or more specifically .NET) is preferred over iLogic. Although the learning curve associated with the API is higher, it is easier to maintain, it allows for better collaboration between users, and it promotes the re-use of code.