Class: Sketchup::Layer

Inherits:
Entity
  • Object
show all
Includes:
Comparable
Defined in:
lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb

Overview

Note:

As of SketchUp 2020 “Layers” were renamed to “Tags” in the UI. The API retains the use of “Layer” for compatibility and is synonymous with “Tag”.

The Layer class contains methods modifying and extracting information for a layer.

By default, a SketchUp model has one layer, Layer 0 (Named “Untagged” in the UI since SketchUp 2020), which is the base layer. You can’t delete or rename Layer 0. Unlike certain other CAD software packages, entities associated with different layers in SketchUp still intersect with each other. (If you want collections of entities to not intersect, place them in Groups instead.)

Layers are commonly used to organize your model and control the visibility of related groups and components. For example, you could make all of your wall and roof entities different groups, associate layers with those groups, and then hide those layers so as to display just the floor plan in the model.

Examples:

model = Sketchup.active_model
layers = model.layers
new_layer = layers.add('Doors')

Version:

  • SketchUp 6.0

Instance Method Summary collapse

Methods inherited from Entity

#add_observer, #attribute_dictionaries, #attribute_dictionary, #delete_attribute, #deleted?, #entityID, #get_attribute, #inspect, #model, #parent, #persistent_id, #remove_observer, #set_attribute, #to_s, #typename, #valid?

Instance Method Details

#<=>(layer2) ⇒ Integer

The #<=> method is used to compare two layers based on their names. You could use this for sorting if you’re building a list of layer names.

Examples:

model = Sketchup.active_model
layers = model.layers
new_layer = layers.add "test layer"
layer1 = layers[0]
layer2 = layers[1]
status = layer1 <=> layer2

Parameters:

Returns:

  • (Integer)

    -1 if layer1 is less than layer2. 1 if layer2 is less than layer1. 0 if layer1 and layer2 are equal.

Version:

  • SketchUp 6.0



54
55
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb', line 54

def <=>(layer2)
end

#==(other) ⇒ Object

The #== method is used to determine if two layers are the same.

Examples:

model = Sketchup.active_model
layers = model.layers
layer1 = layers.add("Test layer 1")
layer2 = layers.add("Test layer 2")
equal = layer1 == layer2

Parameters:

  • other (Object)

Version:

  • SketchUp 6.0



69
70
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb', line 69

def ==(other)
end

#colorSketchup::Color

The #color method is used to retrieve the color of the layer.

Examples:

model = Sketchup.active_model
layers = model.layers
new_layer = layers.add('Test layer')
color = new_layer.color

Returns:

Version:

  • SketchUp 2014



83
84
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb', line 83

def color
end

#color=(color) ⇒ Object

The #color= method is used to set the name of a layer.

Examples:

model = Sketchup.active_model
layers = model.layers
new_layer = layers.add('Test layer')
new_layer.color = Sketchup::Color.new(192, 0, 0)

Parameters:

Version:

  • SketchUp 2014



97
98
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb', line 97

def color=(color)
end

#display_nameString

The #display_name method is used to retrieve the display name of the layer.

Examples:

model = Sketchup.active_model
layers = model.layers
new_layer = layers.add ("test layer")
name = new_layer.display_name

Returns:

See Also:

Version:

  • SketchUp 2020.0



113
114
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb', line 113

def display_name
end

#folderSketchup::LayerFolder?

The #folder method is used to return the parent layer folder of a layer.

Examples:

model = Sketchup.active_model
layers = model.layers
folder1 = layers.add('Folder1')
parent_folder = folder1.folder # Returns: nil

folder2 = folder1.add('Folder2')
parent_folder = folder2.folder # Returns: folder1

Returns:

Version:

  • SketchUp 2021.0



133
134
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb', line 133

def folder
end

#folder=(parent) ⇒ Object

The #folder= method is used to set the parent layer folder of a layer.

This will trigger onParentFolderChanged in normal cases and onLayerChanged during undo/redo.

Examples:

model = Sketchup.active_model
layers = model.layers
folder = layers.add_folder('Hello')
layer = layers.add_layer('World')
layer.folder = folder

Parameters:

Version:

  • SketchUp 2021.0



155
156
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb', line 155

def folder=(parent)
end

