|
1 |
| -#### Inventor Command! |
| 1 | +### Inventor Command! |
2 | 2 |
|
3 |
| -A modal, live-search command launcher for Autodesk Inventor. |
| 3 | +A command launcher for Autodesk Inventor. Similar to Quicksilver, Launchy, Spotlight, Alfred, etc. |
| 4 | + |
| 5 | +#### Description |
| 6 | + |
| 7 | +Original idea is that this would be an add-in that will allow inventor users to quickly run ilogic rules from a launcher interface. The user would hit a hotkey (perhaps ```!```) to invoke the launcher, presenting the user with a single text box. As the user starts typing, a filtered list of ilogic rules is displayed below the text box. The user may select an item from this list to activate it. [See this image for reference.](https://hainproject.github.io/hain/images/demo.gif?width=400&height=263) |
| 8 | + |
| 9 | +#### Planned Features |
| 10 | + |
| 11 | +After some discussion on discord, several other uses were proposed. A running list is presented below: |
| 12 | + |
| 13 | +* Allow the activation of: |
| 14 | + |
| 15 | + * in-memory ilogic rules |
| 16 | + * current file ilogic rules? |
| 17 | + * vba macros (public subs w/out parameters) |
| 18 | + * inventor commands (ControlDefinitions) |
| 19 | + |
| 20 | +* Possible manipulation/opening/right-click-menu of |
| 21 | + * Currently open documents |
| 22 | + * In-memory documents |
| 23 | + * referenced documents? |
| 24 | + * ability to restrict filtering by: |
| 25 | + * documents immediately referenced by currently open document |
| 26 | + * all documents referenced by currently open document |
| 27 | + * all currently referenced documents (application-wide) |
| 28 | + * all open documents |
| 29 | + |
| 30 | +* Other thoughts |
| 31 | + * Include fuzzy search? (research options on this) |
| 32 | + * quicksilver has the concept of different "actions" that you can perform on a selection. These actions may differ based on the selection (e.g. a file [open, show, copy, edit permissions, pipe, etc] will present different actions than an application [run, show, uninstall, etc]). |
| 33 | + |
| 34 | +#### Architecture thoughts |
| 35 | + |
| 36 | +* Write in C# as an inventor add-in |
| 37 | +* Develop an object for each type of launchable thing. |
| 38 | +* Class: Launchable |
| 39 | + * Method: Activate |
| 40 | + * Property: Description |
| 41 | + * Property: others as needed |
| 42 | + * Property: Type |
| 43 | + * examples: LaunchableRule, LaunchableCommand, LaunchableDocument, LaunchableMacro |
| 44 | + |
| 45 | +* Interface: Ilaunchable |
| 46 | + * Activate |
| 47 | + * Description |
| 48 | + * Type |
| 49 | + * ??? |
| 50 | + |
| 51 | +* Create indexers that knows how to build a list of each launchable type |
| 52 | + * Method: BuildLaunchabeIndex -> returns list of Ilaunchable, or <T>? |
| 53 | + |
| 54 | +* Build a master searchable index (list of Ilaunchable) that we can filter. |
| 55 | + * When the master index is built, you can filter by Ilaunchable Types to include/remove various launchable types from the list when presenting to the user. Use linq? |
| 56 | + * Set these by was of a configuration screen, or have another quicker way to access this? |
| 57 | + |
| 58 | + |
| 59 | +#### Todo: |
| 60 | + |
| 61 | +Look at how some of the other application launchers are structured for research. |
0 commit comments