Class: Layout::Document

Inherits:
Object
  • Object
show all
Defined in:
lib/sketchup-api-stubs/stubs/Layout/Document.rb

Overview

This is the interface to a LayOut document. A Document is the 2D drawing that the user is working with, and it serves as the “entry point” for most Ruby API interactions. The Document.open method gives you a handle to a Document, and from there you can use the document-level methods to start getting information and making changes.

Examples:

# Grab a handle to an existing LayOut document.
doc = Layout::Document.open("C:/path/to/document.layout")

# Grab other handles to commonly used collections inside the model.
layers = doc.layers
pages = doc.pages
entities = doc.shared_entities

# Now that we have our handles, we can start pulling objects and making
# method calls that are useful.
first_entity = entities[0]

number_pages = pages.count

Version:

  • LayOut 2018

Constant Summary collapse

DECIMAL_CENTIMETERS =

Constants

nil
DECIMAL_FEET =

Stub value.

nil
DECIMAL_INCHES =

Stub value.

nil
DECIMAL_METERS =

Stub value.

nil
DECIMAL_MILLIMETERS =

Stub value.

nil
DECIMAL_POINTS =

Stub value.

nil
FRACTIONAL_INCHES =

Stub value.

nil
VERSION_1 =

Stub value.

nil
VERSION_2 =

Stub value.

nil
VERSION_2013 =

Stub value.

nil
VERSION_2014 =

Stub value.

nil
VERSION_2015 =

Stub value.

nil
VERSION_2016 =

Stub value.

nil
VERSION_2017 =

Stub value.

nil
VERSION_2018 =

Stub value.

nil
VERSION_2019 =

Stub value.

nil
VERSION_2020 =

Stub value.

nil
VERSION_2021 =

Stub value.

nil
VERSION_3 =

Stub value.

nil
VERSION_CURRENT =

Stub value.

nil

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeLayout::Document #initialize(template_path) ⇒ Layout::Document

The #initialize method creates a new Layout::Document. Passing a path to an existing Layout::Document will use that file as a template. The new Layout::Document won’t have a path until it is saved for the first time.

Examples:

doc = Layout::Document.new
doc2 = Layout::Document.new("/path/to/template.layout")

Overloads:

Raises:

  • (RuntimeError)

    if there was an error reading the template file

  • (ArgumentError)

    if the template file could not be found

Version:

  • LayOut 2018



266
267
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 266

def initialize(*args)
end

Class Method Details

.open(path) ⇒ Layout::Document

The open method creates a new Layout::Document by loading an existing .layout file.

Examples:

filename = File.join(ENV['Home'], 'Desktop', 'template.layout')
doc = Layout::Document.open(filename)

Parameters:

  • path (String)

    The path to the .layout file on disk.

Returns:

Raises:

  • (ArgumentError)

    if the file does not exist

Version:

  • LayOut 2018



71
72
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 71

def self.open(path)
end

Instance Method Details

#==(other) ⇒ Boolean

The #== method checks to see if the two Layout::Documents are equal. This checks whether the Ruby Objects are pointing to the same internal object.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
document = doc.pages.first.document
doc == document

Parameters:

Returns:

  • (Boolean)

Version:

  • LayOut 2018



90
91
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 90

def ==(other)
end

#add_entity(entity, layer, page) ⇒ Object #add_entity(entity, layer) ⇒ Object

The #add_entity method adds an Entity to the Layout::Document and places it on the given Layer and Page. If layer is a shared Layer then page may be ommitted. The Entity must not already belong to a Layout::Document. If the Entity is a Group, then the Group along with all of its children will be added to the Layout::Document.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
rect = Layout::Rectangle.new([[1, 1], [2, 2]])
all_layers = doc.layers
all_pages = doc.pages
doc.add_entity(rect, all_layers.first, all_pages.first)

Overloads:

Raises:

  • (ArgumentError)

    if no Page is passed in and layer is non-shared

  • (ArgumentError)

    if page does not belong to the Layout::Document

  • (ArgumentError)

    if layer does not belong to the Layout::Document

  • (ArgumentError)

    if entity already belongs to a Layout::Document

Version:

  • LayOut 2018



131
132
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 131

def add_entity(*args)
end

#auto_text_definitionsLayout::AutoTextDefinitions

