Inventor API: Ribbon Structure

I ran a small app to iterate over the Inventor Ribbon structure. The results look as follows:

(edit: added the DisplayName, next to the InternalName)

Ribbon: ZeroDoc
    Tab: id_GetStarted - Get Started
        Panel: id_Panel_Launch - Launch
        Panel: id_Panel_GetStartedUI - User Interface Overview
        Panel: id_Panel_GetStartedWhatsNew - New Features
        Panel: id_Panel_LearnAbout - Learn about Inventor
        Panel: id_Panel_GetStartedInvolve - Community
    Tab: id_TabTools - Tools
        Panel: id_PanelP_ToolsOptions - Options
        Panel: id_PanelZ_ToolsContentCenter - Content Center
        Panel: iLogic.RibbonPanel - iLogic
        Panel: id_PanelP_ToolsWebTools - Web
    Tab: id_TabVault - Vault
        Panel: id_PanelZ_VaultAccess - Access
        Panel: id_PanelZ_VaultStatus - File Status
    Tab: id_TabVault_Upgrade - Vault
        Panel: id_PanelZ_VaultAccess - Access
        Panel: id_PanelZ_VaultStatusUpgrade - File Status
        Panel: id_PanelZ_VaultControl - Control
    Tab: id_AddInsTab - Add-Ins
