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

Download & Reference Links

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.

Script security dialog

Table of Categories

Command Categories (T)

Links to the various command categories:

Shared Commands

Commands that can be used with selected elements.

Rooms, Walls, and Stairs

Commands that can be used to define spaces:

Heat and Electrical

Commands for adding utility elements to the current canvas at {0, 0}:

various heating and electrical elements

Command phrase variations (words in [brackets] are optional):

Windows

Commands for adding window elements to the current canvas at {0, 0}:

various window elements

Command phrase variations (words in [brackets] are optional):

Doors

Commands for adding door elements to the current canvas at {0, 0}:

various door elements

Command phrase variations (words in [brackets] are optional):

Chairs

Commands for adding chair elements to the current canvas at {0, 0}:

Various types of chairs with titles and dimensions

Command phrase variations (words in [brackets] are optional):

Sofas

Commands for adding sofa elements to the current canvas at {0, 0}:

Various types of sofas with titles and dimensions

Command phrase variations (words in [brackets] are optional):

Sectionals/Modular Sofa

Commands for adding sectional and modular sofa elements to the current canvas at {0, 0}:

Various types of sectionals and modular sofas with titles and dimensions

Command phrase variations (words in [brackets] are optional):

Tables

Commands for adding table elements (mostly rectangular) to the current canvas at {0, 0}:

Various types of tables (mostly rectangular) with titles and dimensions

Command phrase variations (words in [brackets] are optional):

Round Tables

Commands for adding round table elements to the current canvas at {0, 0}:

Various types of round tables with titles and dimensions

Command phrase variations (words in [brackets] are optional):

Conference Tables

Commands for adding conference table elements to the current canvas at {0, 0}:

various conference table elements

Command phrase variations (words in [brackets] are optional):

Bathrooms

Commands for adding bathroom elements to the current canvas at {0, 0}:

Various types of bathrooms and bathroom elements with titles and dimensions

Command phrase variations (words in [brackets] are optional):

Rugs

Commands for adding area rug elements to the current canvas at {0, 0}:

various sizing and shapes of area rugs

Command phrase variations (words in [brackets] are optional):

Media & Entertainment

Commands for adding media and entertainment elements to the current canvas at {0, 0}:

various media and entertainment elements

Command phrase variations (words in [brackets] are optional):

Desks & Workspaces

Commands for adding desk and workspace elements to the current canvas at {0, 0}:

various desk and workspace elements

Command phrase variations (words in [brackets] are optional):

Kitchen

Commands for adding kitchen-related elements to the current canvas at {0, 0}:

various kitchen-related elements

Command phrase variations (words in [brackets] are optional):

Kitchen Cabinets

Commands for adding kitchen cabinet elements to the current canvas at {0, 0}:

various kitchen cabinets, both base and wall cabinets.

Command phrase variations (words in [brackets] are optional):

Bedrooms

Commands for adding bedroom elements to the current canvas at {0, 0}:

various bedroom elements, like beds and dressers

Command phrase variations (words in [brackets] are optional):

Miscellaneous

Commands for adding various elements to the current canvas at {0, 0}:

various Miscellaneous elements including file cabinets

Command phrase variations (words in [brackets] are optional):

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!)