VCOG0001
OmniGraffle: Floor Plan Stencil
Using Omni Automation Voice Commands to import and arrange elements from the Floor Plan stencil set for OmniGraffle.
Scope
Language: English (United States πΊπΈ Β· Great Britain π¬π§ Β· Australia π¦πΊ Β· Canada π¨π¦)
Scope: OmniGraffle
Requirements
- OmniGraffle: 7.21.4 (macOS)
- System: macOS 12
Download & Reference Links
- ⇩ COMMANDS-FILE (OmniGraffle 7) (macOS)
- Installation instructions for importing the commands file.
- Voice Control on macOS (Apple documentation)
Designing a Reading Room |
Using Voice Control to design a reading room. |
|
Designing a Bedroom with Ensuite |
Using Voice Control to design a bedroom with connected bathroom. |
|
First-Run of Voice Commands
NOTE: (below) The first time a command is activated, a script security dialog will be presented for you to review the script. Once you have scrolled the script 01 , approved its further use without prompting 02 , and run the script 03 , subsequent activations will execute automatically without prompting.
Command Categories (T)
Links to the various command categories:
Shared Commands
Commands that can be used with selected elements.
- “Toggle Lock”
- “Lock This”
- “Lock These”
- “Unlock This”
- “Unlock These”
- “Duplicate This”
- “Duplicate These”
- “Group These”
- “Ungroup [This]”
- “Rotate Right” (90Β°)
- “Rotate Left” (-90Β°)
- “Half Rotate Left” (-45Β°)
- “Half Rotate Counter Clockwise” (-45Β°)
- “Half Rotate Right” (45Β°)
- “Half Rotate Clockwise” (45Β°)
- “Flip This” (180Β°)
- “Flip Vertical”
- “Flip Vertically”
- “Flip Horizontal”
- “Flip Horizontally”
- “Unite [these] Shapes”
- “Duplicate [these] as [a] United Shape”
- “Subtract [these] Shapes”
- “Duplicate [these] as [a] Subtracted Shape”
- “Intersect [these] Shapes”
- “Duplicate [these] as [an] Intersected Shape”
Rooms, Walls, and Stairs
Commands that can be used to define spaces:
- “Add 4 by 6 Room”
- “Add 5 by 7 Room”
- “Add 8 by 10 Room”
- “Add 10 by 10 Room”
- “Add 10 by 12 Room”
- “Add 11 by 12 Room”
- “Add 14 by 12 Room”
- “Add 14 by 16 Room”
- “Add 16 by 20 Room”
- “Add Single-Floor Apartment”
- “Add 1-Foot Wall”
- “Add 2-Foot Wall”
- “Add 3-Foot Wall”
- “Add 4-Foot Wall”
- “Add 5-Foot Wall”
- “Add 6-Foot Wall”
- “Add 7-Foot Wall”
- “Add 8-Foot Wall”
- “Add 9-Foot Wall”
- “Add 10-Foot Wall”
- “Add 2-Sided Wall”
- “Add 3-Sided Wall”
- “Add 4-Sided Wall”
- “Add Stairs [Going] Up”
- “Add Upward Stairs”
- “Add Stairs [Going] Down”
- “Add Downward Stairs”
Heat and Electrical
Commands for adding utility elements to the current canvas at {0, 0}:
Command phrase variations (words in [brackets] are optional):
- “Add Fireplace”
- “Add [Heat] Radiator”
- “Add [Forced] Air Vent”
- “Add [Electrical] Outlet Symbol”
- “Add [Electrical] Outlet”
- “Add [Light] Switch Symbol”
- “Add [Light] Switch”
Windows
Commands for adding window elements to the current canvas at {0, 0}:
Command phrase variations (words in [brackets] are optional):
- “Add Bay Window”
- “Add Window Nook”
- “Add 36 Inch Window”
- “Add 48 Inch Window”
- “Add 60 Inch Window”
- “Add 72 Inch Window”
- “Add 84 Inch Window”
- “Add [60 Inch] Window with Shutters Closed”
- “Add [60 Inch] Window with Shutters Open”
Doors
Commands for adding door elements to the current canvas at {0, 0}:
Command phrase variations (words in [brackets] are optional):
- “Add 30 Inch Door”
- “Add 36 Inch Door”
- “Add [36 Inch] Door with Card Reader”
- “Add [72 Inch] Double Doors”
- “Add [60 Inch] Sliding Doors”
- “Add [24 Inch] Bi-Fold Doors”
- “Add [8 Foot] Garage Door”
- “Add 9 Foot Garage Door”
Chairs
Commands for adding chair elements to the current canvas at {0, 0}:
Command phrase variations (words in [brackets] are optional):
- “Add Stool”
- “Add [Small] Chair”
- “Add Large Chair”
- “Add Square Chair”
- “Add [Small] Desk Chair”
- “Add [Small] Office Chair”
- “Add Large Desk Chair”
- “Add Large Office Chair”
- “Add Waiting Room Chair”
- “Add Lounge Chair”
- “Add [Small] Padded Chair”
- “Add [Small] Upholstered Chair”
- “Add Large Padded Chair”
- “Add Large Upholstered Chair”
Sofas
Commands for adding sofa elements to the current canvas at {0, 0}:
Command phrase variations (words in [brackets] are optional):
- “Add Small Sofa”
- “Add Medium Sofa”
- “Add Large Sofa”
- “Add Lounge Sofa”
- “Add Loveseat”
- “Add Ottoman”
Sectionals/Modular Sofa
Commands for adding sectional and modular sofa elements to the current canvas at {0, 0}:
Command phrase variations (words in [brackets] are optional):
- “Add Small Sectional”
- “Add Large Sectional”
- “Add Modular Sofa Corner”
- “Add Modular Sofa with Back”
- “Add Modular Sofa without Back”
- “Add Modular Sofa [with No Back]”
Tables
Commands for adding table elements (mostly rectangular) to the current canvas at {0, 0}:
Command phrase variations (words in [brackets] are optional):
- “Add Small Table”
- “Add Small Square Table”
- “Add Medium Table”
- “Add Large Table”
- “Add Small Coffee Table”
- “Add Large Coffee Table”
- “Add End Table”
- “Add Square End Table”
- “Add Round End Table”
- “Add Bench”
Round Tables
Commands for adding round table elements to the current canvas at {0, 0}:
Command phrase variations (words in [brackets] are optional):
- “Add Small Round Table”
- “Add Medium Round Table”
- “Add Large Round Table”
- “Add Large Rounded Table”
- “Add CafΓ© Table”
- “Add Round End Table”
- “Add Round Nightstand”
Conference Tables
Commands for adding conference table elements to the current canvas at {0, 0}:
Command phrase variations (words in [brackets] are optional):
- “Add Circular Conference Table”
- “Add Conference Table for Six”
- “Add Conference Table for Eight”
- “Add Large Conference Table for Eight”
- “Add Conference Phone”
Bathrooms
Commands for adding bathroom elements to the current canvas at {0, 0}:
Command phrase variations (words in [brackets] are optional):
- “Add Toilet”
- “Add Urinal”
- “Add Bathroom Sink”
- “Add Lavatory Sink”
- “Add Restroom Sink”
- “Add Bathroom Pedestal Sink”
- “Add Lavatory Pedestal Sink”
- “Add Restroom Pedestal Sink”
- “Add Bathtub”
- “Add Oval Bathtub”
- “Add Spa Bathtub”
- “Add Restroom Stall”
- “Add Bathroom Stall”
- “Add Lavatory Stall”
- “Add Water Closet”
- “Add [Small] Half Bath”
- “Add [Small] Half Bathroom”
- “Add Full Bathroom”
- “Add Full Bath”
- “Add Double Vanity”
- “Add Double Sinks”
Rugs
Commands for adding area rug elements to the current canvas at {0, 0}:
Command phrase variations (words in [brackets] are optional):
- “Add 2 by 8 [Foot] Runner”
- “Add Doormat”
- “Add 6-Foot Round Rug”
- “Add 4-Foot Round Rug”
- “Add 3 by 5 [Foot] Rug”
- “Add 4 by 6 [Foot] Rug”
- “Add 5 by 8 [Foot] Rug”
- “Add 6 by 9 [Foot] Rug”
- “Add 9 by 12 [Foot] Rug”
Media & Entertainment
Commands for adding media and entertainment elements to the current canvas at {0, 0}:
Command phrase variations (words in [brackets] are optional):
- “Add [Grand] Piano”
- “Add Foosball Table”
- “Add Ping Pong Table”
- “Add [Video] Projector”
- “Add [Video] Projector Screen”
- “Add Wall-Mounted TV”
- “Add Wall-Mounted Television”
- “Add TV with Stand”
- “Add Television with Stand”
- “Add Media Console”
- “Add Wall-Mounted Whiteboard”
- “Add Large Rolling Whiteboard”
- “Add 72-Inch Rolling Whiteboard”
- “Add Small Rolling Whiteboard”
- “Add 48-Inch Rolling Whiteboard”
Desks & Workspaces
Commands for adding desk and workspace elements to the current canvas at {0, 0}:
Command phrase variations (words in [brackets] are optional):
- “Add Desk”
- “Add Sit or Stand Desk”
- “Add Desk with Partition”
- “Add Drafting Desk”
- “Add Cubicle”
- “Add Cubicle with Desk”
- “Add Closed Cubicle”
- “Add Closed Cubicle with Desk”
- “Add Large Cubicle”
- “Add Large Cubicle with Desk”
- “Add Workstation with Storage”
- “Add Privacy Panel”
- “Add Single Desk Outlet”
- “Add DOuble Desk Outlet”
Kitchen
Commands for adding kitchen-related elements to the current canvas at {0, 0}:
Command phrase variations (words in [brackets] are optional):
- “Add [One-Door] Refrigerator”
- “Add Single-Door Refrigerator”
- “Add Two-Door Refrigerator”
- “Add Double-Door Refrigerator”
- “Add [Four-Burner] Stove”
- “Add Six-Burner Stove”
- “Add Farmhouse Sink”
- “Add Kitchen Sink”
- “Add Double Kitchen Sink”
- “Add Double Narrow Kitchen Sink”
- “Add Washer”
- “Add Dryer”
- “Add [Kitchen] Counter”
- “Add [Kitchen] Corner Counter”
- “Add Corner Kitchen Counter”
Kitchen Cabinets
Commands for adding kitchen cabinet elements to the current canvas at {0, 0}:
Command phrase variations (words in [brackets] are optional):
- “Add 12-Inch Base [Kitchen] Cabinet”
- “Add 15-Inch Base [Kitchen] Cabinet”
- “Add 18-Inch Base [Kitchen] Cabinet”
- “Add 24-Inch Base [Kitchen] Cabinet”
- “Add 30-Inch Base [Kitchen] Cabinet”
- “Add 36-Inch Base [Kitchen] Cabinet”
- “Add 12-Inch Wall [Kitchen] Cabinet”
- “Add 15-Inch Wall [Kitchen] Cabinet”
- “Add 18-Inch Wall [Kitchen] Cabinet”
- “Add 24-Inch Wall [Kitchen] Cabinet”
- “Add 30-Inch Wall [Kitchen] Cabinet”
- “Add 36-Inch Wall [Kitchen] Cabinet”
Bedrooms
Commands for adding bedroom elements to the current canvas at {0, 0}:
Command phrase variations (words in [brackets] are optional):
- “Add Twin Bed”
- “Add Full Bed”
- “Add Queen Bed”
- “Add King Bed”
- “Add California King Bed”
- “Add 72-Inch Dresser”
- “Add 60-Inch Dresser”
- “Add 48-Inch Dresser”
- “Add 36-Inch Dresser”
- “Add 24-Inch Dresser”
- “Add Nightstand”
- “Add Round Nigthstand”
- “Add 24-Inch Mirror”
Miscellaneous
Commands for adding various elements to the current canvas at {0, 0}:
Command phrase variations (words in [brackets] are optional):
- “Add File Cabinet”
- “Add 18 x 20 [Inch] File Cabinet”
- “Add 18 x 20" File Cabinet”
- “Add Deep File Cabinet”
- “Add 18 x 26 [Inch] File Cabinet”
- “Add 18 x 26" File Cabinet”
- “Add Double Wide File Cabinet”
- “Add 36 x 20 [Inch] File Cabinet”
- “Add 36 x 20" File Cabinet”
- “Add Double Wide Deep File Cabinet”
- “Add 36 x 26 [Inch] File Cabinet”
- “Add 36 x 26" File Cabinet”
- “Add Coat Rack”
- “Add Fire Extinguisher”
- “Add Exit Sign”
- “Add Recycling Bin”
- “Add Trash Bin”
- “Add Defibrillator”
Script for Adding Stencil Element
Here is a script for placing a specified stencil element on the current canvas:
Add Stencil Element to Canvas at {0, 0}
(async () => {
try {
function createUtterance(textToSpeak){
AlexID = (
(app.platformName === "macOS") ?
"com.apple.speech.synthesis.voice.Alex" :
"com.apple.speech.voice.Alex"
)
voiceObj = Speech.Voice.withIdentifier(AlexID)
voiceRate = 0.4
utterance = new Speech.Utterance(textToSpeak)
utterance.voice = voiceObj
utterance.rate = voiceRate
return utterance
}
var synthesizer = new Speech.Synthesizer()
var stencilName = "ZZZZZ"
var graphicName = "XXXXX"
try {
document.name
}
catch(err){
throw {
name : "Missing Resource",
message: "No document is open."
}
}
targetStencil = app.stencils.find(stencil => {
return stencil.name === stencilName
})
if(targetStencil === undefined){
throw {
name : "Missing Resource",
message: `The β${stencilName}β stencil is not installed.`
}
}
var foundFlag = false
targetStencil.load(stncl => {
console.log("Loaded stencil: β" + stncl.name + "β")
for(q = 0; q < stncl.graphics.length; q++){
aGraphicName = stncl.graphics[q].name
if (aGraphicName !== null){
if (aGraphicName.localeCompare(graphicName) === 0){
console.log("Found graphic: β" + graphicName + "β")
aStencilGraphic = stncl.graphics[q]
cnvs = document.windows[0].selection.canvas
rsltArray = cnvs.duplicate([aStencilGraphic])
aGraphic = rsltArray[0]
rect = new Rect(
0,
0,
aGraphic.geometry.width,
aGraphic.geometry.height
)
aGraphic.geometry = rect
document.windows[0].selection.view.select([aGraphic])
console.log("Added graphic: β" + graphicName + "β")
foundFlag = true
break
}
}
}
})
if(foundFlag === false){
throw {
name: "Missing Element",
message: `The element ${graphicName} was not found in the stencil set.`
}
}
response = `${graphicName} added`
utterance = createUtterance(response)
synthesizer.speakUtterance(utterance)
}
catch(err){
utterance = createUtterance(err.message)
synthesizer.speakUtterance(utterance)
//new Alert(err.name, err.message).show()
}
})();
LEGAL
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Mention of third-party websites and products is for informational purposes only and constitutes neither an endorsement nor a recommendation. OMNI-AUTOMATION.COM assumes no responsibility with regard to the selection, performance or use of information or products found at third-party websites. OMNI-AUTOMATION.COM provides this only as a convenience to our users. OMNI-AUTOMATION.COM has not tested the information found on these sites and makes no representations regarding its accuracy or reliability. There are risks inherent in the use of any information or products found on the Internet, and OMNI-AUTOMATION.COM assumes no responsibility in this regard. Please understand that a third-party site is independent from OMNI-AUTOMATION.COM and that OMNI-AUTOMATION.COM has no control over the content on that website. Please contact the vendor for additional information.
π¨ (Also, your are most welcome!)