Ribbon: Part
    Tab: id_TabSheetMetal - Sheet Metal
        Panel: id_PanelP_Model2DSketchCreate - Sketch
        Panel: id_PanelP_SheetMetalCreate - Create
        Panel: id_PanelP_SheetMetalModify - Modify
        Panel: id_PanelA_ModelWorkFeatures - Work Features
        Panel: id_PanelP_SheetMetalPattern - Pattern
        Panel: id_PanelP_SheetMetalManage - Setup
        Panel: id_PanelP_SheetMetalManageUnfold - Flat Pattern
        Panel: id_PanelP_ToolsParameters - Parameters
        Panel: id_PanelP_ToolsMeasure - Measure
    Tab: id_TabFlatPattern - Flat Pattern
        Panel: id_PanelP_Model2DSketchCreate - Sketch
        Panel: id_PanelP_FlatPatternCreate - Create
        Panel: id_PanelP_FlatPatternModify - Modify
        Panel: id_PanelA_ModelWorkFeatures - Work Features
        Panel: id_PanelP_FlatPatternPattern - Pattern
        Panel: id_PanelP_FlatPatternInsert - Insert
        Panel: id_PanelP_FlatPatternManage - Manage
        Panel: id_PanelP_FlatPatternExit - Folded Part
    Tab: id_TabModel - Model
        Panel: id_PanelP_Model2DSketchCreate - Sketch
        Panel: id_PanelP_ModelCreate - Create
        Panel: id_PanelP_ModelModify - Modify
        Panel: id_PanelA_ModelWorkFeatures - Work Features
        Panel: id_PanelP_ModelPattern - Pattern
        Panel: id_PanelP_ModelSurface - Surface
        Panel: id_PanelP_ToolsParameters - Parameters
        Panel: id_PanelP_PlasticPart - Plastic Part
        Panel: id_PanelP_ToolsMeasure - Measure
        Panel: id_PanelP_ToolsInsert - Insert
        Panel: id_PanelP_ModelHarness - Harness
        Panel: id_PanelA_AssembleIPartIAssembly - iPart/iAssembly
        Panel: id_PanelP_AnalysisFEA - Simulation
        Panel: id_PanelP_ConvertSheetMetal - Convert
    Tab: id_TabInspect - Inspect
        Panel: id_PanelP_AnalysisMeasure - Measure
        Panel: id_PanelP_ToolsAnalysis - Analysis
        Panel: id_PanelP_ToolsAutoLimits - AutoLimits
        Panel: id_PanelP_ToolsParameters - Parameters
    Tab: id_TabTools - Tools
        Panel: id_PanelP_ToolsEnvironments - Begin
        Panel: id_PanelP_ToolsMeasure - Measure
        Panel: id_PanelP_ToolsOptions - Options
        Panel: id_PanelP_ToolsClipboard - Clipboard
        Panel: id_PanelP_ToolsFind - Find
    Tab: id_TabManage - Manage
        Panel: id_PanelP_ToolsUpdate - Update
        Panel: id_PanelP_ToolsParameters - Parameters
        Panel: id_PanelP_ToolsStylesAndStandards - Styles and Standards
        Panel: id_PanelP_ToolsInsert - Insert
        Panel: id_PanelP_ToolsLayout - Layout
        Panel: id_PanelP_ToolsAuthor - Author
        Panel: iLogic.RibbonPanel - iLogic
        Panel: id_PanelP_ToolsContentCenter - Content Center
        Panel: id_PanelP_ToolsWebTools - Web
    Tab: id_TabView - View
        Panel: id_PanelP_ViewVisibility - Visibility
        Panel: id_PanelA_ViewAppearance - Appearance
        Panel: id_PanelP_ViewWindow - Windows
        Panel: id_PanelC_ViewNavigate - Navigate
    Tab: id_TabEnvironments - Environments
        Panel: id_Panel_EnvironmentsBegin - Begin
        Panel: id_PanelP_ConvertSheetMetal - Convert
        Panel: id_PanelP_EnvironmentsAddIns - Manage
    Tab: id_TabVault - Vault
        Panel: id_PanelZ_VaultAccess - Access
        Panel: id_PanelZ_VaultStatus - File Status
    Tab: id_TabVault_Upgrade - Vault
        Panel: id_PanelZ_VaultAccess - Access
        Panel: id_PanelZ_VaultStatusUpgrade - File Status
        Panel: id_PanelZ_VaultControl - Control
    Tab: id_GetStarted - Get Started
        Panel: id_Panel_Launch - Launch
        Panel: id_Panel_GetStartedUI - User Interface Overview
        Panel: id_Panel_GetStartedWhatsNew - New Features
        Panel: id_Panel_LearnAbout - Learn about Inventor
        Panel: id_Panel_GetStartedInvolve - Community
    Tab: id_AddInsTab - Add-Ins
    Tab: id_TabSketch - Sketch
        Panel: id_PanelP_2DSketchDraw - Draw
        Panel: id_PanelP_2DSketchConstrain - Constrain
        Panel: id_PanelP_2DSketchPattern - Pattern
        Panel: id_PanelP_2DSketchModify - Modify
        Panel: id_PanelP_2DSketchLayout - Layout
        Panel: id_PanelA_2DSketchInsert - Insert
        Panel: id_PanelP_2DSketchFormat - Format
        Panel: id_PanelP_ToolsParameters - Parameters
    Tab: id_TabSketch_Exit - Exit 2D Sketch
        Panel: id_PanelP_2DSketchExit - Exit
    Tab: id_Tab3DSketch - 3D Sketch
        Panel: id_PanelP_3DSketchDraw - Draw
        Panel: id_PanelP_3DSketchConstrain - Constrain
        Panel: id_PanelP_3DSketchModify - Modify
        Panel: id_PanelP_3DSketchInsert - Insert
        Panel: id_PanelP_3DSketchFormat - Format
        Panel: id_PanelA_ModelWorkFeatures - Work Features
        Panel: id_PanelP_ToolsParameters - Parameters
    Tab: id_Tab3DSketch_Exit - Exit 3D Sketch
        Panel: id_PanelP_3DSketchExit - Exit
    Tab: id_TabConstruction - Construction
        Panel: id_PanelP_ConstructionManage - Manage
        Panel: id_PanelP_ConstructionSurface - Surface
    Tab: id_TabConstruction_Exit - Exit Construction
        Panel: id_PanelP_ConstructionExit - Exit
    Tab: id_TabEditBaseSolid - Edit Base Solid
        Panel: id_PanelP_ExplicitModify - Modify
        Panel: id_PanelA_ModelWorkFeatures - Work Features
        Panel: id_PanelP_ExplicitManage - Manage
    Tab: id_TabEditBaseSolid_Exit - Exit Base Solid
        Panel: id_PanelP_ExplicitExit - Exit
    Tab: id_TabRoute - Route
        Panel: id_PanelP_RouteCreate - Create
        Panel: id_PanelP_RouteConstrain - Constrain
        Panel: id_PanelP_RouteManage - Manage
        Panel: id_PanelP_ToolsParameters - Parameters
    Tab: id_TabRoute_Exit - Exit Route
        Panel: id_PanelP_RouteExit - Exit
    Tab: id_TabRender - Render
        Panel: id_PanelP_StudioRender - Render
        Panel: id_PanelP_StudioScene - Scene
        Panel: id_PanelP_StudioAnimate - Animate
        Panel: id_PanelP_StudioManage - Manage
    Tab: id_TabRender_Exit - Exit Studio
        Panel: id_PanelP_StuidoExit - Exit
    Tab: id_TabStressAnalysis_Exit - Exit Stress Analysis
        Panel: id_PanelP_StressAnalysisExit - Exit
    Tab: id_TabAFEA - Stress Analysis
        Panel: id_PanelA_AFEAManage - Manage
        Panel: id_PanelA_AFEAMaterial - Material
        Panel: id_PanelA_AFEAConstraints - Constraints
        Panel: id_PanelA_AFEALoads - Loads
        Panel: id_PanelA_AFEAContacts - Contacts
        Panel: id_PanelA_AFEAPreProcess - Prepare
        Panel: id_PanelA_AFEASolve - Solve
        Panel: id_PanelA_AFEAResult - Result
        Panel: id_PanelA_AFEAResultDisplay - Display
        Panel: id_PanelA_AFEAReport - Report
        Panel: id_PanelA_AFEAGuide - Guide
        Panel: id_PanelA_AFEASettings - Settings
    Tab: id_TabAFEA_Exit - Exit Stress Analysis
        Panel: id_PanelP_AFEAExit - Exit
    Tab: id_TabAECExchange - AEC Exchange
        Panel: id_PanelA_AECExchangeAuthor - Author
        Panel: id_PanelA_AECExchangeManage - Manage
    Tab: id_TabAECExchange_Exit - Exit AEC Exchange
        Panel: id_PanelP_AECExchangeExit - Exit
    Tab: id_TabReturn - Return
        Panel: id_PanelP_PartReturn - Return
