This repository contains a comprehensive collection of internal names for Autodesk Inventor. These internal names are essential for accessing various Inventor API components programmatically. Each category is organized into its own namespace (e.g., Ribbon, PropertySets, iProperties, Commands, etc.) for easy navigation and usage.
- Installation
- Quick Start
- Ribbon Components
- Property Sets
- iProperties
- Command Names
- Asset Library Names
- Application Add-in IDs
- Complete Reference
Install the package via NuGet Package Manager:
dotnet add package Inventor.InternalNames
Or via Package Manager Console in Visual Studio:
Install-Package Inventor.InternalNames
Add the using statement to access all internal names:
using Inventor.InternalNames;
using Inventor.InternalNames.Ribbon;
using Inventor.InternalNames.PropertySets;
using Inventor.InternalNames.iProperties;
Basic usage example:
// Access a specific ribbon
var partRibbon = inventorApplication.UserInterfaceManager.Ribbons[InventorRibbons.Part];
// Get a part property value
var partNumber = partDocument.PropertySets[PropertySets.Part.DesignTracking]
.ItemByPropId[(int)PropertiesForDesignTrackingPropertiesEnum.kPartNumberDesignTrackingProperties].Value;
// Execute a command
inventorApplication.CommandManager.ControlDefinitions[CommandNames.AssemblyCreateComponentCmd].Execute();
User Interface Components. The internal names are used to identify the user interface components in the Inventor API. The internal names are used in the Ribbon
, RibbonTab
, and RibbonPanel
classes to identify the user interface components.
The InventorRibbons
struct provides access to all main ribbon types for different Inventor environments:
- Part - Part modeling environment
- Assembly - Assembly environment
- Drawing - Drawing environment
- ZeroDoc - Zero document state
- Presentation - Presentation environment
- iFeatures - iFeature environment
- UnknownDocument - Unknown document type
π Source: src/Inventor.InternalNames/Ribbon/InventorRibbons.cs
Each document type has its own set of ribbon tabs:
π Source: PartRibbonTabs
- Contains 46+ ribbon tabs including:
SheetMetal
,FlatPattern
,k3DModel
,Sketch
,Annotate
,Inspect
,Tools
,Manage
,View
,Environments
, and many more specialized tabs.
π Source: AssemblyRibbonTabs
- Contains tabs for:
Assemble
,Design
,k3DModel
,Weld
,Electromechanical
,TubeAndPipe
,CableAndHarness
, and more.
π Source: DrawingRibbonTabs
- Contains tabs for:
PlaceViews
,Annotate
, and more drawing-specific functionality.Sketch
- Sketching in drawingsTools
- Drawing tools- And more...
Each tab contains multiple panels organized as nested structures within each document type:
π Sources:
PartRibbonPanels
- All Part document ribbon panelsAssemblyRibbonPanels
- All Assembly document ribbon panelsDrawingRibbonPanels
- All Drawing document ribbon panels
// Get the drawing ribbon
var drawingRibbon = inventorApplication.UserInterfaceManager.Ribbons[InventorRibbons.Drawing];
// Access the Place Views tab
var placeViewsTab = drawingRibbon.RibbonTabs[DrawingRibbonTabs.PlaceViews];
// Access the Create panel within Place Views tab
var createPanel = placeViewsTab.RibbonPanels[DrawingRibbonPanels.PlaceViews.Create];
// Access Part ribbon
var partRibbon = inventorApplication.UserInterfaceManager.Ribbons[InventorRibbons.Part];
// Get 3D Model tab
var modelTab = partRibbon.RibbonTabs[PartRibbonTabs.k3DModel];
// Access the Create panel for 3D features
var createPanel = modelTab.RibbonPanels[PartRibbonPanels.k3DModelTab.Create];
// Access Assembly ribbon
var assemblyRibbon = inventorApplication.UserInterfaceManager.Ribbons[InventorRibbons.Assembly];
// Get Assemble tab
var assembleTab = assemblyRibbon.RibbonTabs[AssemblyRibbonTabs.Assemble];
// Access Component panel
var componentPanel = assembleTab.RibbonPanels[AssemblyRibbonPanels.AssembleTab.Component];
Property sets contain groups of related properties in Inventor documents. Each document type (Part, Assembly, Drawing) has access to different property sets.
Each document type has access to different property sets for managing document metadata and properties:
π Sources:
PropertySets.Part
- Part document property setsPropertySets.Assembly
- Assembly document property setsPropertySets.Drawing
- Drawing document property sets
Common Property Sets:
SummaryInformation
- Basic document informationDocumentSummaryInformation
- Extended document detailsDesignTracking
- Design tracking and workflow propertiesUserDefined
- Custom user-defined properties
// Get part document
PartDocument partDoc = (PartDocument)inventorApplication.ActiveDocument;
// Access Design Tracking property set
PropertySet designTrackingProps = partDoc.PropertySets[PropertySets.Part.DesignTracking];
// Read specific properties
string partNumber = designTrackingProps["Part Number"].Value;
string description = designTrackingProps["Description"].Value;
// Access Summary Information property set
PropertySet summaryInfo = partDoc.PropertySets[PropertySets.Part.SummaryInformation];
// Get document properties
string title = summaryInfo["Title"].Value;
string author = summaryInfo["Author"].Value;
string company = summaryInfo["Company"].Value;
// Access User Defined property set
PropertySet userDefinedProps = partDoc.PropertySets[PropertySets.Part.UserDefined];
// Add custom property
userDefinedProps.Add("MyCustomProperty", "Custom Value");
// Read custom property
string customValue = userDefinedProps["MyCustomProperty"].Value;
iProperties are individual property names within property sets. Each document type has an extensive collection of available property names.
iProperties are individual property names within property sets. Each document type has an extensive collection of available property names:
π Sources:
iProperties.Part
- 100+ Part document property constantsiProperties.Assembly
- Assembly document property constantsiProperties.Drawing
- Drawing document property constants
Property Categories Include:
- Basic Properties: Title, Subject, Author, Keywords, Comments, Part Number, Description, Material
- Design Tracking: Project, Cost Center, Designer, Engineer, Checked By, Approved By
- Physical Properties: Mass, Surface Area, Volume, Density
- Sheet Metal Properties: Flat Pattern dimensions, Sheet Metal Rule
- Drawing-Specific: Pipe Type, Route Preview, Fitting Material, Diameter, Schedule
// Access Design Tracking property set
PropertySet designProps = partDoc.PropertySets[PropertySets.Part.DesignTracking];
// Read properties using iProperty constants
string partNumber = designProps[iProperties.Part.PartNumber].Value;
string description = designProps[iProperties.Part.Description].Value;
string designer = designProps[iProperties.Part.Designer].Value;
string material = designProps[iProperties.Part.Material].Value;
// Set various part properties
designProps[iProperties.Part.PartNumber].Value = "ABC-123";
designProps[iProperties.Part.Description].Value = "Main Housing Component";
designProps[iProperties.Part.Designer].Value = "John Smith";
designProps[iProperties.Part.Engineer].Value = "Jane Doe";
// Access Summary Information for physical properties
PropertySet summaryInfo = partDoc.PropertySets[PropertySets.Part.SummaryInformation];
// Read physical properties
double mass = summaryInfo[iProperties.Part.Mass].Value;
double volume = summaryInfo[iProperties.Part.Volume].Value;
double density = summaryInfo[iProperties.Part.Density].Value;
// For sheet metal parts
if (partDoc.SubType == PartDocumentSubTypeEnum.kSheetMetalDocumentSubType)
{
double flatWidth = summaryInfo[iProperties.Part.FlatPatternWidth].Value;
double flatLength = summaryInfo[iProperties.Part.FlatPatternLength].Value;
double flatArea = summaryInfo[iProperties.Part.FlatPatternArea].Value;
}
Command names are internal identifiers for Inventor commands that can be executed programmatically using the CommandManager. The CommandNames
struct contains hundreds of command constants.
π Source: CommandNames
- Contains hundreds of Inventor command constants
Command Categories Include:
- General Commands: Update, Continue, Save, Export operations
- Assembly Commands: Create/Place/Move components, Constraints, Patterns, Mirroring
- Part Modeling Commands: Extrude, Revolve, Sweep, Loft, Hole, Fillet, Chamfer
- Drawing Commands: Base View, Projected View, Section View, Detail View, Dimensions
- Sketch Commands: Line, Circle, Rectangle, Arc, Spline and geometric operations
// Get the command manager
CommandManager cmdMgr = inventorApplication.CommandManager;
// Execute update command
cmdMgr.ControlDefinitions[CommandNames.Update].Execute();
// Start a new sketch
cmdMgr.ControlDefinitions[CommandNames.Part2DSketchCmd].Execute();
// Place a new component
cmdMgr.ControlDefinitions[CommandNames.AssemblyPlaceComponentCmd].Execute();
// Create assembly constraints
cmdMgr.ControlDefinitions[CommandNames.AssemblyConstraintCmd].Execute();
// Pattern components
cmdMgr.ControlDefinitions[CommandNames.AssemblyPatternComponentCmd].Execute();
// Create extrude feature
cmdMgr.ControlDefinitions[CommandNames.PartExtrudeCmd].Execute();
// Add fillet
cmdMgr.ControlDefinitions[CommandNames.PartFilletCmd].Execute();
// Create hole feature
cmdMgr.ControlDefinitions[CommandNames.PartHoleCmd].Execute();
// Create base view
cmdMgr.ControlDefinitions[CommandNames.DrawingBaseViewCmd].Execute();
// Add dimensions
cmdMgr.ControlDefinitions[CommandNames.DrawingGeneralDimensionCmd].Execute();
// Create section view
cmdMgr.ControlDefinitions[CommandNames.DrawingSectionViewCmd].Execute();
// Check if a command is available before executing
ControlDefinition controlDef = cmdMgr.ControlDefinitions[CommandNames.AssemblyCreateComponentCmd];
if (controlDef.Enabled)
{
controlDef.Execute();
}
Asset Library Names provide internal identifiers for Autodesk's built-in asset libraries in Inventor. These identifiers are used to programmatically access material libraries, appearance libraries, and other asset collections.
π Source: AssetLibraryNames
- Contains asset library GUID constants
Available Libraries:
- Autodesk Material Library - Standard Autodesk material library
- Autodesk Appearance Library - Standard Autodesk appearance library
- Favorites - User's favorites collection
- Inventor Material Library - Inventor-specific material library
// Get the asset library manager
AssetLibraries assetLibraries = inventorApplication.AssetLibraries;
// Access the Autodesk Material Library
AssetLibrary materialLibrary = assetLibraries[AssetLibraryNames.AutodeskMaterialLibrary];
// Access the Inventor Material Library
AssetLibrary inventorMaterialLibrary = assetLibraries[AssetLibraryNames.InventorMaterialLibrary];
// Access the Autodesk Appearance Library
AssetLibrary appearanceLibrary = assetLibraries[AssetLibraryNames.AutodeskAppearanceLibrary];
// Browse available appearances
foreach (Asset appearance in appearanceLibrary.AppearanceAssets)
{
Console.WriteLine($"Appearance: {appearance.DisplayName}");
}
Application Add-in IDs provide internal identifiers for Autodesk Inventor add-ins and translators. These GUID constants allow developers to programmatically identify and interact with specific add-ins installed in Inventor.
π Source: ApplicationAddinIds
- Contains 70+ application add-in GUID constants
Add-in Categories Include:
- Core Inventor Add-ins: Content Center, Design Accelerator, Frame Generator, iLogic, iCopy
- Simulation Add-ins: Stress Analysis, Frame Analysis, Dynamic Simulation
- Manufacturing Add-ins: Additive Manufacturing, Mold Design, Presentations
- Translators: STEP, IGES, CATIA V5, SolidWorks, Fusion 360, DWG/DXF, STL, PDF, and many more
- Specialized Tools: BIM Content, Assembly Bonus Tools, Shared Views, Interactive Tutorial
// Get the application add-ins collection
ApplicationAddIns addIns = inventorApplication.ApplicationAddIns;
// Check if iLogic add-in is available
if (addIns.ItemById[ApplicationAddinIds.iLogic] != null)
{
Console.WriteLine("iLogic add-in is available");
// Get the iLogic add-in
ApplicationAddIn iLogicAddin = addIns.ItemById[ApplicationAddinIds.iLogic];
}
// Check available translators
var translatorIds = new string[]
{
ApplicationAddinIds.TranslatorSTEP,
ApplicationAddinIds.TranslatorIGES,
ApplicationAddinIds.TranslatorCATIAV5Import,
ApplicationAddinIds.TranslatorSolidWorks,
ApplicationAddinIds.TranslatorFusion
};
foreach (string translatorId in translatorIds)
{
var translator = addIns.ItemById[translatorId];
if (translator != null)
{
Console.WriteLine($"Translator Available: {translator.DisplayName}");
}
}
// Load the Content Center add-in if available
ApplicationAddIn contentCenter = addIns.ItemById[ApplicationAddinIds.ContentCenter];
if (contentCenter != null)
{
try
{
contentCenter.Activate();
Console.WriteLine("Content Center add-in loaded successfully");
}
catch (Exception ex)
{
Console.WriteLine($"Failed to load Content Center: {ex.Message}");
}
}
// Get all add-ins and their information
foreach (ApplicationAddIn addIn in addIns)
{
Console.WriteLine($"Add-in: {addIn.DisplayName}");
Console.WriteLine($" ID: {addIn.ClassIdString}");
Console.WriteLine($" Description: {addIn.Description}");
Console.WriteLine();
}
The library is organized into the following namespaces:
Inventor.InternalNames // Base namespace with CommandNames, AssetLibraryNames, and ApplicationAddinIds
βββ Ribbon // Ribbon-related constants
β βββ InventorRibbons // Main ribbon types
β βββ PartRibbonTabs // Part document ribbon tabs
β βββ PartRibbonPanels // Part document ribbon panels
β βββ AssemblyRibbonTabs // Assembly document ribbon tabs
β βββ AssemblyRibbonPanels // Assembly document ribbon panels
β βββ DrawingRibbonTabs // Drawing document ribbon tabs
β βββ DrawingRibbonPanels // Drawing document ribbon panels
β βββ PresentationRibbonTabs // Presentation ribbon tabs
β βββ PresentationRibbonPanels // Presentation ribbon panels
β βββ ZeroDocRibbonTabs // Zero document ribbon tabs
β βββ ZeroDocRibbonPanels // Zero document ribbon panels
β βββ iFeatureRibbonTabs // iFeature ribbon tabs
β βββ iFeatureRibbonPanels // iFeature ribbon panels
β βββ UnknownDocumentRibbonTabs // Unknown document ribbon tabs
β βββ UnknownDocumentRibbonPanels // Unknown document ribbon panels
βββ PropertySets // Property set names
β βββ Part // Part document property sets
β βββ Assembly // Assembly document property sets
β βββ Drawing // Drawing document property sets
βββ iProperties // Individual property names
βββ Part // Part document property names
βββ Assembly // Assembly document property names
βββ Drawing // Drawing document property names
Document Type | Ribbons | Tabs | Panels | Property Sets | iProperties | Commands | Asset Libraries | Add-in IDs |
---|---|---|---|---|---|---|---|---|
Part | β | β | β | β | β | β | β | β |
Assembly | β | β | β | β | β | β | β | β |
Drawing | β | β | β | β | β | β | β | β |
Presentation | β | β | β | β | β | β | β | β |
iFeature | β | β | β | β | β | β | β | β |
ZeroDoc | β | β | β | β | β | β | β | β |
Unknown | β | β | β | β | β | β | β | β |
- Always check availability: Verify that UI elements exist before accessing them
- Use constants: Leverage the provided constants instead of hardcoding strings
- Handle exceptions: Wrap API calls in try-catch blocks for robustness
- Document context: Consider which document type is active when accessing UI elements
using Inventor;
using Inventor.InternalNames;
using Inventor.InternalNames.Ribbon;
using Inventor.InternalNames.PropertySets;
using Inventor.InternalNames.iProperties;
public class InventorIntegrationExample
{
private Application _inventorApp;
public void CompleteExample()
{
// 1. Access UI components
var partRibbon = _inventorApp.UserInterfaceManager.Ribbons[InventorRibbons.Part];
var modelTab = partRibbon.RibbonTabs[PartRibbonTabs.k3DModel];
// 2. Work with properties
if (_inventorApp.ActiveDocument is PartDocument partDoc)
{
var designProps = partDoc.PropertySets[PropertySets.Part.DesignTracking];
string partNumber = designProps[iProperties.Part.PartNumber].Value;
// 3. Execute commands
var cmdMgr = _inventorApp.CommandManager;
cmdMgr.ControlDefinitions[CommandNames.PartExtrudeCmd].Execute();
// 4. Work with asset libraries
var assetLibraries = _inventorApp.AssetLibraries;
var materialLibrary = assetLibraries[AssetLibraryNames.AutodeskMaterialLibrary];
// 5. Check and manage add-ins
var addIns = _inventorApp.ApplicationAddIns;
var iLogicAddin = addIns.ItemById[ApplicationAddinIds.iLogic];
if (iLogicAddin != null)
{
iLogicAddin.Activate();
}
}
}
}
Contributions are welcome! If you find missing internal names or have suggestions for improvements, please:
- Open an issue describing the missing functionality
- Submit a pull request with the additions
- Include examples in your contributions
This project is licensed under the MIT License - see the LICENSE file for details.