The #auto_text_definitions method returns an array of AutoTextDefinition‘s in the Layout::Document.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
defs = doc.auto_text_definitions

Returns:

Version:

  • LayOut 2018



144
145
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 144

def auto_text_definitions
end

#export(file_path, options = nil) ⇒ Object

The #export method exports the Layout::Document to a given file format. It knows which format to export based on the file extension you place on the file name. For example, a filename of “thing.pdf” will export a PDF file, whereas “thing.png” will export a set of PNG images.

For LayOut version 2020.1, valid extensions include .pdf, .jpg, and .png.

Examples:

PDF Export Examples

doc = Layout::Document.open("c:/path/to/document.layout")

# Export pdf file on a PC, with default settings.
status = doc.export("c:/my_export.pdf")

# Export pages one through three at high quality, compressing jpeg images
# at 0.75 compression quality (valid range is 0.0 - 1.0). Note that the
# first page of a {Layout::Document} is index 0.
options = { start_page: 1,
            end_page: 3,
            output_resolution: Layout::PageInfo::RESOLUTION_HIGH,
            compress_images: TRUE,
            compress_quality: 0.75 }

status = doc.export("c:/my_export.pdf", options)

Image Set Export Examples

doc = Layout::Document.open("c:/path/to/document.layout")

# Export png files on macOS, with default settings.
status = doc.export('/Users/username/Desktop/pngs/page.png')

# Export pages one through three at 300 dpi as JPGs.
options = { start_page: 1,
            end_page: 3,
            dpi: 300 }
status = doc.export('c:/page.jpg', options)

Parameters:

  • file_path (String)

    The file or image set to create. The directory path must already exist. The path must include the file extension.

  • options (Hash, nil) (defaults to: nil)

    An optional hash of settings for the export.

Raises:

  • (TypeError)

    if an options value is the wrong type

  • (RangeError)

    if an options value is out of range

  • (ArgumentError)

    if the full file path does not exist

  • (ArgumentError)

    if the specified file type is missing or not supported

Version:

  • LayOut 2020.1



199
200
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 199

def export(file_path, options = nil)
end

#gridLayout::Grid

The #grid method returns the Grid for a Layout::Document.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
grid = doc.grid

Returns:

Version:

  • LayOut 2018



211
212
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 211

def grid
end

#grid_snap_enabled=(enabled) ⇒ Object

The #grid_snap_enabled= method sets whether or not grid snap is enabled in the Layout::Document.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
doc.grid_snap_enabled = true

Parameters:

  • enabled (Boolean)

    true for enabled false for disabled

Version:

  • LayOut 2018



225
226
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 225

def grid_snap_enabled=(enabled)
end

#grid_snap_enabled?Boolean

The #grid_snap_enabled? method returns whether or not grid snap is enabled in the Layout::Document.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
enabled = doc.grid_snap_enabled?

Returns:

  • (Boolean)

Version:

  • LayOut 2018



238
239
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 238

def grid_snap_enabled?
end

#layersLayout::Layers

The #layers method returns the Layers of the Layout::Document.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
layers = doc.layers

Returns:

Version:

  • LayOut 2018



278
279
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 278

def layers
end

#object_snap_enabled=(enabled) ⇒ Object

The #object_snap_enabled= method enables or disables inference in the Layout::Document.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
doc.object_snap_enabled = false

Parameters:

  • enabled (Boolean)

    true for enabled false for disabled

Version:

  • LayOut 2018



292
293
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 292

def object_snap_enabled=(enabled)
end

#object_snap_enabled?Boolean

The #object_snap_enabled? method returns whether or not inference is enabled in the Layout::Document.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
enabled = doc.object_snap_enabled?

Returns:

  • (Boolean)

Version:

  • LayOut 2018



305
306
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 305

def object_snap_enabled?
end

#page_infoLayout::PageInfo

The #page_info method returns a reference to the PageInfo settings of the Layout::Document.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
page_info = doc.page_info

Returns:

Version:

  • LayOut 2018



318
319
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 318

def page_info
end

#pagesLayout::Pages

The #pages method returns the Pages of the Layout::Document.

@example:

doc = Layout::Document.open("C:/path/to/document.layout")
doc_pages = doc.pages