Ribbon: Assembly
    Tab: MoldTabLayout - Mold Layout
        Panel: MoldPanelLayout - Mold Layout
        Panel: MoldPanelRunnerChannel - Runners and Channels
        Panel: MoldPanelSimulation - Mold Simulation
        Panel: MoldPanelTools - Tools
    Tab: MoldTabCoreCavity - Core/Cavity
        Panel: MoldPanelPlasticPart - Plastic Part
        Panel: MoldPanelPartingDesign - Parting Design
        Panel: MoldPanelInsert - Insert
        Panel: MoldPanelTools - Tools
    Tab: MoldTabMoldBase - Mold Assembly
        Panel: MoldPanelStandardComponents - Mold Assembly
        Panel: MoldPanelMoldBoolean - Boolean
        Panel: MoldPanel2DDrawing - 2-D Drawing
    Tab: id_TabAssemble - Assemble
        Panel: id_PanelA_AssembleComponent - Component
        Panel: id_PanelA_AssemblePosition - Position
        Panel: id_PanelA_AssembleManage - Manage
        Panel: id_PanelA_AssembleIPartIAssembly - iPart/iAssembly
        Panel: id_PanelA_AssembleAssemblyTools - Productivity
        Panel: id_PanelA_ModelWorkFeatures - Work Features
        Panel: id_PanelA_AssembleRoute - Begin
        Panel: id_PanelA_AnalysisSimulation - Simulation
        Panel: id_PanelA_ConvertWeld - Convert
        Panel: id_PanelA_ToolsMeasure - Measure
    Tab: id_TabDesign - Design
        Panel: id_PanelA_DesignFasten - Fasten
        Panel: id_PanelA_DesignFrame - Frame
        Panel: id_PanelA_DesignPowerTransmission - Power Transmission
        Panel: id_PanelA_DesignSpring - Spring
        Panel: id_PanelA_ToolsMeasure - Measure
    Tab: id_TabModel - Model
        Panel: id_PanelA_ModelSketch - Sketch
        Panel: id_PanelA_ModelModify - Modify Assembly
        Panel: id_PanelA_ModelWorkFeatures - Work Features
        Panel: id_PanelA_ModelPattern - Pattern
        Panel: id_PanelA_ModelManage - Parameters
        Panel: id_PanelA_ToolsMeasure - Measure
    Tab: id_TabWeld - Weld
        Panel: id_PanelA_WeldProcess - Process
        Panel: id_PanelA_WeldWeld - Weld
        Panel: id_PanelA_WeldSketch - Sketch
        Panel: id_PanelA_WeldModify - Preparation and Machining
        Panel: id_PanelA_ModelWorkFeatures - Work Features
        Panel: id_PanelA_WeldPattern - Pattern
        Panel: id_PanelA_WeldManage - Parameters
        Panel: id_PanelA_ToolsMeasure - Measure
    Tab: id_TabWeld_ReturnParent - Weld Return to Parent
        Panel: id_PanelA_WeldReturnToParent - Return
    Tab: id_TabInspect - Inspect
        Panel: id_PanelA_ToolsAnalysis - Interference
        Panel: id_PanelA_AnalysisMeasure - Measure
        Panel: id_PanelA_ToolsAutoLimits - AutoLimits
    Tab: id_TabTools - Tools
        Panel: id_PanelA_ToolsRender - Begin
        Panel: id_PanelA_ToolsMeasure - Measure
        Panel: id_PanelP_ToolsOptions - Options
        Panel: id_PanelP_ToolsClipboard - Clipboard
        Panel: id_PanelP_ToolsFind - Find
    Tab: id_TabManage - Manage
        Panel: id_PanelA_ToolsUpdate - Update
        Panel: id_PanelA_ModelManage - Parameters
        Panel: id_PanelA_ToolsStylesAndStandards - Styles and Standards
        Panel: id_PanelA_ToolsInsert - Insert
        Panel: id_PanelA_ToolsAuthor - Author
        Panel: iLogic.RibbonPanel - iLogic
        Panel: id_PanelA_ToolsContentCenter - Content Center
        Panel: id_PanelP_ToolsWebTools - Web
    Tab: id_TabView - View
        Panel: id_PanelA_ViewVisibility - Visibility
        Panel: id_PanelA_ViewAppearance - Appearance
        Panel: id_PanelA_ViewSavedViews - Saved Views
        Panel: id_PanelP_ViewWindow - Windows
        Panel: id_PanelC_ViewNavigate - Navigate
    Tab: id_TabEnvironments - Environments
        Panel: id_Panel_EnvironmentsBegin - Begin
        Panel: id_PanelA_ConvertWeld - Convert
        Panel: id_PanelA_EnvironmentsAddIns - Manage
    Tab: id_TabVault - Vault
        Panel: id_PanelZ_VaultAccess - Access
        Panel: id_PanelZ_VaultStatus - File Status
    Tab: id_TabVault_Upgrade - Vault
        Panel: id_PanelZ_VaultAccess - Access
        Panel: id_PanelZ_VaultStatusUpgrade - File Status
        Panel: id_PanelZ_VaultControl - Control
    Tab: id_GetStarted - Get Started
        Panel: id_Panel_Launch - Launch
        Panel: id_Panel_GetStartedUI - User Interface Overview
        Panel: id_Panel_GetStartedWhatsNew - New Features
        Panel: id_Panel_LearnAbout - Learn about Inventor
        Panel: id_Panel_GetStartedInvolve - Community
    Tab: id_AddInsTab - Add-Ins
    Tab: id_TabSketch - Sketch
        Panel: id_PanelA_2DSketchDraw - Draw
        Panel: id_PanelA_2DSketchConstrain - Constrain
        Panel: id_PanelA_2DSketchPattern - Pattern
        Panel: id_PanelA_2DSketchModify - Modify
        Panel: id_PanelA_2DSketchInsert - Insert
        Panel: id_PanelA_2DSketchFormat - Format
        Panel: id_PanelA_ToolsMeasure - Measure
    Tab: id_TabSketch_Exit - Exit 2D Sketch
        Panel: id_PanelA_2DSketchExit - Exit
    Tab: id_TabTube_Pipe - Tube and Pipe
        Panel: id_PanelA_TubePipeRoute - Run
        Panel: id_PanelA_TubePipeContentCenter - Content
        Panel: id_PanelA_TubePipeComponent - Component
        Panel: id_PanelA_TubePipePosition - Position
        Panel: id_PanelA_TubePipeManage - Manage
        Panel: id_PanelP_ToolsParameters - Parameters
        Panel: id_PanelA_TubePipeIPartIAssembly - iPart/iAssembly
    Tab: id_TabTube_Pipe_Exit - Exit Tube and Pipe
        Panel: id_PanelA_TubePipeExit - Exit
    Tab: id_TabTube_Pipe_Run - Pipe Run
        Panel: id_PanelA_TubePipeRunCreate - Route
        Panel: id_PanelA_TubePipeRunContentCenter - Content
        Panel: id_PanelA_TubePipeRunManage - Manage
        Panel: id_PanelP_ToolsParameters - Parameters
    Tab: id_TabTube_Pipe_Run_Exit - Exit Tube and Pipe Run
        Panel: id_PanelA_TubePipeRunExit - Exit
    Tab: id_TabCable_Harness - Cable and Harness
        Panel: id_PanelA_CableHarnessCreate - Create
        Panel: id_PanelA_CableHarnessRoute - Route
        Panel: id_PanelA_CableHarnessManage - Manage
        Panel: id_PanelA_CableHarnessVisibility - Visibility
    Tab: id_TabCable_Harness_Exit - Exit Cable and Harness
        Panel: id_PanelA_CableHarnessExit - Exit
    Tab: id_TabRender - Render
        Panel: id_PanelA_StudioRender - Render
        Panel: id_PanelA_StudioScene - Scene
        Panel: id_PanelA_StudioAnimate - Animate
        Panel: id_PanelA_StudioManage - Manage
    Tab: id_TabRender_Exit - Exit Studio
        Panel: id_PanelA_StudioExit - Exit
    Tab: id_TabSimulation - Dynamic Simulation
        Panel: id_PanelA_SimulationJoint - Joint
        Panel: id_PanelA_SimulationLoad - Load
        Panel: id_PanelA_SimulationResults - Results
        Panel: id_PanelA_SimulationAnimate - Animate
        Panel: id_PanelA_SimulationMaterial - Manage
        Panel: id_PanelA_SimulationExport - Stress Analysis
    Tab: id_TabSimulation_Exit - Exit Dynamic Simulation
        Panel: id_PanelA_SimulationExit - Exit
    Tab: id_TabAECExchange - AEC Exchange
        Panel: id_PanelA_AECExchangeAuthor - Author
        Panel: id_PanelA_AECExchangeManage - Manage
    Tab: id_TabAECExchange_Exit - Exit AEC Exchange
        Panel: id_PanelA_AECExchangeExit - Exit
    Tab: id_TabReturn - Return
        Panel: id_PanelA_AssmReturn - Return
    Tab: id_TabAFEA - Stress Analysis
        Panel: id_PanelA_AFEAManage - Manage
        Panel: id_PanelA_AFEAMaterial - Material
        Panel: id_PanelA_AFEAConstraints - Constraints
        Panel: id_PanelA_AFEALoads - Loads
        Panel: id_PanelA_AFEAContacts - Contacts
        Panel: id_PanelA_AFEAPreProcess - Prepare
        Panel: id_PanelA_AFEASolve - Solve
        Panel: id_PanelA_AFEAResult - Result
        Panel: id_PanelA_AFEAResultDisplay - Display
        Panel: id_PanelA_AFEAReport - Report
        Panel: id_PanelA_AFEAGuide - Guide
        Panel: id_PanelA_AFEASettings - Settings
    Tab: id_TabAFEA_Exit - Exit Stress Analysis
        Panel: id_PanelA_AFEAExit - Exit
    Tab: id_TabIFA - Frame Analysis
        Panel: id_PanelA_IFAManage - Manage
        Panel: id_PanelA_IFAProperties - Beams
        Panel: id_PanelA_IFAConstraints - Constraints
        Panel: id_PanelA_IFA_Loads - Loads
        Panel: id_PanelA_IFA_Connections - Connections
        Panel: id_PanelA_IFA_Solve - Solve
        Panel: id_PanelA_IFA_Result - Result
        Panel: id_PanelA_IFA_Display - Display
        Panel: id_PanelA_IFA_Publish - Publish
        Panel: id_PanelA_IFA_Settings - Settings
    Tab: id_TabIFA_Exit - Exit Frame Analysis
        Panel: id_PanelA_IFAExit - Exit
