################################### # You will need to fill in the BLOCK CAPITALS # # Made by Jamie Green # ################################### import maya.cmds as cmds import os # Function to reference the file into Maya def reference_file(file_path, namespace): try: print(f"Referencing file: {file_path} with namespace: {namespace}") cmds.file(file_path, reference=True, namespace=namespace) print("File referenced successfully.") except Exception as e: cmds.warning(f"Error reading file: {file_path} - {e}") # Function to create the UI def create_ui(): window_name = "referenceWindow" if cmds.window(window_name, exists=True): cmds.deleteUI(window_name) window = cmds.window(window_name, title="Easy Reference Tool", widthHeight=(800, 500)) main_layout = cmds.formLayout(parent=window) # Create individual columns with buttons column_width = 200 sep_width = 2 title_height = 30 title_font_size = 1.5 def create_column(parent, label, buttons): col = cmds.columnLayout(parent=parent, adjustableColumn=True) cmds.text(label=label, height=int(title_height * title_font_size), font='boldLabelFont', align='center') for btn_label, btn_cmd, *btn_args in buttons: if btn_label == "CHARACTER1" or btn_label == "CHARACTER2" or btn_label == "CHARACTER3" or btn_label == "CHARACTER4" or btn_label == "CHARACTER5" or btn_label == "CHARACTER6": cmds.separator(height=10, style='none') # Add a small gap before buttons if btn_args: # If button color is specified cmds.button(label=btn_label, command=btn_cmd, backgroundColor=btn_args[0]) else: cmds.button(label=btn_label, command=btn_cmd) return col # Buttons for each column env_buttons = [ ("ENV_BUTTON1", lambda *args: reference_file(r"ENV_BUTTON1.fbx", "ENV_BUTTON1_NAMESPACE")), ("ENV_BUTTON2", lambda *args: reference_file(r"ENV_BUTTON2.fbx", "ENV_BUTTON2_NAMESPACE")), ("ENV_BUTTON3", lambda *args: reference_file(r"ENV_BUTTON3.fbx", "ENV_BUTTON3_NAMESPACE")), ("ENV_BUTTON4", lambda *args: reference_file(r"ENV_BUTTON4.fbx", "ENV_BUTTON4_NAMESPACE")), ("ENV_BUTTON5", lambda *args: reference_file(r"ENV_BUTTON5.fbx", "ENV_BUTTON5_NAMESPACE")), ("ENV_BUTTON6", lambda *args: reference_file(r"ENV_BUTTON6.fbx", "ENV_BUTTON6_NAMESPACE")), ("ENV_BUTTON7", lambda *args: reference_file(r"ENV_BUTTON7.fbx", "ENV_BUTTON7_NAMESPACE")), ("ENV_BUTTON8", lambda *args: reference_file(r"ENV_BUTTON8.fbx", "ENV_BUTTON8_NAMESPACE")), ("ENV_BUTTON9", lambda *args: reference_file(r"ENV_BUTTON9.fbx", "ENV_BUTTON9_NAMESPACE")), ("ENV_BUTTON10", lambda *args: reference_file(r"ENV_BUTTON10.fbx", "ENV_BUTTON10_NAMESPACE")), ("ENV_BUTTON11", lambda *args: reference_file(r"ENV_BUTTON10.fbx", "ENV_BUTTON10_NAMESPACE")), ("ENV_BUTTON12", lambda *args: reference_file(r"ENV_BUTTON10.fbx", "ENV_BUTTON10_NAMESPACE")), ("ENV_BUTTON13", lambda *args: reference_file(r"ENV_BUTTON10.fbx", "ENV_BUTTON10_NAMESPACE")), ("ENV_BUTTON14", lambda *args: reference_file(r"ENV_BUTTON10.fbx", "ENV_BUTTON10_NAMESPACE")), ("ENV_BUTTON15", lambda *args: reference_file(r"ENV_BUTTON10.fbx", "ENV_BUTTON10_NAMESPACE")), ("ENV_BUTTON16", lambda *args: reference_file(r"ENV_BUTTON10.fbx", "ENV_BUTTON10_NAMESPACE")), ("ENV_BUTTON17", lambda *args: reference_file(r"ENV_BUTTON10.fbx", "ENV_BUTTON10_NAMESPACE")), ("ENV_BUTTON18", lambda *args: reference_file(r"ENV_BUTTON10.fbx", "ENV_BUTTON10_NAMESPACE")), ("ENV_BUTTON19", lambda *args: reference_file(r"ENV_BUTTON10.fbx", "ENV_BUTTON10_NAMESPACE")), ("ENV_BUTTON20", lambda *args: reference_file(r"ENV_BUTTON10.fbx", "ENV_BUTTON10_NAMESPACE")), # Add other buttons similarly ] char_buttons = [ ("CHAR_BUTTON1", lambda *args: reference_file(r"CHAR_BUTTON1.fbx", "CHAT_BUTTON1_NAMESPACE")), ("CHAR_BUTTON2", lambda *args: reference_file(r"CHAR_BUTTON2.fbx", "CHAT_BUTTON2_NAMESPACE")), ("CHAR_BUTTON3", lambda *args: reference_file(r"CHAR_BUTTON3.fbx", "CHAT_BUTTON3_NAMESPACE")), ("CHAR_BUTTON4", lambda *args: reference_file(r"CHAR_BUTTON4.fbx", "CHAT_BUTTON4_NAMESPACE")), ("CHAR_BUTTON5", lambda *args: reference_file(r"CHAR_BUTTON5.fbx", "CHAT_BUTTON5_NAMESPACE")), ("CHARACTER5", lambda *args: reference_file(r"CHARACTER5.fbx", "CHARACTER5_NAMESPACE")), ("CHAR_BUTTON6", lambda *args: reference_file(r"CHAR_BUTTON6.fbx", "CHAT_BUTTON6_NAMESPACE")), ("CHARACTER1", lambda *args: reference_file(r"CHARACTER1.fbx", "NAMESPACE")), ("CHAR_BUTTON7", lambda *args: reference_file(r"CHAR_BUTTON7.fbx", "CHAT_BUTTON7_NAMESPACE")), ("CHAR_BUTTON8", lambda *args: reference_file(r"CHAR_BUTTON8.fbx", "CHAT_BUTTON8_NAMESPACE")), ("CHARACTER6", lambda *args: reference_file(r"CHARACTER6.fbx", "CHARACTER6_NAMESPACE")), ("CHAR_BUTTON9", lambda *args: reference_file(r"CHAR_BUTTON9.fbx", "CHAT_BUTTON9_NAMESPACE")), ("CHAR_BUTTON10", lambda *args: reference_file(r"CHAR_BUTTON10.fbx", "CHAT_BUTTON10_NAMESPACE")), ("CHAR_BUTTON11", lambda *args: reference_file(r"CHAR_BUTTON11.fbx", "CHAT_BUTTON11_NAMESPACE")), ("CHAR_BUTTON12", lambda *args: reference_file(r"CHAR_BUTTON12.fbx", "CHAT_BUTTON12_NAMESPACE")), ("CHARACTER4", lambda *args: reference_file(r"CHARACTER4.fbx", "CHARACTER4_NAMESPACE")), ("CHAR_BUTTON13", lambda *args: reference_file(r"CHAR_BUTTON13.fbx", "CHAT_BUTTON13_NAMESPACE")), ("CHAR_BUTTON14", lambda *args: reference_file(r"CHAR_BUTTON14.fbx", "CHAT_BUTTON14_NAMESPACE")), ("CHAR_BUTTON15", lambda *args: reference_file(r"CHAR_BUTTON15.fbx", "CHAT_BUTTON15_NAMESPACE")), ("CHAR_BUTTON16", lambda *args: reference_file(r"CHAR_BUTTON16.fbx", "CHAT_BUTTON16_NAMESPACE")), ("CHAR_BUTTON17", lambda *args: reference_file(r"CHAR_BUTTON17.fbx", "CHAT_BUTTON17_NAMESPACE")), ("CHAR_BUTTON18", lambda *args: reference_file(r"CHAR_BUTTON18.fbx", "CHAT_BUTTON18_NAMESPACE")), ("CHAR_BUTTON19", lambda *args: reference_file(r"CHAR_BUTTON19.fbx", "CHAT_BUTTON19_NAMESPACE")), ("CHAR_BUTTON20", lambda *args: reference_file(r"CHAR_BUTTON20.fbx", "CHAT_BUTTON20_NAMESPACE")), ("CHARACTER3", lambda *args: reference_file(r"CHARACTER3.fbx", "CHARACTER3_NAMESPACE")), ("CHAR_BUTTON21", lambda *args: reference_file(r"CHAR_BUTTON21.fbx", "CHAT_BUTTON21_NAMESPACE")), ("CHAR_BUTTON22", lambda *args: reference_file(r"CHAR_BUTTON22.fbx", "CHAT_BUTTON22_NAMESPACE")), ("CHAR_BUTTON23", lambda *args: reference_file(r"CHAR_BUTTON23.fbx", "CHAT_BUTTON23_NAMESPACE")), ("CHARACTER2", lambda *args: reference_file(r"CHARACTER2.fbx", "CHARACTER2_NAMESPACE")), ("CHAR_BUTTON24", lambda *args: reference_file(r"CHAR_BUTTON24.fbx", "CHAT_BUTTON24_NAMESPACE")), ("CHAR_BUTTON25", lambda *args: reference_file(r"CHAR_BUTTON25.fbx", "CHAT_BUTTON25_NAMESPACE")), # Add other buttons similarly ] prop_buttons = [ ("PROP_BUTTON1", lambda *args: reference_file(r"PROP_BUTTON1.fbx", "PROP_BUTTON1_NAMESPACE")), ("PROP_BUTTON2", lambda *args: reference_file(r"PROP_BUTTON2.fbx", "PROP_BUTTON2_NAMESPACE")), ("PROP_BUTTON3", lambda *args: reference_file(r"PROP_BUTTON3.fbx", "PROP_BUTTON3_NAMESPACE")), ("PROP_BUTTON4", lambda *args: reference_file(r"PROP_BUTTON4.fbx", "PROP_BUTTON4_NAMESPACE")), ("PROP_BUTTON5", lambda *args: reference_file(r"PROP_BUTTON5.fbx", "PROP_BUTTON5_NAMESPACE")), ("PROP_BUTTON6", lambda *args: reference_file(r"PROP_BUTTON6.fbx", "PROP_BUTTON6_NAMESPACE")), ("PROP_BUTTON7", lambda *args: reference_file(r"PROP_BUTTON7.fbx", "PROP_BUTTON7_NAMESPACE")), ("PROP_BUTTON8", lambda *args: reference_file(r"PROP_BUTTON8.fbx", "PROP_BUTTON8_NAMESPACE")), ("PROP_BUTTON9", lambda *args: reference_file(r"PROP_BUTTON9.fbx", "PROP_BUTTON9_NAMESPACE")), ("PROP_BUTTON10", lambda *args: reference_file(r"PROP_BUTTON10.fbx", "PROP_BUTTON10_NAMESPACE")), ("PROP_BUTTON11", lambda *args: reference_file(r"PROP_BUTTON11.fbx", "PROP_BUTTON11_NAMESPACE")), ("PROP_BUTTON12", lambda *args: reference_file(r"PROP_BUTTON12.fbx", "PROP_BUTTON12_NAMESPACE")), ("PROP_BUTTON13", lambda *args: reference_file(r"PROP_BUTTON13.fbx", "PROP_BUTTON13_NAMESPACE")), ("PROP_BUTTON14", lambda *args: reference_file(r"PROP_BUTTON14.fbx", "PROP_BUTTON14_NAMESPACE")), ("PROP_BUTTON15", lambda *args: reference_file(r"PROP_BUTTON15.fbx", "PROP_BUTTON15_NAMESPACE")), ("PROP_BUTTON16", lambda *args: reference_file(r"PROP_BUTTON16.fbx", "PROP_BUTTON16_NAMESPACE")), ("PROP_BUTTON17", lambda *args: reference_file(r"PROP_BUTTON17.fbx", "PROP_BUTTON17_NAMESPACE")), ("PROP_BUTTON18", lambda *args: reference_file(r"PROP_BUTTON18.fbx", "PROP_BUTTON18_NAMESPACE")), ("PROP_BUTTON19", lambda *args: reference_file(r"PROP_BUTTON19.fbx", "PROP_BUTTON19_NAMESPACE")), ("PROP_BUTTON20", lambda *args: reference_file(r"PROP_BUTTON20.fbx", "PROP_BUTTON20_NAMESPACE")), ("PROP_BUTTON21", lambda *args: reference_file(r"PROP_BUTTON21.fbx", "PROP_BUTTON21_NAMESPACE")), ("PROP_BUTTON22", lambda *args: reference_file(r"PROP_BUTTON22.fbx", "PROP_BUTTON22_NAMESPACE")), ("PROP_BUTTON23", lambda *args: reference_file(r"PROP_BUTTON23.fbx", "PROP_BUTTON23_NAMESPACE")), # Add other buttons similarly ] other_buttons = [ ("OTHERBUTTON1", lambda *args: reference_file(r"OTHERBUTTON1.fbx", "OTHERBUTTON1_NAMESPACE")), ("Open Reference Editor", lambda *args: cmds.ReferenceEditor(), (0.25, 0.25, 0.25)), # Green button opening Reference Editor # Add other buttons similarly ] # Create columns and separators env_col = create_column(main_layout, "Environment", env_buttons) sep1 = cmds.separator(parent=main_layout, style='in', width=sep_width) char_col = create_column(main_layout, "Characters", char_buttons) sep2 = cmds.separator(parent=main_layout, style='in', width=sep_width) prop_col = create_column(main_layout, "Props", prop_buttons) sep3 = cmds.separator(parent=main_layout, style='in', width=sep_width) other_col = create_column(main_layout, "Other", other_buttons) # Attach columns and separators to the form layout cmds.formLayout(main_layout, edit=True, attachForm=[ (env_col, 'top', 5), (env_col, 'left', 5), (sep1, 'top', 5), (char_col, 'top', 5), (sep2, 'top', 5), (prop_col, 'top', 5), (sep3, 'top', 5), (other_col, 'top', 5), (other_col, 'right', 5) ], attachControl=[ (sep1, 'left', 0, env_col), (char_col, 'left', 0, sep1), (sep2, 'left', 0, char_col), (prop_col, 'left', 0, sep2), (sep3, 'left', 0, prop_col), (other_col, 'left', 0, sep3) ], attachPosition=[ (env_col, 'right', 0, 24), (sep1, 'right', 0, 25), (char_col, 'right', 0, 49), (sep2, 'right', 0, 50), (prop_col, 'right', 0, 74), (sep3, 'right', 0, 75), (other_col, 'right', 0, 100) ]) cmds.showWindow(window) create_ui()