Ribbons XML
Format of customized ribbon page .xml files.
XML Overview
The ribbon .xml structure consists of action lists and page tabs. Action lists contain all instances of unique actions that are then referenced when needed in the individual page tabs. They can be placed anywhere in the file as long as they appear outside page tags and before the page that references them. Page tabs contain the remaining groups, action groups, and actions necessary to build the overall ribbon.
Changing Solver Interfaces
When changing solver interfaces, all pages are reloaded into the menu bar and their visibility is filtered based on whether the interface has been included in the visible attribute. More information on using the visible attribute can be found below.
Example
<root>
<actionlist>
<action tag="Ext_HM_Ribbon_Capture_Screen_to_Clipboard" text="To Clipboard" tooltip="Save graphics area to clipboard" image="save_to_clipboard_ribbon.png" command="tcl: ::ExtensionDemoGlobal::CaptureToClipboard"/>
<action tag="Ext_HM_Ribbon_Capture_Screen_to_File" text="To File" tooltip="Save graphics area to PNG file" image="save_to_file_ribbon.png" command="tcl: ::ExtensionDemoGlobal::CaptureToPNGFile"/>
<action tag="Ext_HM_Ribbon_Capture_Window_in_WorkDir" text="Fix Resolution" tooltip="Save fixed resolution in workdir" image="save_to_file_ribbon.png" command="tcl: ::ExtensionDemoGlobal::CaptureWindowToJPEGFileFixedResolution"/>
</actionlist>
<page tag="Ext_Ribbon_HM_Capture_Tools" text="Capture Tools">
<group tag="Ext_Ribbon_HM_Capture_General" text="Capture">
<action actiontag="Ext_HM_Ribbon_Capture_Screen_to_Clipboard"/>
<action actiontag="Ext_HM_Ribbon_Capture_Screen_to_File"/>
<action actiontag="Ext_HM_Ribbon_Capture_Window_in_WorkDir"/>
</group>
</page>
</root>
Tags
root
- Attributes
- translationcontext
- Children
- page, actionlist
page
- Attributes
- tag, text, spotlighttext, tooltip, visible, homepage, helpcommand
- Children
- group
- Example XML
-
<root> <page tag="HMX_Assembly" text="Assembly"> ... </page> <page tag="HMX_Geometry" text="Geometry"> ... </page> <page tag="HMX_Mesh" text="Mesh"> ... </page> </root>
group
- Attributes
- tag, text, spotlighttext, tooltip, visible
- Children
- actiongroup, menu
- Example XML
-
<page tag="HMX_Assembly" text="Assembly"> <group tag="HMX_Organize_G" text="Organize"> ... </group> <group tag="HMX_Parts_G" text="Parts"> ... </group> </page>
actiongroup
- Attributes
- tag, text, spotlighttext, tooltip, visible, type, defaultaction, dropdownsmallicons
- Children
- spriteaction, secondaryribbon
- Example XML
-
<page tag="HMX_Assembly" text="Assembly"> <group tag="HMX_Organize_G" text="Organize"> <actiongroup tag="HMX_Organize_AG" text="Organize"> ... </actiongroup> <actiongroup tag="HMX_Collaborate_AG" text="Collaborate"> ... </actiongroup> <actiongroup tag="HMX_ID_Manager_AG" text="ID Manager"> ... </actiongroup> </group> </page>
actionlist
- Attributes
- None
- Children
- action
action
- Attributes
- Inside actionlist tags: tag, text, tooltip, image, command, picmask, spotlighttext, enabled, linktoe
- Children
- none
- Example XML
-
<root> <actionlist> <action tag="HMX_Collaborate" text="Collaborate" tooltip="Collaboration Tools" image="ribbonCollaborateStrip-80.png" command="tcl: ::hw::OpenDataManager"/> <action tag="HMX_Subscribe" text="Subscribe" tooltip="Subscribe" image="ribbonSatelliteSubscribeStrip-80.png" command="tcl: ::hw::InitSubscribe"/> ... </actionlist> <page tag="HMX_Assembly" text="Assembly"> <group tag="HMX_Organize_G" text="Organize"> ... <actiongroup tag="HMX_Collaborate_AG" text="Collaborate"> <action actiontag="HMX_Collaborate"/> <action actiontag="HMX_Subscribe" assatellite="True"/> </actiongroup> ... </group> </page> </root>
secondaryribbon
- Attributes
- tag, text, spotlighttext, tooltip, visible, command, assatellite, enabled, linkto, picmask, image
- Children
- action
- Example XML
-
<root> <actionlist> <action tag="HMX_Parts" text="Parts" image="ribbonPartsStrip-64.png" command="tcl: ::hm::context::listentityreview::PostEE Part"/> <action tag="HMX_PartsAssems" text="Part Assems" image="ribbonAssembliesStrip-64.png" command="tcl: ::hm::context::listentityreview::PostEE PartAssembly"/> ... </actionlist> <page tag="HMX_Assembly" text="Assembly"> ... <group tag="HMX_Parts_G" text="Parts"> ... <actiongroup tag="HMX_Parts_AG" text="Parts" tooltip=""> <secondaryribbon tag="HMX_Parts_SR" text="Parts" image="ribbonPartsStrip-80.png"> <spriteaction actiontag="HMX_Parts"/> <spriteaction actiontag="HMX_PartAssems"/> </secondaryribbon> </actiongroup> ... </group> ... </page> </root>
menu
- Attributes
- Visible
- Children
- action, separator
separator
- Attributes
- Visible, text, tooltip
- Children
- None
- Example XML
-
<page tag="HMX_Connectors" text="Connectors"> <group tag="HMX_Create_G" text="Create"> ... <menu> <action actiontag="HMX_ConnectorPanels"/> <separator/> <action actiontag="HMX_Absorption"/> <action actiontag="HMX_AutoPitch"/> <action actiontag="HMX_Comparison_1"/> <action actiontag="HMX_Quality"/> <action actiontag="HMX_HoleDetection"/> <separator/> <spriteaction actiontag="HMX_ConnectorOptions"/> </menu> </group> </page>
if
- Attributes
- eval
- Children
- page, group, actiongroup, action, menu, separator
- Operators
- ==, !=, <, > <=, >=, in, ni
- Format
-
eval="expr: $ENVIRONMENT_VARIABLE == VALUE"<br> eval="expr: $HM_UNITS > 1"<br> eval="tcl: ::HM_Framework::SomeProc %T"<br> eval="py: hwf.frwk.test()"
- Example XML
-
<page tag="HMX_Assembly" text="Assembly"> <if eval="expr: $PLATFORM == win64"> <group tag="HMX_Parts_G" text="Parts"> <if eval="tcl: ::HM_Framework::SomeProc %N %T"> <action actiontag="HMX_Assemblies"/> </if> <if eval="py: hwf.frwk.test()"> <action actiontag="HMX_Verification"/> </if> </group> </if> </page>
- Output
- The Parts group will only be displayed if the environment variable platform is set to win64. The Assemblies and Verification actions will only be displayed if the .tcl and Python commands return true.
Attributes
tag
Unique identifier of the tag
text
Text that is displayed to the screen
spotlighttext
Boolean value for adding a blue highlight to the text displayed
tooltip
Tooltop text displayed when hovering the region
visible
Conditional attribute to show/hide any tags contained within it based on the profiles specified
- Format
-
visible="expr: $HMPROFILE in {Nastran, OptiStruct, Exodus}"
- Example XML
-
<page tag="HMX_Analyze" text="Analyze" visible="expr: $HMPROFILE in {Abaqus, Ansys, Exodus}"> <group tag="HMX_Structural_G" text="Structural"> <actiongroup tag="HMX_Loads_AG" text="Loads" visible="expr: $HMPROFILE in {Abaqus}"> <action actiontag="HMX_PressureBack"/> <action actiontag="HMX_Moments"/> <action actiontag="HMX_List_Loads" assatellite="True"/> </actiongroup> <actiongroup tag="HMX_Loads_AG" text="Loads" tooltip=""> <action actiontag="HMX_BaseArc"/> <action actiontag="HMX_Forces"/> </actiongroup> </group> </page>
- Result
- The entire analyze page will only display when the solver interface is set to Abaqus, ANSYS, or EXODUS. The first loads actiongroup inside will only be displayed in Abaqus.
actiontag
Unique identifier for the action tag inside a page which corresponds with the actiontag inside an actionlist.
command
- Supported commands
- Python, TCL, Panel, Context
- Operators
- ==, !=, <, > <=, >=, in, ni
- Format
-
command="py: hwf.frwk.test()"<br> command="tcl: tcl: ::HM_Framework::Unity::PopUpPanel {config edit}"<br> command="panel: {count} {} {}"<br> command="context: Patch"
- Example XML
-
<actionlist> <spriteaction tag="HMX_Open" text="Open" image="ribbonFilesOpenStrip-80.png" command="py: filemenu.OpenFile()"/> <action tag="HMX_Reorder" text="Reorder" command="tcl: ::HM_Framework::Unity::PopUpPanel {reorder}"/> <action tag="HMX_Count" text="Count" command="panel: {count} {} {}"/> <action tag="HMX_Patch" text="Patch" image="ribbonPatchStrip-64.png" command="context: Patch"/> </actionlist>
assatellite
Boolean value that sets the action tag to a satellite image
xoffset
Sets the horizontal offset for satellite actions
Used only when assatellite is active
enabled
Boolean value to disable/enable any action
Disabled actions appear greyed out and have no action when selected
linkto
Links one action to another, based on the tag attribute value, to copy its command when selected
image
Image file for action and secondaryribbon tags
picmask
Image used to define the selection region for an action
type
- Example XML
-
<page tag="HMX_OptiStructModel" text="Model" visible="expr: $HMPROFILE in {OptiStruct}"> <group tag="HMX_Setup_G" text="Setup"> ... <actiongroup tag="HMX_Masses_AG" text="Masses" image="ribbonConcentratedMassesStrip-80.png" type="menu" defaultaction="HMX_Point_Mass_1" dropdownsmallicons="true"> <action actiontag="HMX_Point_Mass_1"/> <action actiontag="HMX_NSM_1"/> <action actiontag="HMX_Rigid_Mass_1"/> <action actiontag="HMX_FE_Absorb_1"/> <action actiontag="HMX_Review_Masses_1" assatellite="True"/> </actiongroup> ... </group> ... </page>
defaultaction
Sets the default action to be selected in an actiongroup drop-down menu based on the actiontag attribute
dropdownsmallicons
Boolean value to enable small action icons next to the action text in an actiongroup down menu
eval
Conditional attribute used with the if tag to show/hide all tags contained within it based on environment variables
homepage
Boolean value that sets the page tag to be a home group
This group will remain visible at the beginning of every page
helpcommand
Support for page level help command with F1
In idle context it will execute this command instead of default help
Follows the same format as the command attribute
Mesh Page Example
<root>
<actionlist>
<action tag="HMX_criteria" text="criteria" tooltip="Open the Criteria Editor"
image="ribbonMeshParametersCriteriaCriteriaStrip-80.png"
command="tcl: ::hwt::Source CriteriaEditor.tcl;
::CriteriaEditor::OpenDialogWithArgs
-open_mode hm -show_mode crit_both"/>
<action tag="HMX_Parameters" text="Parameters" tooltip="Review Parameters"
command="tcl: ::hm::context::listentityreview::OnSatelliteButtonClick parameters"/>
<action tag="HMX_Mesh" text="Mesh Controls" tooltip="Mesh Controls"
image="ribbonMeshControlsStrip-80.png"
command="tcl: ::hm::br::PostBrowser meshcontrols"/>
<action tag="HMX_LineMesh" text="Line Mesh" tooltip="Create 1D Element Mesh"
image="hwd1DMeshing-80.png" command="panel: {line mesh} {} {}"/>
<action tag="HMX_BatchMesher" text="BatchMesher" tooltip="Altair
BatchMesher" image="ribbonSurfaceMeshBatchStrip-80.png"
command="context: 2DMCSBatchMesher" spotlighttext="True"/>
<action tag="HMX_CFD_2D_Mesh" text="CFD 2D Mesh" tooltip="Generate 2D CFD Meshes"
image="ribbonSurfaceMeshCFDStrip-80.png" command="context: 2DMCSCfd"
spotlighttext="True"/>
<action tag="HMX_Selection_General" text="Create" enabled="True"
tooltip="Mesh Surfaces" image="ribbonMeshSelectionStrip-64.png"
command="context: 2DMCSGeneral" spotlighttext="True"/>
<action tag="HMX_Density_General" text="Density" enabled="False"
tooltip="Edit Edge Density Values" image="ribbonMeshDensityStrip-64.png"
command="context: 2DMCEEDensity_General" spotlighttext="True"/>
<action tag="HMX_Biasing_General" text="Biasing" enabled="False"
tooltip="Edit Edge Biasing Values" image="ribbonMeshBiasStrip-64.png"
command="context: 2DMCEEBiasing_General" spotlighttext="True"/>
<action tag="HMX_FaceEdit_General" text="Face Edit" enabled="False"
tooltip="Edit Surface Mesh Properties" image="ribbonMeshTypeStrip-64.png"
command="context: 2DMCFaceEdit_General" spotlighttext="True"/>
<action tag="HMX_Selection_Panel" text="Create" enabled="True"
tooltip="Mesh Surfaces" image="ribbonMeshSelectionStrip-64.png"
command="context: 2DMCSPanelMesh" spotlighttext="True"/>
<action tag="HMX_Density_Panel" text="Density" enabled="False"
tooltip="Edit Edge Density Values" image="ribbonMeshDensityStrip-64.png"
command="context: 2DMCEEDensity_Panel" spotlighttext="True"/>
<action tag="HMX_Biasing_Panel" text="Biasing" enabled="False"
tooltip="Edit Edge Biasing Values" image="ribbonMeshBiasStrip-64.png"
command="context: 2DMCEEBiasing_Panel" spotlighttext="True"/>
<action tag="HMX_FaceEdit_Panel" text="Face Edit" enabled="False"
tooltip="Edit Surface Mesh Properties" image="ribbonMeshTypeStrip-64.png"
command="context: 2DMCFaceEdit_Panel" spotlighttext="True"/>
<action tag="HMX_Rigid_Body_Mesh" text="Rigid Body Mesh"
tooltip="Generate 2D Rigid Body Meshes"
image="ribbonSurfaceMeshRigidBodyStrip-80.png"
command="context: 2DMCSRigidBody" spotlighttext="True"/>
<action tag="HMX_Create" text="Automatic" tooltip="Create Midmesh"
image="ribbonMidmeshCreateStrip-64.png" command="context: 2DMidmeshCreate"
spotlighttext="True"/>
<action tag="HMX_Repair" text="Repair/Fill" tooltip="Repair/Fill"
image="ribbonMidmeshRepairStrip-64.png" command="context: 2DMidmeshRepair"
spotlighttext="True"/>
<action tag="HMX_CreateMidedge" text="Create Midedge"
tooltip="Create Midedge" image="ribbonMidmeshMidedgeStrip-64.png"
command="context: 2DMidmeshCreateMidedge" spotlighttext="True"/>
<action tag="HMX_EditTopology" text="Edit Topology"
tooltip="Edit Midmesh Topology" image="ribbonMidmeshEditStrip-64.png"
command="context: 2DMidmeshEditTopology" spotlighttext="True"/>
<action tag="HMX_Align" text="Align" tooltip="Align Midmesh"
image="ribbonMidmeshAlignStrip-64.png"
command="context: 2DMidmeshAlign" spotlighttext="True"/>
<action tag="HMX_Create_1" text="Create" tooltip="Create Feature Edges"
image="ribbonFeatureEdgesCreateStrip-64.png"
command="context: FeatureEdgesCreate" spotlighttext="True"/>
<action tag="HMX_Edit" text="Edit" tooltip="Edit Feature Edges"
image="ribbonFeatureEdgesEditStrip-64.png"
command="context: FeatureEdgesEdit" spotlighttext="True"/>
<action tag="HMX_Rebuild" text="Rebuild" tooltip="Rebuild Mesh"
image="ribbonMeshRebuildStrip-80.png"
command="context: 2DMeshRebuild" spotlighttext="True"/>
<action tag="HMX_AdaptiveWrap" text="Adaptive Wrap"
tooltip="Adaptive Wrap" command="tcl: ::hwt::Source AdaptiveWrap.tcl"/>
<action tag="HMX_EMLattice" text="EM Lattice" tooltip="EM Lattice"
command="tcl: ::hwt::Source VoxelLattice.tcl"/>
<action tag="HMX_ShrinkWrap" text="Shrink Wrap" tooltip="Shrink Wrap"
command="tcl: ::HM_Framework::Unity::PopUpPanel {shrink wrap}"/>
<action tag="HMX_Create_2" text="Create" tooltip="Create Tetra Meshes"
image="ribbonSolidMeshTetraCreateStrip-64.png"
command="context: 3DTetrameshCreate" spotlighttext="True"/>
<action tag="HMX_Remesh" text="Remesh" tooltip="Remesh Tetra Meshes"
image="ribbonSolidMeshTetraRemeshStrip-64.png"
command="context: 3DTetrameshRemesh" spotlighttext="True"/>
<action tag="HMX_Hex" text="Hex" tooltip="Hex Mesh"
image="ribbonSolidMeshHexStrip-80.png"
command="panel: {solid map} {multi solids} {}"/>
<action tag="HMX_Create_3" text="Create" tooltip="Create Voxel Meshes"
image="ribbonVoxelCreateStrip-64.png"
command="context: 3DVoxelMeshCreate" spotlighttext="True"/>
<action tag="HMX_Edit_1" text="+/-" tooltip="Edit Voxel Meshes"
image="ribbonVoxelEditStrip-64.png" command="context: 3DVoxelMeshEdit"
spotlighttext="True"/>
<action tag="HMX_AcousticCavity" text="Acoustic Cavity" tooltip="Acoustic Cavity"
command="tcl: ::hwt::Source ACM/hmAcousticMeshGUI.tcl;
::hmAcousticMeshGui::PostAcousticMesh;"/>
<action tag="HMX_Morph_Freehand_Nodes" text="Morph Mesh"
tooltip="Morph Meshes by Moving Nodes or Mapping to Geometry"
image="ribbonMorphingMeshStrip-80.png"
command="context: MorphFreehandNodes" spotlighttext="True"/>
<action tag="HMX_Morph_Shapes" text="Morph Shapes"
tooltip="Create, Edit, and Apply Shapes" image="ribbonMorphShapesMainStrip-80.png"
command="context: MorphShapes"/>
<action tag="HMX_Morph_Shapes_List" text="Morph Shapes List"
tooltip="Create Shapes" image="ribbonMorphShapesSaveNewStrip-80.png"
command="tcl: ::hm::context::shapetable::CreateEntity"/>
<action tag="HMX_Morph_Shapes_Record" text="Morph Shapes Record"
tooltip="Record Node Movements" image="ribbonMorphShapesRecordStrip-80.png"
command="tcl: ::hm::context::shapetable::MorphRecord 0"/>
<actionlist>
<page tag="HMX_Mesh" text="Mesh" spotlighttext="True">
<group tag="HMX_Controls_G" text="Controls">
<actiongroup tag="HMX_Param_Criteria_AG" text="Param/Criteria" tooltip="">
<action actiontag="HMX_criteria"/>
<action actiontag="HMX_param"/>
</actiongroup>
<actiongroup tag="HMX_Mesh_AG" text="Mesh Controls">
<action actiontag="HMX_Mesh"/>
</actiongroup>
</group>
<group tag="HMX_1D_Mesh_G" text="1D Mesh">
<actiongroup tag="HMX_LineMesh_AG" text="Line Mesh">
<action actiontag="HMX_LineMesh"/>
</actiongroup>
</group>
<group tag="HMX_2D_Mesh_G" text="2D Mesh">
<actiongroup tag="HMX_SurfaceMesh_AG" text="Surface Mesh" tooltip="" type="menu"
dropdownsmallicons="true" defaultaction="HMX_General_2D_Mesh_SR"
image="ribbonSurfaceMeshGeneralStrip-80.png" spotlighttext="True">
<action actiontag="HMX_BatchMesher"/>
<action actiontag="HMX_CFD_2D_Mesh"/>
<secondaryribbon tag="HMX_General_2D_Mesh_SR" text="General 2D Mesh"
defaultaction="HMX_Selection_General" tooltip="Generate 2D Meshes"
image="ribbonSurfaceMeshGeneralStrip-80.png" spotlighttext="True">
<action actiontag="HMX_Selection_General"/>
<action actiontag="HMX_Density_General"/>
<action actiontag="HMX_Biasing_General"/>
<action actiontag="HMX_FaceEdit_General"/>
</secondaryribbon>
<secondaryribbon tag="HMX_Panel_Mesh_SR" text="Panel Mesh"
defaultaction="HMX_Selection_Panel" tooltip="Generate 2D mapped meshes"
image="ribbonSurfaceMeshPanelStrip-80.png" spotlighttext="True">
<action actiontag="HMX_Selection_Panel"/>
<action actiontag="HMX_Density_Panel"/>
<action actiontag="HMX_Biasing_Panel"/>
<action actiontag="HMX_FaceEdit_Panel"/>
</secondaryribbon>
<action actiontag="HMX_Rigid_Body_Mesh"/>
</actiongroup>
<secondaryribbon tag="HMX_Midmesh_SR" text="Midmesh" tooltip="Create Edit Midmesh"
image="ribbonMidsurfaceMidmeshStrip-80.png" defaultaction="HMX_Create"
spotlighttext="True">
<action actiontag="HMX_Create"/>
<action actiontag="HMX_Repair"/>
<action actiontag="HMX_CreateMidedge"/>
<action actiontag="HMX_EditTopology"/>
<action actiontag="HMX_Align"/>
</secondaryribbon>
<secondaryribbon tag="HMX_FeatureEdges_SR" text="Feature Edges"
tooltip="Create and Edit Mesh Feature Edges"
image="ribbonFeatureEdgesStrip-80.png"
defaultaction="HMX_Create_1" spotlighttext="True">
<action actiontag="HMX_Create_1"/>
<action actiontag="HMX_Edit"/>
</secondaryribbon>
<actiongroup tag="HMX_Rebuild_AG" text="Rebuild" spotlighttext="True">
<action actiontag="HMX_Rebuild"/>
</actiongroup>
<menu>
<action actiontag="HMX_AdaptiveWrap"/>
<action actiontag="HMX_EMLattice"/>
<action actiontag="HMX_ShrinkWrap"/>
</menu>
</group>
<group tag="HMX_3D_Mesh_G" text="3D Mesh">
<secondaryribbon tag="HMX_Tetra_SR" text="Tetra" tooltip="Create Edit Tetra Meshes"
image="ribbonSolidMeshTetraStrip-80.png" defaultaction="HMX_Create_2"
spotlighttext="True">
<action actiontag="HMX_Create_2"/>
<action actiontag="HMX_Remesh"/>
</secondaryribbon>
<actiongroup tag="HMX_Hex_AG" text="Hex">
<action actiontag="HMX_Hex"/>
</actiongroup>
<secondaryribbon tag="HMX_Voxel_SR" text="Voxel" tooltip="Create Edit Voxel Meshes"
image="ribbonVoxelStrip-80.png" defaultaction="HMX_Create_3"
spotlighttext="True">
<action actiontag="HMX_Create_3"/>
<action actiontag="HMX_Edit_1"/>
</secondaryribbon>
<menu>
<action actiontag="HMX_AcousticCavity"/>
</menu>
</group>
<group tag="HMX_Morph_G" text="Morph">
<actiongroup tag="HMX_Morph_Freehand_Nodes_AG" text="Morph Mesh"
spotlighttext="True">
<action actiontag="HMX_Morph_Freehand_Nodes"/>
</actiongroup>
<actiongroup tag="HMX_Morph_Shapes_AG" text="Shapes"
tooltip="Create, Edit, and Apply Shapes"
spotlighttext="True">
<action actiontag="HMX_Morph_Shapes"/>
<action actiontag="HMX_Morph_Shapes_List" assatellite="True"/>
<action actiontag="HMX_Morph_Shapes_Record" assatellite="True"/>
</actiongroup>
</group>
</page>
</root>