Ribbon: Drawing
    Tab: id_TabPlaceViews - Place Views
        Panel: id_PanelD_PlaceViewsCreate - Create
        Panel: id_PanelD_PlaceViewsModify - Modify
        Panel: id_PanelD_Annotate2DSketchCreate - Sketch
        Panel: id_PanelD_PlaceViewsSheets - Sheets
    Tab: id_TabAnnotate - Annotate
        Panel: id_PanelD_AnnotateDimension - Dimension
        Panel: id_PanelD_AnnotateFeatureNotes - Feature Notes
        Panel: id_PanelD_AnnotateText - Text
        Panel: id_PanelD_AnnotateSymbols - Symbols
        Panel: id_PanelD_Annotate2DSketchCreate - Sketch
        Panel: id_PanelD_AnnotateTable - Table
        Panel: id_PanelD_AnnotateFormat - Format
    Tab: id_TabAnnotateESKD - Annotate (ESKD)
        Panel: id_PanelD_ESKDDrawingSheets - Drawing Sheets
        Panel: id_PanelD_ESKDAnnotateDimension - Dimension
        Panel: id_PanelD_ESKDAnnotateFeatureNotes - Feature Notes
        Panel: id_PanelD_ESKDAnnotateText - Text
        Panel: id_PanelD_ESKDAnnotateSymobols - Symbols
        Panel: id_PanelD_ESKD2DSketchCreate - Sketch
        Panel: id_PanelD_ESKDAnnotateTable - Table
        Panel: id_PanelD_ESKDAnnotateFormat - Format
    Tab: id_TabTools - Tools
        Panel: id_PanelD_ToolsMeasure - Measure
        Panel: id_PanelP_ToolsOptions - Options
        Panel: id_PanelP_ToolsClipboard - Clipboard
    Tab: id_TabManage - Manage
        Panel: id_PanelP_ToolsUpdate - Update
        Panel: id_PanelP_ToolsParameters - Parameters
        Panel: id_PanelD_ToolsStylesAndStandards - Styles and Standards
        Panel: id_PanelA_ToolsInsert - Insert
        Panel: id_Panel_ToolsModify - Modify
        Panel: id_PanelD_ToolsDefine - Define
        Panel: iLogic.RibbonPanel - iLogic
        Panel: id_PanelD_ToolsContentCenter - Content Center
        Panel: id_PanelP_ToolsWebTools - Web
    Tab: id_TabView - View
        Panel: id_PanelP_ViewWindow - Windows
        Panel: id_PanelD_ViewNavigate - Navigate
    Tab: id_TabEnvironments - Environments
        Panel: id_Panel_EnvironmentsBegin - Begin
        Panel: id_PanelD_EnvironmentsAddIns - Add-Ins
    Tab: id_TabNailboard - Nailboard
        Panel: id_PanelD_NailboardCreate - Create
        Panel: id_PanelD_NailboardEdit - Edit
        Panel: id_PanelD_NailboardDimension - Dimension
        Panel: id_PanelD_NailboardManage - Manage
    Tab: id_TabVault - Vault
        Panel: id_PanelZ_VaultAccess - Access
        Panel: id_PanelZ_VaultStatus - File Status
    Tab: id_TabVault_Upgrade - Vault
        Panel: id_PanelZ_VaultAccess - Access
        Panel: id_PanelZ_VaultStatusUpgrade - File Status
        Panel: id_PanelZ_VaultControl - Control
    Tab: id_GetStarted - Get Started
        Panel: id_Panel_Launch - Launch
        Panel: id_Panel_GetStartedUI - User Interface Overview
        Panel: id_Panel_GetStartedWhatsNew - New Features
        Panel: id_Panel_LearnAbout - Learn about Inventor
        Panel: id_Panel_GetStartedInvolve - Community
    Tab: id_AddInsTab - Add-Ins
    Tab: id_TabSketch - Sketch
        Panel: id_PanelD_2DSketchDraw - Draw
        Panel: id_PanelD_2DSketchConstrain - Constrain
        Panel: id_PanelD_2DSketchPattern - Pattern
        Panel: id_PanelD_2DSketchModify - Modify
        Panel: id_PanelA_2DSketchInsert - Insert
        Panel: id_PanelD_2DSketchFormat - Format
        Panel: id_PanelD_ToolsMeasure - Measure
    Tab: id_TabSketch_Exit - Exit 2D Sketch
        Panel: id_PanelD_2DSketchExit - Exit
    Tab: id_TabNailboard_Exit - Exit Nailboard Sketch
        Panel: id_PanelD_NailboardExit - Exit
    Tab: id_TabReview - Review
        Panel: id_PanelD_ReviewNavigate - Navigate
        Panel: id_PanelD_ReviewCreate - Create
        Panel: id_PanelD_ReviewMeasure - Measure
        Panel: id_PanelD_ReviewPrint - Print
        Panel: id_PanelD_PlaceViewsSheets - Sheets
    Tab: id_TabNailboard_Review - Exit Review
        Panel: id_PanelD_ReviewExit - Exit
    Tab: id_TabReturn - Return
        Panel: id_PanelD_DrawingReturn - Return