Returns:

Version:

  • LayOut 2018



331
332
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 331

def pages
end

#pathString

The #path method returns the full path of the Layout::Document file. An empty string is returned for a new Layout::Document (one which has not been saved and opened).

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
path = doc.path

Returns:

Version:

  • LayOut 2018



345
346
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 345

def path
end

#precisionFloat

The #precision method returns the precision for the Layout::Document.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
precision = doc.precision

Returns:

Version:

  • LayOut 2018



358
359
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 358

def precision
end

#precision=(precision) ⇒ Object

Note:

LayOut only allows for a finite set of precision values for each units setting, so it will set the precision to the closest valid setting for the specified units. See the “Units” section of LayOut’s “Document Setup” dialog for a reference of the available precisions for each units setting.

The #precision= method sets the precision for the Layout::Document.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
doc.precision = 0.0001

Parameters:

  • precision (Float)

    The double specifying the precision for the Layout::Document

Version:

  • LayOut 2018



377
378
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 377

def precision=(precision)
end

#remove_entity(entity) ⇒ Object

The #remove_entity method removes an Entity from the Layout::Document. If entity is a Group, then the Group and all of its children will be removed from the Layout::Document.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
shared_entities = doc.shared_entities
# Remove the first entity in the document
doc.remove_entity(shared_entities.first)

Parameters:

Raises:

Version:

  • LayOut 2018



396
397
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 396

def remove_entity(entity)
end

#saveObject #save(path, version = Layout::Document::VERSION_CURRENT) ⇒ Object

The #save method saves the Layout::Document to a file at the given path. Passing an empty path string will save the Layout::Document at its current path.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
# Save the model using the current Layout format
path = File.join(ENV['Home'], 'Desktop', 'mydoc.layout')
status = doc.save(path)
# Save the document to the current file using the current LayOut format
status = doc.save
# Save the document to the current file in LayOut 3 format
status = doc.save(Layout::Document::VERSION_3)
# Save the document in LayOut 2013 format
path = File.join(ENV['Home'], 'Desktop', 'mydoc_v2013.layout')
status = doc.save(path, Layout::Document::VERSION_2013)

Overloads:

  • #saveObject

    path yet

    Raises:

  • #save(path, version = Layout::Document::VERSION_CURRENT) ⇒ Object

    Parameters:

    • path (String)

      The path to the .layout file on disk.

    • version (Integer) (defaults to: Layout::Document::VERSION_CURRENT)

      LayOut file format to save.

Raises:

  • (ArgumentError)

    if version is not a valid version

  • (ArgumentError)

    if saving failed. This may be due to the LayOut file being open in the LayOut application

Version:

  • LayOut 2018



432
433
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 432

def save(*args)
end

#shared_entitiesLayout::Entities

The #shared_entities method returns the Entities that exist on shared Layers in the Layout::Document.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
entities = doc.shared_entities

Returns:

Version:

  • LayOut 2018



445
446
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 445

def shared_entities
end

#time_createdTime

The #time_created method returns the time when the Layout::Document was created.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
created_time = doc.time_created

Returns:

Version:

  • LayOut 2018



458
459
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 458

def time_created
end

#time_modifiedTime

The #time_modified method returns the last time the Layout::Document was modified.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
mod_time = doc.time_modified

Returns:

Version:

  • LayOut 2018



471
472
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 471

def time_modified
end

#time_publishedTime

The #time_published method returns the time when the Layout::Document was published.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
pub_time = doc.time_published

Returns:

Version:

  • LayOut 2018



484
485
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 484

def time_published
end

#unitsInteger

The #units method returns the units for the Layout::Document.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
units = doc.units

Returns:

Version:

  • LayOut 2018



496
497
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 496

def units
end

#units=(units_format) ⇒ Object

The #units= method sets the units for the Layout::Document.

Examples:

doc = Layout::Document.open("C:/path/to/document.layout")
units_format = LAYOUT::DOCUMENT::DECIMAL_MILLIMETERS
doc.units = units_format

Parameters:

Raises:

  • (ArgumentError)

    if units format is not a valid format

Version:

  • LayOut 2018



512
513
# File 'lib/sketchup-api-stubs/stubs/Layout/Document.rb', line 512

def units=(units_format)
end