#line_styleSketchup::LineStyle?

The #line_style method retrieves the line style on this layer.

Examples:

line_style = Sketchup.active_model.layers[0].line_style

Returns:

Version:

  • SketchUp 2019



166
167
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb', line 166

def line_style
end

#line_style=(line_style) ⇒ Sketchup::Layer

The #line_style= method lets you set a specific line style to a layer

Examples:

line_style = Sketchup.active_model.line_styles["Dot"]
Sketchup.active_model.layers[0].line_style = line_style

Parameters:

Returns:

Version:

  • SketchUp 2019



181
182
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb', line 181

def line_style=(line_style)
end

#nameString

The #name method is used to retrieve the name of the layer.

Examples:

model = Sketchup.active_model
layers = model.layers
new_layer = layers.add "test layer"
name = new_layer.name

Returns:

See Also:

Version:

  • SketchUp 6.0



197
198
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb', line 197

def name
end

#name=(name) ⇒ Object

The #name= method is used to set the name of a layer.

Examples:

model = Sketchup.active_model
layers = model.layers
new_layer = layers.add "test layer"
name = new_layer.name = "new test layer"

Parameters:

Version:

  • SketchUp 6.0



211
212
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb', line 211

def name=(name)
end

#page_behaviorInteger

The #page_behavior method is used to retrieve the visibility behavior of the layer for new pages and existing pages. For example, you may want your layer to be visible or hidden by default in any new pages (aka Scenes) created by the user.

A page keeps a list of layers that do not have their default behavior. If a layer is not in that list, then it is set to its default visibility determined by one of these values:

The behaviour is composed of a combination of these flags:

Default visibility

These flags are used to set the value of #page_behavior. A page keeps a list of layers that do not have their default behavior. If a layer is not in that list, then it is set to its default visibility which is determined by one of these flags.

Visibility on new pages

You can also set this addition flag that controls the visibility of a layer on newly created pages.

The default visibility for a layer is set by either LAYER_VISIBLE_BY_DEFAULT or LAYER_HIDDEN_BY_DEFAULT. This is what will be used when a page does not contain the visibility state of a layer.

The remaining flags control the visibility of the layer for new pages.

Examples:

model = Sketchup.active_model
layers = model.layers
layer = layers.add('Test Layer')
hidden_by_default = (layer.page_behavior & LAYER_HIDDEN_BY_DEFAULT) ==
                    LAYER_HIDDEN_BY_DEFAULT

Returns:

  • (Integer)

    an integer representing the current behavior of the layer.

Version:

  • SketchUp 6.0



257
258
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb', line 257

def page_behavior
end

#page_behavior=(page_behavior) ⇒ Object

The #page_behavior= method is used to control the layer’s visibility behavior on existing and new pages.

When you Update a page (as opposed to creating a new page) the current visibility of the layer is used.

The behavior is composed of a combination of these flags:

Default visibility

These flags are used to set the value of #page_behavior. A page keeps a list of layers that do not have their default behavior. If a layer is not in that list, then it is set to its default visibility which is determined by one of these flags.

Visibility on new pages

You can also set this addition flag that controls the visibility of a layer on newly created pages.

Examples:

layers = Sketchup.active_model.layers
layer = layers.add('Test Layer')
behavior = LAYER_HIDDEN_BY_DEFAULT | LAYER_IS_HIDDEN_ON_NEW_PAGES
layer.page_behavior = behavior

Parameters:

  • page_behavior (Integer)

Version:

  • SketchUp 6.0



296
297
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb', line 296

def page_behavior=(page_behavior)
end

#visible=(visible) ⇒ Object

The #visible= method is used to set if the layer is visible.

Examples:

model = Sketchup.active_model
layers = model.layers
layer = layers.add('Hello World')
layer.visible = false

Parameters:

  • visible (Boolean)

Version:

  • SketchUp 6.0



310
311
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb', line 310

def visible=(visible)
end

#visible?Boolean

The #visible? method is used to determine if the layer is visible.

Examples:

model = Sketchup.active_model
layers = model.layers
layer = layers.add('Hello World')
layer.visible? # Returns: true

Returns:

  • (Boolean)

Version:

  • SketchUp 6.0



324
325
# File 'lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb', line 324

def visible?
end