Ribbon: Presentation
    Tab: id_TabManage - Presentation
        Panel: id_PanelPn_PresentationCreate - Create
    Tab: id_TabTools - Tools
        Panel: id_PanelP_ToolsOptions - Options
        Panel: id_PanelP_ToolsClipboard - Clipboard
        Panel: id_PanelPn_ToolsStylesAndStandards - Styles and Standards
        Panel: id_PanelPn_ToolsManage - Insert
        Panel: id_PanelPn_ToolsContentCenter - Content Center
        Panel: id_PanelP_ToolsWebTools - Web
    Tab: id_TabView - View
        Panel: id_PanelA_ViewAppearance - Appearance
        Panel: id_PanelP_ViewWindow - Windows
        Panel: id_PanelC_ViewNavigate - Navigate
    Tab: id_TabEnvironments - Environments
        Panel: id_Panel_EnvironmentsBegin - Begin
        Panel: id_PanelD_EnvironmentsAddIns - Add-Ins
    Tab: id_TabVault - Vault
        Panel: id_PanelZ_VaultAccess - Access
        Panel: id_PanelZ_VaultStatus - File Status
    Tab: id_TabVault_Upgrade - Vault
        Panel: id_PanelZ_VaultAccess - Access
        Panel: id_PanelZ_VaultStatusUpgrade - File Status
        Panel: id_PanelZ_VaultControl - Control
    Tab: id_GetStarted - Get Started
        Panel: id_Panel_Launch - Launch
        Panel: id_Panel_GetStartedUI - User Interface Overview
        Panel: id_Panel_GetStartedWhatsNew - New Features
        Panel: id_Panel_LearnAbout - Learn about Inventor
        Panel: id_Panel_GetStartedInvolve - Community
    Tab: id_AddInsTab - Add-Ins
    Tab: id_TabReturn - Return
        Panel: id_PanelPn_PnReturnPanel - Return
Ribbon: iFeatures
    Tab: id_TabiFeature - iFeature
        Panel: id_PaneliF_iFeaturesIFeature - iFeature
    Tab: id_TabTools - Tools
        Panel: id_PanelP_ToolsOptions - Options
        Panel: id_PanelP_ToolsFind - Find
        Panel: id_PanelPn_ToolsInsert - Insert
        Panel: id_PaneliF_ToolsContentCenter - Content Center
        Panel: id_PanelP_ToolsWebTools - Web
    Tab: id_TabView - View
        Panel: id_PaneliF_ViewAppearance - Appearance
        Panel: id_PanelP_ViewWindow - Windows
        Panel: id_PanelC_ViewNavigate - Navigate
    Tab: id_TabEnvironments - Environments
        Panel: id_Panel_EnvironmentsBegin - Begin
        Panel: id_PanelD_EnvironmentsAddIns - Add-Ins
    Tab: id_TabVault - Vault
        Panel: id_PanelZ_VaultAccess - Access
        Panel: id_PanelZ_VaultStatus - File Status
    Tab: id_TabVault_Upgrade - Vault
        Panel: id_PanelZ_VaultAccess - Access
        Panel: id_PanelZ_VaultStatusUpgrade - File Status
        Panel: id_PanelZ_VaultControl - Control
    Tab: id_GetStarted - Get Started
        Panel: id_Panel_Launch - Launch
        Panel: id_Panel_GetStartedUI - User Interface Overview
        Panel: id_Panel_GetStartedWhatsNew - New Features
        Panel: id_Panel_LearnAbout - Learn about Inventor
        Panel: id_Panel_GetStartedInvolve - Community
    Tab: id_AddInsTab - Add-Ins
Ribbon: UnknownDocument
    Tab: id_TabCustomView - Custom View
        Panel: id_PanelU_CustomViewNavigate - Navigate
        Panel: id_PanelU_CustomViewAppearance - Appearance
        Panel: id_PanelU_CustomViewExit - Exit
    Tab: id_TabEngineersNotebook - Engineer's Notebook
        Panel: id_PanelU_EngineersNotebookNotes - Notes
        Panel: id_PanelU_EngineersNotebookFormat - Format
        Panel: id_PanelU_EngineersNotebookInsert - Insert
        Panel: id_PanelU_NotebookExit - Exit
    Tab: id_TabEngineersNotebookTools - Tools
        Panel: id_PanelP_ToolsOptions - Options
        Panel: id_PanelP_ToolsClipboard - Clipboard
        Panel: id_PanelU_ToolsContentCenter - Content Center
        Panel: id_PanelP_ToolsWebTools - Web
    Tab: id_TabEngineersNotebookView - View
        Panel: id_PanelU_ViewAppearance - Appearance
        Panel: id_PanelP_ViewWindow - Windows
        Panel: id_PanelC_ViewNavigate - Navigate
    Tab: id_TabVault - Vault
        Panel: id_PanelZ_VaultAccess - Access
        Panel: id_PanelZ_VaultStatus - File Status
    Tab: id_TabVault_Upgrade - Vault
        Panel: id_PanelZ_VaultAccess - Access
        Panel: id_PanelZ_VaultStatusUpgrade - File Status
        Panel: id_PanelZ_VaultControl - Control
    Tab: id_GetStarted - Get Started
        Panel: id_Panel_Launch - Launch
        Panel: id_Panel_GetStartedUI - User Interface Overview
        Panel: id_Panel_GetStartedWhatsNew - New Features
        Panel: id_Panel_LearnAbout - Learn about Inventor
        Panel: id_Panel_GetStartedInvolve - Community

Posted by Bert Vanpeteghem 0 reacties

Another .NET AutoCAD blog

Just found this:

http://dwgdotnet.blogspot.com/

Along with this blog, that brings the CAD .NET blogs to a total of 4 :)

Through the interface: http://through-the-interface.typepad.com/
Bobby C. Jones: http://bobbycjones.spaces.live.com/
Cup o Cad .NET: http://cupocadnet.blogspot.com/
Dwg Dot Net: http://dwgdotnet.blogspot.com/

Any suggestions for additions are welcome, of course.

Posted by Bert Vanpeteghem 0 reacties

Using Jigs from Palettes

Facing a problem when trying to combine Jigs and Palettes, I posted a question on the AutoDesk Discussion Forums.

The problem is as followed: I implemented some code from the TTI blog to create polylines with a Jig. (http://through-the-interface.typepad.com/through_the_interface/2006/11/controlling_int_1.html)

It is basically a Jig prompting the user to set points while a line is drawn to show the possible result. This mimics the PLINE functionality, which should be familiar to all of us :).

When doing this from a command, all is good. The line appears nicely when the user is moving his mouse. However, when doing this from a button on a palette, the line drawn by the Jig is not visible, nor are snaps.

I also noticed that when running from a command, the comboboxes in the toolbars lock up, but this does not happen from the palette.

To get around this, Tony Tanzillo posted a nice solution with the AddCommand method in Autodesk.AutoCAD.Internals.Utils. This would work nicely, but this particular project is aimed at AutoCad 2007, where the AddCommand method is not yet present.

So, how can you get around this problem without AddCommand?

There may be many answers, but here is my implementation:

Say there’s a Palette where we want to display the number of Points or Vertices in the Polyline the user has just drawn with the Jig.

image

To display the number of points, we need to have the Polyline that was drawn. So we need to call a method returning the Polyline that was drawn.

Now, the first button is where the problem is. There, I call the Jig directly from the button, and if you’d run the code at the CCN repository, you’d see that the Jig does not really behave as expected.

So, I needed another way. When the Jig is run from a command, the problem is non existent. Bottom line: run a command from the palette, and make sure that the palette receives the result from the command.

We need a command to be run: so that will be the command from the Through The Interface post: MYPOLY. I changed the code a little bit, so that the promt itself is in a separate class.

This simply looks like this:

   1: [CommandMethod("MYPOLY")] 
   2: public void MyPolyJig() 
   3: { 
   4:     new Prompts().PromptNewPolylineByPoints(); 
   5: } 

Second we need a delegate that we can call from the PromptNewPolylineByPoints method, and we need to invoke that delegate from the prompt:



   1: public static Action<Polyline> ActionOnPromptPolyline;

The code stays the same overall, only difference is at the end:



   1: // Added this code, so that a certain action can be called after prompting for polyline
   2: if (ActionOnPromptPolyline != null)
   3: {
   4:     try
   5:     {
   6:         ActionOnPromptPolyline.Invoke(resultingPolyline);
   7:     }
   8:     catch (Exception)
   9:     {
  10:  
  11:         throw;
  12:     }
  13:     finally
  14:     {
  15:         ActionOnPromptPolyline = null;
  16:     }
  17: }



Only thing left to do is setting an action to do when prompting the polyline, and we do this in the buttons Click Event:



   1: private void promptPolylineViaCommand_Click(object sender, EventArgs e)
   2: {
   3:  
   4:     // SendStringToExecute has asynchronous behaviour, so we cannot inspect the result of the
   5:     // command here.
   6:  
   7:     // Set the actionOnPromptPolyline delegate to the desired action and 
   8:     // in the command the action will be executed.
   9:     Prompts.ActionOnPromptPolyline = OnPromptPolyline;
  10:  
  11:     // call command
  12:     Autodesk.AutoCAD.ApplicationServices.Application.
  13:         DocumentManager.MdiActiveDocument.SendStringToExecute("MYPOLY ", true, false, false);
  14:  
  15: }

And, finally, doing the desired logic on the resulting polyline:



   1: private void OnPromptPolyline(Polyline polyline)
   2: {
   3:     if (polyline == null || !polyline.ObjectId.IsValid)
   4:     {
   5:         numberOfPointsTextbox.Text = "No polyline drawn";
   6:         return;
   7:     }
   8:  
   9:     numberOfPointsTextbox.Text = polyline.NumberOfVertices.ToString();
  10:  
  11: }

That’s it, this nicely solved the problem for me. If you have any other solutions, or a different approach, please share :).


Links for the post:


Posted by Bert Vanpeteghem 1 reacties

Migrating AutoCAD COM API applications to AutoCAD 2010

1. Change your CreateObject and GetObject calls from “AutoCAD.Application.17” to “AutoCAD.Application.18”

2. Change the reference “AutoCAD” from “AutoCAD 2009 Type Library” to “AutoCAD 2010 Type Library” (Autodesk.AutoCAD.Interop)

3. Change the reference “AXDBLib” from “AutoCAD/ObjectDBX Common 17.0 Type Library” to “AutoCAD/ObjectDBX Common 18.0 Type Library” (Autodesk.AutoCAD.Interop.Common)

See also:

http://autocad.autodesk.com/?nd=autocad_tips_tutorials_detail&adsk_tip_id=676&jid=2036

 

You will probably have to make some extra changes when reading/saving .dwg’s but I have yet to check those problems.

Posted by Bert Vanpeteghem 2 reacties

Revit API introduction webcast

Note to self: Jeremy Tammik posted a webcast on the Revit API: http://thebuildingcoder.typepad.com/blog/2009/05/revit-api-introduction-webcast.html

Posted by Bert Vanpeteghem 0 reacties

Rarities: another CAD .NET blog

I found another blog (partially) focused on .NET in AutoCAD. I didn’t know that there existed one next to Through The Interface…

So, here it is: http://bobbycjones.spaces.live.com/blog/

And he might just have brought me a solution to a problem I’ve been facing today: He mentiones that when using Database.ReadDwgFile, you ALWAYS need to dispose that.

I’ve been struggling with random AccessViolationException error’s when trying to set Block Properties. This might solve it… Let’s hope so.

Posted by Bert Vanpeteghem 1 reacties

Disable and restore Code Analysis for all projects in a solution

Code Analysis is a Visual Studio tool that can analyze your code and warn you about bad practices and plain bad code.

It can be a very handy tool that can lift your code to a higher level and allows you to simply create better and more maintainable applications.

However, having code analysis enabled, severely slows down your build. Changing a little thing in code causes Code Analysis to run on the next build, which can be plain annoying.

For these reasons I have created a little Visual Studio Add In, which can disable Code Analysis on all projects in the currently opened solution, and can restore the initial settings.

The project home is: http://code.google.com/p/codeanalyzethis/

You can download the source  here: http://code.google.com/p/codeanalyzethis/downloads/list

Or you can check out the source with SVN: svn checkout http://codeanalyzethis.googlecode.com/svn/trunk/

I am not familiar with administering Open Source so I just picked the GNU GPL v3 licence. If anyone has any considerations towards the licence, please let me know.

Posted by Bert Vanpeteghem 0 reacties