sketchup-api-stubs 0.7.9 → 0.7.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sketchup-api-stubs/sketchup.rb +157 -151
  3. data/lib/sketchup-api-stubs/stubs/Array.rb +741 -741
  4. data/lib/sketchup-api-stubs/stubs/Geom/BoundingBox.rb +322 -322
  5. data/lib/sketchup-api-stubs/stubs/Geom/Bounds2d.rb +182 -172
  6. data/lib/sketchup-api-stubs/stubs/Geom/LatLong.rb +111 -126
  7. data/lib/sketchup-api-stubs/stubs/Geom/OrientedBounds2d.rb +102 -102
  8. data/lib/sketchup-api-stubs/stubs/Geom/Point2d.rb +423 -400
  9. data/lib/sketchup-api-stubs/stubs/Geom/Point3d.rb +693 -661
  10. data/lib/sketchup-api-stubs/stubs/Geom/PolygonMesh.rb +535 -509
  11. data/lib/sketchup-api-stubs/stubs/Geom/Transformation.rb +500 -476
  12. data/lib/sketchup-api-stubs/stubs/Geom/Transformation2d.rb +267 -263
  13. data/lib/sketchup-api-stubs/stubs/Geom/UTM.rb +133 -141
  14. data/lib/sketchup-api-stubs/stubs/Geom/Vector2d.rb +547 -522
  15. data/lib/sketchup-api-stubs/stubs/Geom/Vector3d.rb +678 -693
  16. data/lib/sketchup-api-stubs/stubs/Geom.rb +351 -351
  17. data/lib/sketchup-api-stubs/stubs/LanguageHandler.rb +93 -93
  18. data/lib/sketchup-api-stubs/stubs/Layout/AngularDimension.rb +595 -595
  19. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinition.rb +751 -747
  20. data/lib/sketchup-api-stubs/stubs/Layout/AutoTextDefinitions.rb +183 -183
  21. data/lib/sketchup-api-stubs/stubs/Layout/ConnectionPoint.rb +70 -70
  22. data/lib/sketchup-api-stubs/stubs/Layout/Dictionary.rb +234 -0
  23. data/lib/sketchup-api-stubs/stubs/Layout/Document.rb +683 -517
  24. data/lib/sketchup-api-stubs/stubs/Layout/Ellipse.rb +29 -29
  25. data/lib/sketchup-api-stubs/stubs/Layout/Entities.rb +148 -148
  26. data/lib/sketchup-api-stubs/stubs/Layout/Entity.rb +464 -353
  27. data/lib/sketchup-api-stubs/stubs/Layout/FormattedText.rb +354 -354
  28. data/lib/sketchup-api-stubs/stubs/Layout/Grid.rb +311 -311
  29. data/lib/sketchup-api-stubs/stubs/Layout/Group.rb +261 -261
  30. data/lib/sketchup-api-stubs/stubs/Layout/Image.rb +91 -91
  31. data/lib/sketchup-api-stubs/stubs/Layout/Label.rb +370 -370
  32. data/lib/sketchup-api-stubs/stubs/Layout/Layer.rb +218 -218
  33. data/lib/sketchup-api-stubs/stubs/Layout/LayerInstance.rb +128 -128
  34. data/lib/sketchup-api-stubs/stubs/Layout/Layers.rb +225 -225
  35. data/lib/sketchup-api-stubs/stubs/Layout/LinearDimension.rb +614 -567
  36. data/lib/sketchup-api-stubs/stubs/Layout/LockedEntityError.rb +10 -10
  37. data/lib/sketchup-api-stubs/stubs/Layout/LockedLayerError.rb +11 -11
  38. data/lib/sketchup-api-stubs/stubs/Layout/Page.rb +282 -183
  39. data/lib/sketchup-api-stubs/stubs/Layout/PageInfo.rb +458 -387
  40. data/lib/sketchup-api-stubs/stubs/Layout/Pages.rb +209 -209
  41. data/lib/sketchup-api-stubs/stubs/Layout/Path.rb +346 -344
  42. data/lib/sketchup-api-stubs/stubs/Layout/Rectangle.rb +174 -174
  43. data/lib/sketchup-api-stubs/stubs/Layout/ReferenceEntity.rb +82 -82
  44. data/lib/sketchup-api-stubs/stubs/Layout/SketchUpModel.rb +714 -692
  45. data/lib/sketchup-api-stubs/stubs/Layout/Style.rb +1565 -1519
  46. data/lib/sketchup-api-stubs/stubs/Layout/Table.rb +290 -290
  47. data/lib/sketchup-api-stubs/stubs/Layout/TableCell.rb +149 -149
  48. data/lib/sketchup-api-stubs/stubs/Layout/TableColumn.rb +139 -139
  49. data/lib/sketchup-api-stubs/stubs/Layout/TableRow.rb +135 -135
  50. data/lib/sketchup-api-stubs/stubs/Layout.rb +25 -25
  51. data/lib/sketchup-api-stubs/stubs/Length.rb +286 -278
  52. data/lib/sketchup-api-stubs/stubs/Numeric.rb +249 -249
  53. data/lib/sketchup-api-stubs/stubs/Sketchup/Animation.rb +196 -144
  54. data/lib/sketchup-api-stubs/stubs/Sketchup/AppObserver.rb +169 -169
  55. data/lib/sketchup-api-stubs/stubs/Sketchup/ArcCurve.rb +226 -209
  56. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionaries.rb +145 -150
  57. data/lib/sketchup-api-stubs/stubs/Sketchup/AttributeDictionary.rb +294 -281
  58. data/lib/sketchup-api-stubs/stubs/Sketchup/Axes.rb +149 -149
  59. data/lib/sketchup-api-stubs/stubs/Sketchup/Behavior.rb +296 -302
  60. data/lib/sketchup-api-stubs/stubs/Sketchup/Camera.rb +473 -478
  61. data/lib/sketchup-api-stubs/stubs/Sketchup/ClassificationSchema.rb +63 -63
  62. data/lib/sketchup-api-stubs/stubs/Sketchup/Classifications.rb +121 -121
  63. data/lib/sketchup-api-stubs/stubs/Sketchup/Color.rb +294 -294
  64. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentDefinition.rb +673 -659
  65. data/lib/sketchup-api-stubs/stubs/Sketchup/ComponentInstance.rb +600 -593
  66. data/lib/sketchup-api-stubs/stubs/Sketchup/Console.rb +76 -76
  67. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionLine.rb +252 -257
  68. data/lib/sketchup-api-stubs/stubs/Sketchup/ConstructionPoint.rb +32 -32
  69. data/lib/sketchup-api-stubs/stubs/Sketchup/Curve.rb +201 -201
  70. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionList.rb +443 -449
  71. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionObserver.rb +74 -74
  72. data/lib/sketchup-api-stubs/stubs/Sketchup/DefinitionsObserver.rb +104 -104
  73. data/lib/sketchup-api-stubs/stubs/Sketchup/Dimension.rb +167 -165
  74. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionLinear.rb +306 -306
  75. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionObserver.rb +42 -42
  76. data/lib/sketchup-api-stubs/stubs/Sketchup/DimensionRadial.rb +87 -87
  77. data/lib/sketchup-api-stubs/stubs/Sketchup/Drawingelement.rb +403 -406
  78. data/lib/sketchup-api-stubs/stubs/Sketchup/Edge.rb +397 -397
  79. data/lib/sketchup-api-stubs/stubs/Sketchup/EdgeUse.rb +211 -211
  80. data/lib/sketchup-api-stubs/stubs/Sketchup/Entities.rb +1282 -1239
  81. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesBuilder.rb +261 -261
  82. data/lib/sketchup-api-stubs/stubs/Sketchup/EntitiesObserver.rb +127 -127
  83. data/lib/sketchup-api-stubs/stubs/Sketchup/Entity.rb +519 -545
  84. data/lib/sketchup-api-stubs/stubs/Sketchup/EntityObserver.rb +60 -60
  85. data/lib/sketchup-api-stubs/stubs/Sketchup/Environment.rb +406 -0
  86. data/lib/sketchup-api-stubs/stubs/Sketchup/Environments.rb +185 -0
  87. data/lib/sketchup-api-stubs/stubs/Sketchup/EnvironmentsObserver.rb +113 -0
  88. data/lib/sketchup-api-stubs/stubs/Sketchup/ExtensionsManager.rb +122 -125
  89. data/lib/sketchup-api-stubs/stubs/Sketchup/Face.rb +1006 -937
  90. data/lib/sketchup-api-stubs/stubs/Sketchup/FrameChangeObserver.rb +102 -102
  91. data/lib/sketchup-api-stubs/stubs/Sketchup/Group.rb +740 -750
  92. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Request.rb +289 -282
  93. data/lib/sketchup-api-stubs/stubs/Sketchup/Http/Response.rb +64 -62
  94. data/lib/sketchup-api-stubs/stubs/Sketchup/Http.rb +27 -27
  95. data/lib/sketchup-api-stubs/stubs/Sketchup/Image.rb +405 -468
  96. data/lib/sketchup-api-stubs/stubs/Sketchup/ImageRep.rb +266 -266
  97. data/lib/sketchup-api-stubs/stubs/Sketchup/Importer.rb +189 -189
  98. data/lib/sketchup-api-stubs/stubs/Sketchup/InputPoint.rb +432 -406
  99. data/lib/sketchup-api-stubs/stubs/Sketchup/InstanceObserver.rb +84 -84
  100. data/lib/sketchup-api-stubs/stubs/Sketchup/InstancePath.rb +307 -306
  101. data/lib/sketchup-api-stubs/stubs/Sketchup/Layer.rb +332 -326
  102. data/lib/sketchup-api-stubs/stubs/Sketchup/LayerFolder.rb +380 -422
  103. data/lib/sketchup-api-stubs/stubs/Sketchup/Layers.rb +409 -427
  104. data/lib/sketchup-api-stubs/stubs/Sketchup/LayersObserver.rb +241 -249
  105. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing/ExtensionLicense.rb +86 -86
  106. data/lib/sketchup-api-stubs/stubs/Sketchup/Licensing.rb +55 -48
  107. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyle.rb +24 -24
  108. data/lib/sketchup-api-stubs/stubs/Sketchup/LineStyles.rb +114 -114
  109. data/lib/sketchup-api-stubs/stubs/Sketchup/LoadHandler.rb +70 -0
  110. data/lib/sketchup-api-stubs/stubs/Sketchup/Loop.rb +137 -137
  111. data/lib/sketchup-api-stubs/stubs/Sketchup/Material.rb +1115 -414
  112. data/lib/sketchup-api-stubs/stubs/Sketchup/Materials.rb +330 -317
  113. data/lib/sketchup-api-stubs/stubs/Sketchup/MaterialsObserver.rb +142 -142
  114. data/lib/sketchup-api-stubs/stubs/Sketchup/Menu.rb +93 -93
  115. data/lib/sketchup-api-stubs/stubs/Sketchup/Model.rb +1714 -1652
  116. data/lib/sketchup-api-stubs/stubs/Sketchup/ModelObserver.rb +372 -357
  117. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsManager.rb +133 -130
  118. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProvider.rb +271 -271
  119. data/lib/sketchup-api-stubs/stubs/Sketchup/OptionsProviderObserver.rb +58 -58
  120. data/lib/sketchup-api-stubs/stubs/Sketchup/Overlay.rb +463 -490
  121. data/lib/sketchup-api-stubs/stubs/Sketchup/OverlaysManager.rb +104 -116
  122. data/lib/sketchup-api-stubs/stubs/Sketchup/Page.rb +939 -797
  123. data/lib/sketchup-api-stubs/stubs/Sketchup/Pages.rb +388 -361
  124. data/lib/sketchup-api-stubs/stubs/Sketchup/PagesObserver.rb +77 -77
  125. data/lib/sketchup-api-stubs/stubs/Sketchup/PickHelper.rb +501 -478
  126. data/lib/sketchup-api-stubs/stubs/Sketchup/RegionalSettings.rb +43 -43
  127. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptions.rb +385 -361
  128. data/lib/sketchup-api-stubs/stubs/Sketchup/RenderingOptionsObserver.rb +45 -45
  129. data/lib/sketchup-api-stubs/stubs/Sketchup/SectionPlane.rb +150 -150
  130. data/lib/sketchup-api-stubs/stubs/Sketchup/Selection.rb +451 -458
  131. data/lib/sketchup-api-stubs/stubs/Sketchup/SelectionObserver.rb +115 -115
  132. data/lib/sketchup-api-stubs/stubs/Sketchup/Set.rb +211 -212
  133. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfo.rb +259 -255
  134. data/lib/sketchup-api-stubs/stubs/Sketchup/ShadowInfoObserver.rb +59 -59
  135. data/lib/sketchup-api-stubs/stubs/Sketchup/Skp.rb +40 -40
  136. data/lib/sketchup-api-stubs/stubs/Sketchup/Snap.rb +125 -0
  137. data/lib/sketchup-api-stubs/stubs/Sketchup/Style.rb +88 -69
  138. data/lib/sketchup-api-stubs/stubs/Sketchup/Styles.rb +263 -217
  139. data/lib/sketchup-api-stubs/stubs/Sketchup/Text.rb +283 -262
  140. data/lib/sketchup-api-stubs/stubs/Sketchup/Texture.rb +199 -217
  141. data/lib/sketchup-api-stubs/stubs/Sketchup/TextureWriter.rb +237 -237
  142. data/lib/sketchup-api-stubs/stubs/Sketchup/Tool.rb +924 -834
  143. data/lib/sketchup-api-stubs/stubs/Sketchup/Tools.rb +132 -132
  144. data/lib/sketchup-api-stubs/stubs/Sketchup/ToolsObserver.rb +156 -156
  145. data/lib/sketchup-api-stubs/stubs/Sketchup/UVHelper.rb +75 -75
  146. data/lib/sketchup-api-stubs/stubs/Sketchup/Vertex.rb +143 -142
  147. data/lib/sketchup-api-stubs/stubs/Sketchup/View.rb +1566 -1311
  148. data/lib/sketchup-api-stubs/stubs/Sketchup/ViewObserver.rb +71 -45
  149. data/lib/sketchup-api-stubs/stubs/Sketchup.rb +1429 -1377
  150. data/lib/sketchup-api-stubs/stubs/SketchupExtension.rb +353 -353
  151. data/lib/sketchup-api-stubs/stubs/String.rb +24 -24
  152. data/lib/sketchup-api-stubs/stubs/UI/Command.rb +399 -389
  153. data/lib/sketchup-api-stubs/stubs/UI/HtmlDialog.rb +580 -494
  154. data/lib/sketchup-api-stubs/stubs/UI/Notification.rb +280 -269
  155. data/lib/sketchup-api-stubs/stubs/UI/Toolbar.rb +258 -241
  156. data/lib/sketchup-api-stubs/stubs/UI/WebDialog.rb +636 -635
  157. data/lib/sketchup-api-stubs/stubs/UI.rb +791 -683
  158. data/lib/sketchup-api-stubs/stubs/_top_level.rb +303 -303
  159. data/lib/sketchup-api-stubs.rb +1 -1
  160. metadata +10 -24
@@ -1,427 +1,409 @@
1
- # Copyright:: Copyright 2023 Trimble Inc.
2
- # License:: The MIT License (MIT)
3
-
4
- # The Layers collection allows you to see and manage all of the layers in a
5
- # model. You get a pointer to the Layers object from within the Model.
6
- #
7
- # @example
8
- # model = Sketchup.active_model
9
- # layers = model.layers
10
- #
11
- # @note As of SketchUp 2020 "Layers" were renamed to "Tags" in the UI.
12
- # The API retains the use of "Layer" for compatibility and is synonymous with
13
- # "Tag".
14
- #
15
- # @version SketchUp 6.0
16
- class Sketchup::Layers < Sketchup::Entity
17
-
18
- # Includes
19
-
20
- include Enumerable
21
-
22
- # Instance Methods
23
-
24
- # The {#[]} method is used to retrieve a layer by index or name.
25
- #
26
- # @example
27
- # model = Sketchup.active_model
28
- # layers = model.layers
29
- # new_layer = layers.add "test layer"
30
- # layer_by_number = layers[1]
31
- # layer_by_name = layers["test layer"]
32
- #
33
- # @param [Integer, String] index_or_name
34
- # A number representing the layer's
35
- # index in an array of Layer objects, or the name of the layer.
36
- #
37
- # @return [Sketchup::Layer, nil]
38
- #
39
- # @see #at
40
- #
41
- # @version SketchUp 6.0
42
- def [](index_or_name)
43
- end
44
-
45
- # The {#add} method is used to add a new layer.
46
- #
47
- # If you give the name of a Layer that is already defined, it will return the
48
- # existing Layer rather than adding a new one.
49
- #
50
- # @example
51
- # layers = Sketchup.active_model.layers
52
- # layer = layers.add("Test Layer")
53
- #
54
- # @param [String] layer_name
55
- # The name of the added layer.
56
- #
57
- # @return [Sketchup::Layer]
58
- #
59
- # @version SketchUp 6.0
60
- def add(layer_name)
61
- end
62
- alias_method :add_layer, :add
63
-
64
- # The {#add_folder} method adds or moves a layer folder.
65
- #
66
- # @api TagFolder
67
- #
68
- # @example
69
- # manager = Sketchup.active_model.layers
70
- # folder = manager.add_folder('Doors')
71
- #
72
- # @overload add_folder(name)
73
- #
74
- # Adds a new folder with the given name. Unlike layers, folders do not
75
- # need to have a unique name. But the name does have to be non-empty.
76
- # @param [String] name
77
- #
78
- # @overload add_folder(folder)
79
- #
80
- # Moves an existing {Sketchup::LayerFolder} to the receiver. This will
81
- # include any children in the given folder.
82
- # @param [Sketchup::LayerFolder] folder
83
- # @see Sketchup::LayerFolder#folder= Information on how which notifications
84
- # trigger when reparenting an existing folder.
85
- #
86
- # @return [Sketchup::LayerFolder]
87
- #
88
- # @see #count_layers
89
- #
90
- # @version SketchUp 2021.0
91
- def add_folder(arg)
92
- end
93
-
94
- # The {#add_observer} method is used to add an observer to the layers
95
- # collection.
96
- #
97
- # @example
98
- # layers = Sketchup.active_model.layers
99
- # status = layers.add_observer observer
100
- #
101
- # @param [Sketchup::LayersObserver] observer
102
- #
103
- # @return [Boolean] true if successful, false if unsuccessful.
104
- #
105
- # @version SketchUp 6.0
106
- def add_observer(observer)
107
- end
108
-
109
- # The {#at} method is an alias for {#[]}.
110
- #
111
- # @example
112
- # model = Sketchup.active_model
113
- # layers = model.layers
114
- # new_layer = layers.add "test layer"
115
- # layer_by_number = layers.at(1)
116
- # layer_by_name = layers.at("test layer")
117
- #
118
- # @return [Sketchup::Layer, nil]
119
- #
120
- # @see #[]
121
- #
122
- # @version SketchUp 6.0
123
- def at(index_or_name)
124
- end
125
-
126
- #
127
- # @example
128
- # layers = Sketchup.active_model.layers
129
- # number = layers.count
130
- #
131
- # @note Since SketchUp 2014 the count method is inherited from Ruby's
132
- # +Enumerable+ mix-in module. Prior to that the {#count} method is an alias
133
- # for {#length}.
134
- #
135
- # @return integer - the number of layers in the collection
136
- #
137
- # @see #length
138
- #
139
- # @version SketchUp 6.0
140
- def count
141
- end
142
-
143
- # The {#count_folders} method counts the number of folders which are direct
144
- # children of the layer manager.
145
- #
146
- # @api TagFolder
147
- #
148
- # @example
149
- # manager = Sketchup.active_model.layers
150
- # folder = manager.add_folder('Doors')
151
- # num_folders = manager.count_folders
152
- #
153
- # @return [Integer]
154
- #
155
- # @version SketchUp 2021.0
156
- def count_folders
157
- end
158
-
159
- # The {#count_layers} method retrieves the number of layers not in a folder.
160
- #
161
- # @api TagFolder
162
- #
163
- # @example
164
- # layers = Sketchup.active_model.layers
165
- # number = layers.count_layers
166
- #
167
- # @return [Integer]
168
- #
169
- # @see #size
170
- #
171
- # @see #length
172
- #
173
- # @version SketchUp 2021.0
174
- def count_layers
175
- end
176
-
177
- # The {#each} method is used to iterate through all of the layers in the model.
178
- # This include layers that are nested inside folders.
179
- #
180
- # @example
181
- # model = Sketchup.active_model
182
- # layers = model.layers
183
- # layers.add("Test layer")
184
- # layers.each { | layer | puts layer.name }
185
- #
186
- # @note Don't remove content from this collection while iterating over it with
187
- # {#each}. This would change the size of the collection and cause elements to
188
- # be skipped as the indices change. Instead copy the current collection to an
189
- # array using +to_a+ and then use +each+ on the array, when removing content.
190
- #
191
- # @version SketchUp 6.0
192
- #
193
- # @yield [layer]
194
- #
195
- # @yieldparam [Sketchup::Layer] layer
196
- def each
197
- end
198
-
199
- # The {#each_folder} method is used to iterate through the folders that are
200
- # direct children to the layer manager.
201
- #
202
- # @api TagFolder
203
- #
204
- # @example
205
- # manager = Sketchup.active_model.layers
206
- # folder = manager.add_folder('Doors')
207
- # folder = manager.add_folder('Windows')
208
- # manager.each_folder { |folder|
209
- # puts folder.name
210
- # }
211
- #
212
- # @version SketchUp 2021.0
213
- #
214
- # @yield [folder]
215
- #
216
- # @yieldparam [Sketchup::LayerFolder] folder
217
- def each_folder
218
- end
219
-
220
- # The {#each_layer} method is used to iterate through the layers that are not
221
- # inside a layer folder.
222
- #
223
- # @api TagFolder
224
- #
225
- # @example
226
- # model = Sketchup.active_model
227
- # layers = model.layers
228
- # layers.add('Test layer')
229
- # layers.each_layer { | layer | puts layer.name }
230
- #
231
- # @version SketchUp 2021.0
232
- #
233
- # @yield [layer]
234
- #
235
- # @yieldparam [Sketchup::Layer] layer
236
- def each_layer
237
- end
238
-
239
- # The {#folders} method returns the folders of the layer manager.
240
- #
241
- # @api TagFolder
242
- #
243
- # @example
244
- # manager = Sketchup.active_model.layers
245
- # manager.add_folder('Doors')
246
- # manager.add_folder('Windows')
247
- # folders = manager.folders
248
- #
249
- # @note This does not return all the folders in the model, only those that are
250
- # direct children of the layer manager.
251
- #
252
- # @return [Array<Sketchup::LayerFolder>]
253
- #
254
- # @version SketchUp 2021.0
255
- def folders
256
- end
257
-
258
- # The {#layers} method retrieves the layers not in a folder.
259
- #
260
- # @api TagFolder
261
- #
262
- # @example
263
- # manager = Sketchup.active_model.layers
264
- # layers = manager.layers
265
- #
266
- # @return [Array<Sketchup::Layer>]
267
- #
268
- # @version SketchUp 2021.0
269
- def layers
270
- end
271
-
272
- # The {#length} method retrieves the number of layers.
273
- #
274
- # @example
275
- # layers = Sketchup.active_model.layers
276
- # number = layers.length
277
- #
278
- # @return [Integer]
279
- #
280
- # @see #size
281
- #
282
- # @version SketchUp 6.0
283
- def length
284
- end
285
-
286
- # The {#purge_unused} method is used to remove unused layers.
287
- #
288
- # @example
289
- # layers = Sketchup.active_model.layers
290
- # num_layers_removed = layers.purge_unused
291
- #
292
- # @return [Integer] Number of unused layers removed
293
- #
294
- # @see #purge_unused_folders
295
- #
296
- # @version SketchUp 6.0
297
- def purge_unused
298
- end
299
- alias_method :purge_unused_layers, :purge_unused
300
-
301
- # The {#purge_unused_folders} method is used to remove all layer folder with
302
- # no children.
303
- #
304
- # @api TagFolder
305
- #
306
- # @example
307
- # manager = Sketchup.active_model.layers
308
- # folder = manager.add_folder('Doors')
309
- # folder = manager.add_folder('Windows')
310
- # manager.purge_unused_folders
311
- #
312
- # @version SketchUp 2021.0
313
- #
314
- # @yield [folder]
315
- #
316
- # @yieldparam [Sketchup::LayerFolder] folder
317
- def purge_unused_folders
318
- end
319
-
320
- # Remove the given layer from the model, optionally removing the geometry.
321
- #
322
- # @example
323
- # # Remove layer by layer reference.
324
- # layer = Sketchup.active_model.layers.add("MyLayer")
325
- # Sketchup.active_model.layers.remove(layer)
326
- #
327
- # # Remove layer by name.
328
- # Sketchup.active_model.layers.add("MyLayer")
329
- # Sketchup.active_model.layers.remove("MyLayer")
330
- #
331
- # # Remove layer by index.
332
- # Sketchup.active_model.layers.remove(1)
333
- #
334
- # # Remove layer and the entities on the layer.
335
- # edge = Sketchup.active_model.entities.add_line([0, 0, 0], [9, 9, 9])
336
- # edge.layer = Sketchup.active_model.layers.add("MyLayer")
337
- # Sketchup.active_model.layers.remove("MyLayer", true)
338
- #
339
- # @param [Sketchup::Layer, Integer, String] layer
340
- #
341
- # @param [Boolean] remove_geometry
342
- # If true, geometry in the removed layer will
343
- # be removed as well. If false (which is the default),
344
- # this geometry will be placed on Layer 0.
345
- #
346
- # @return [Boolean] true if successful, false if unsuccessful.
347
- #
348
- # @version SketchUp 2015
349
- def remove(layer, remove_geometry = false)
350
- end
351
- alias_method :remove_layer, :remove
352
-
353
- # The {#remove_folder} method removes the folder from the model. All children are
354
- # preserved, but moved up one level.
355
- #
356
- # @api TagFolder
357
- #
358
- # @example
359
- # manager = Sketchup.active_model.layers
360
- # folder = manager.add_folder('Doors')
361
- # manager.remove_folder(folder)
362
- #
363
- # @param [Sketchup::LayerFolder] folder
364
- #
365
- # @raise [ArgumentError] if the +folder+ is not a direct child of the receiver.
366
- #
367
- # @return [nil]
368
- #
369
- # @version SketchUp 2021.0
370
- def remove_folder(folder)
371
- end
372
-
373
- # The {#remove_observer} method is used to remove an observer from the current
374
- # object.
375
- #
376
- # @example
377
- # layers = Sketchup.active_model.layers
378
- # status = layers.remove_observer observer
379
- #
380
- # @param [Sketchup::LayersObserver] observer
381
- #
382
- # @return [Boolean] true if successful, false if unsuccessful.
383
- #
384
- # @version SketchUp 6.0
385
- def remove_observer(observer)
386
- end
387
-
388
- # The {#size} method is an alias of {#length}.
389
- #
390
- # @example
391
- # layers = Sketchup.active_model.layers
392
- # number = layers.size
393
- #
394
- # @return [Integer]
395
- #
396
- # @see #length
397
- #
398
- # @version SketchUp 2014
399
- def size
400
- end
401
-
402
- # The {#unique_name} method can be used to get a string that will be a unique
403
- # layer name inside this collection.
404
- #
405
- # @example
406
- # model = Sketchup.active_model
407
- # layers = model.layers
408
- # # Will return "Joe" since there are probably no other layers named that.
409
- # # Or might return something like "Joe #2" if there is already a layer
410
- # # named Joe.
411
- # good_name = layers.unique_name("Joe")
412
- #
413
- # @overload unique_name
414
- #
415
- # @return [String] Will default to using "Layer" (SketchUp2019 and older)
416
- # or "Tag" as basename for a unique name.
417
- #
418
- # @overload unique_name(base_name)
419
- #
420
- # @param [String] base_name The base name to build the unique name from.
421
- # @return [String]
422
- #
423
- # @version SketchUp 6.0
424
- def unique_name(*args)
425
- end
426
-
427
- end
1
+ # Copyright:: Copyright 2026 Trimble Inc.
2
+ # License:: The MIT License (MIT)
3
+
4
+ # The Layers collection allows you to see and manage all of the layers in a
5
+ # model. You get a pointer to the Layers object from within the Model.
6
+ #
7
+ # @example
8
+ # model = Sketchup.active_model
9
+ # layers = model.layers
10
+ #
11
+ # @note As of SketchUp 2020 "Layers" were renamed to "Tags" in the UI.
12
+ # The API retains the use of "Layer" for compatibility and is synonymous with
13
+ # "Tag".
14
+ #
15
+ # @version SketchUp 6.0
16
+ class Sketchup::Layers < Sketchup::Entity
17
+
18
+ # Includes
19
+
20
+ include Enumerable
21
+
22
+ # Instance Methods
23
+
24
+ # The {#[]} method is used to retrieve a layer by index or name.
25
+ #
26
+ # @example
27
+ # model = Sketchup.active_model
28
+ # layers = model.layers
29
+ # new_layer = layers.add "test layer"
30
+ # layer_by_number = layers[1]
31
+ # layer_by_name = layers["test layer"]
32
+ #
33
+ # @param [Integer, String] index_or_name
34
+ # A number representing the layer's
35
+ # index in an array of Layer objects, or the name of the layer.
36
+ #
37
+ # @return [Sketchup::Layer, nil]
38
+ #
39
+ # @see #at
40
+ #
41
+ # @version SketchUp 6.0
42
+ def [](index_or_name)
43
+ end
44
+
45
+ # The {#add} method is used to add a new layer.
46
+ #
47
+ # If you give the name of a Layer that is already defined, it will return the
48
+ # existing Layer rather than adding a new one.
49
+ #
50
+ # @example
51
+ # layers = Sketchup.active_model.layers
52
+ # layer = layers.add("Test Layer")
53
+ #
54
+ # @param [String] layer_name
55
+ # The name of the added layer.
56
+ #
57
+ # @return [Sketchup::Layer]
58
+ #
59
+ # @version SketchUp 6.0
60
+ def add(layer_name)
61
+ end
62
+ alias_method :add_layer, :add
63
+
64
+ # The {#add_folder} method adds or moves a layer folder.
65
+ #
66
+ # @example
67
+ # manager = Sketchup.active_model.layers
68
+ # folder = manager.add_folder('Doors')
69
+ #
70
+ # @overload add_folder(name)
71
+ #
72
+ # Adds a new folder with the given name. Unlike layers, folders do not
73
+ # need to have a unique name. But the name does have to be non-empty.
74
+ # @param [String] name
75
+ #
76
+ # @overload add_folder(folder)
77
+ #
78
+ # Moves an existing {Sketchup::LayerFolder} to the receiver. This will
79
+ # include any children in the given folder.
80
+ # @param [Sketchup::LayerFolder] folder
81
+ # @see Sketchup::LayerFolder#folder= Information on how which notifications
82
+ # trigger when reparenting an existing folder.
83
+ #
84
+ # @return [Sketchup::LayerFolder]
85
+ #
86
+ # @see #count_layers
87
+ #
88
+ # @version SketchUp 2021.0
89
+ def add_folder(arg)
90
+ end
91
+
92
+ # The {#add_observer} method is used to add an observer to the layers
93
+ # collection.
94
+ #
95
+ # @example
96
+ # layers = Sketchup.active_model.layers
97
+ # status = layers.add_observer observer
98
+ #
99
+ # @param [Sketchup::LayersObserver] observer
100
+ #
101
+ # @return [Boolean] true if successful, false if unsuccessful.
102
+ #
103
+ # @version SketchUp 6.0
104
+ def add_observer(observer)
105
+ end
106
+
107
+ # The {#at} method is an alias for {#[]}.
108
+ #
109
+ # @example
110
+ # model = Sketchup.active_model
111
+ # layers = model.layers
112
+ # new_layer = layers.add "test layer"
113
+ # layer_by_number = layers.at(1)
114
+ # layer_by_name = layers.at("test layer")
115
+ #
116
+ # @return [Sketchup::Layer, nil]
117
+ #
118
+ # @see #[]
119
+ #
120
+ # @version SketchUp 6.0
121
+ def at(index_or_name)
122
+ end
123
+
124
+ #
125
+ # @example
126
+ # layers = Sketchup.active_model.layers
127
+ # number = layers.count
128
+ #
129
+ # @note Since SketchUp 2014 the count method is inherited from Ruby's
130
+ # +Enumerable+ mix-in module. Prior to that the {#count} method is an alias
131
+ # for {#length}.
132
+ #
133
+ # @return integer - the number of layers in the collection
134
+ #
135
+ # @see #length
136
+ #
137
+ # @version SketchUp 6.0
138
+ def count
139
+ end
140
+
141
+ # The {#count_folders} method counts the number of folders which are direct
142
+ # children of the layer manager.
143
+ #
144
+ # @example
145
+ # manager = Sketchup.active_model.layers
146
+ # folder = manager.add_folder('Doors')
147
+ # num_folders = manager.count_folders
148
+ #
149
+ # @return [Integer]
150
+ #
151
+ # @version SketchUp 2021.0
152
+ def count_folders
153
+ end
154
+
155
+ # The {#count_layers} method retrieves the number of layers not in a folder.
156
+ #
157
+ # @example
158
+ # layers = Sketchup.active_model.layers
159
+ # number = layers.count_layers
160
+ #
161
+ # @return [Integer]
162
+ #
163
+ # @see #size
164
+ #
165
+ # @see #length
166
+ #
167
+ # @version SketchUp 2021.0
168
+ def count_layers
169
+ end
170
+
171
+ # The {#each} method is used to iterate through all of the layers in the model.
172
+ # This include layers that are nested inside folders.
173
+ #
174
+ # @example
175
+ # model = Sketchup.active_model
176
+ # layers = model.layers
177
+ # layers.add("Test layer")
178
+ # layers.each { | layer | puts layer.name }
179
+ #
180
+ # @note Don't remove content from this collection while iterating over it with
181
+ # {#each}. This would change the size of the collection and cause elements to
182
+ # be skipped as the indices change. Instead copy the current collection to an
183
+ # array using +to_a+ and then use +each+ on the array, when removing content.
184
+ #
185
+ # @version SketchUp 6.0
186
+ #
187
+ # @yield [layer]
188
+ #
189
+ # @yieldparam [Sketchup::Layer] layer
190
+ def each
191
+ end
192
+
193
+ # The {#each_folder} method is used to iterate through the folders that are
194
+ # direct children to the layer manager.
195
+ #
196
+ # @example
197
+ # manager = Sketchup.active_model.layers
198
+ # folder = manager.add_folder('Doors')
199
+ # folder = manager.add_folder('Windows')
200
+ # manager.each_folder { |folder|
201
+ # puts folder.name
202
+ # }
203
+ #
204
+ # @version SketchUp 2021.0
205
+ #
206
+ # @yield [folder]
207
+ #
208
+ # @yieldparam [Sketchup::LayerFolder] folder
209
+ def each_folder
210
+ end
211
+
212
+ # The {#each_layer} method is used to iterate through the layers that are not
213
+ # inside a layer folder.
214
+ #
215
+ # @example
216
+ # model = Sketchup.active_model
217
+ # layers = model.layers
218
+ # layers.add('Test layer')
219
+ # layers.each_layer { | layer | puts layer.name }
220
+ #
221
+ # @version SketchUp 2021.0
222
+ #
223
+ # @yield [layer]
224
+ #
225
+ # @yieldparam [Sketchup::Layer] layer
226
+ def each_layer
227
+ end
228
+
229
+ # The {#folders} method returns the folders of the layer manager.
230
+ #
231
+ # @example
232
+ # manager = Sketchup.active_model.layers
233
+ # manager.add_folder('Doors')
234
+ # manager.add_folder('Windows')
235
+ # folders = manager.folders
236
+ #
237
+ # @note This does not return all the folders in the model, only those that are
238
+ # direct children of the layer manager.
239
+ #
240
+ # @return [Array<Sketchup::LayerFolder>]
241
+ #
242
+ # @version SketchUp 2021.0
243
+ def folders
244
+ end
245
+
246
+ # The {#layers} method retrieves the layers not in a folder.
247
+ #
248
+ # @example
249
+ # manager = Sketchup.active_model.layers
250
+ # layers = manager.layers
251
+ #
252
+ # @return [Array<Sketchup::Layer>]
253
+ #
254
+ # @version SketchUp 2021.0
255
+ def layers
256
+ end
257
+
258
+ # The {#length} method retrieves the number of layers.
259
+ #
260
+ # @example
261
+ # layers = Sketchup.active_model.layers
262
+ # number = layers.length
263
+ #
264
+ # @return [Integer]
265
+ #
266
+ # @see #size
267
+ #
268
+ # @version SketchUp 6.0
269
+ def length
270
+ end
271
+
272
+ # The {#purge_unused} method is used to remove unused layers.
273
+ #
274
+ # @example
275
+ # layers = Sketchup.active_model.layers
276
+ # num_layers_removed = layers.purge_unused
277
+ #
278
+ # @return [Integer] Number of unused layers removed
279
+ #
280
+ # @see #purge_unused_folders
281
+ #
282
+ # @version SketchUp 6.0
283
+ def purge_unused
284
+ end
285
+ alias_method :purge_unused_layers, :purge_unused
286
+
287
+ # The {#purge_unused_folders} method is used to remove all layer folder with
288
+ # no children.
289
+ #
290
+ # @example
291
+ # manager = Sketchup.active_model.layers
292
+ # folder = manager.add_folder('Doors')
293
+ # folder = manager.add_folder('Windows')
294
+ # manager.purge_unused_folders
295
+ #
296
+ # @version SketchUp 2021.0
297
+ #
298
+ # @yield [folder]
299
+ #
300
+ # @yieldparam [Sketchup::LayerFolder] folder
301
+ def purge_unused_folders
302
+ end
303
+
304
+ # Remove the given layer from the model, optionally removing the geometry.
305
+ #
306
+ # @example
307
+ # # Remove layer by layer reference.
308
+ # layer = Sketchup.active_model.layers.add("MyLayer")
309
+ # Sketchup.active_model.layers.remove(layer)
310
+ #
311
+ # # Remove layer by name.
312
+ # Sketchup.active_model.layers.add("MyLayer")
313
+ # Sketchup.active_model.layers.remove("MyLayer")
314
+ #
315
+ # # Remove layer by index.
316
+ # Sketchup.active_model.layers.remove(1)
317
+ #
318
+ # # Remove layer and the entities on the layer.
319
+ # edge = Sketchup.active_model.entities.add_line([0, 0, 0], [9, 9, 9])
320
+ # edge.layer = Sketchup.active_model.layers.add("MyLayer")
321
+ # Sketchup.active_model.layers.remove("MyLayer", true)
322
+ #
323
+ # @param [Sketchup::Layer, Integer, String] layer
324
+ #
325
+ # @param [Boolean] remove_geometry
326
+ # If true, geometry in the removed layer will
327
+ # be removed as well. If false (which is the default),
328
+ # this geometry will be placed on Layer 0.
329
+ #
330
+ # @return [Boolean] true if successful, false if unsuccessful.
331
+ #
332
+ # @version SketchUp 2015
333
+ def remove(layer, remove_geometry = false)
334
+ end
335
+ alias_method :remove_layer, :remove
336
+
337
+ # The {#remove_folder} method removes the folder from the model. All children are
338
+ # preserved, but moved up one level.
339
+ #
340
+ # @example
341
+ # manager = Sketchup.active_model.layers
342
+ # folder = manager.add_folder('Doors')
343
+ # manager.remove_folder(folder)
344
+ #
345
+ # @param [Sketchup::LayerFolder] folder
346
+ #
347
+ # @raise [ArgumentError] if the +folder+ is not a direct child of the receiver.
348
+ #
349
+ # @return [nil]
350
+ #
351
+ # @version SketchUp 2021.0
352
+ def remove_folder(folder)
353
+ end
354
+
355
+ # The {#remove_observer} method is used to remove an observer from the current
356
+ # object.
357
+ #
358
+ # @example
359
+ # layers = Sketchup.active_model.layers
360
+ # status = layers.remove_observer observer
361
+ #
362
+ # @param [Sketchup::LayersObserver] observer
363
+ #
364
+ # @return [Boolean] true if successful, false if unsuccessful.
365
+ #
366
+ # @version SketchUp 6.0
367
+ def remove_observer(observer)
368
+ end
369
+
370
+ # The {#size} method is an alias of {#length}.
371
+ #
372
+ # @example
373
+ # layers = Sketchup.active_model.layers
374
+ # number = layers.size
375
+ #
376
+ # @return [Integer]
377
+ #
378
+ # @see #length
379
+ #
380
+ # @version SketchUp 2014
381
+ def size
382
+ end
383
+
384
+ # The {#unique_name} method can be used to get a string that will be a unique
385
+ # layer name inside this collection.
386
+ #
387
+ # @example
388
+ # model = Sketchup.active_model
389
+ # layers = model.layers
390
+ # # Will return "Joe" since there are probably no other layers named that.
391
+ # # Or might return something like "Joe #2" if there is already a layer
392
+ # # named Joe.
393
+ # good_name = layers.unique_name("Joe")
394
+ #
395
+ # @overload unique_name
396
+ #
397
+ # @return [String] Will default to using "Layer" (SketchUp2019 and older)
398
+ # or "Tag" as basename for a unique name.
399
+ #
400
+ # @overload unique_name(base_name)
401
+ #
402
+ # @param [String] base_name The base name to build the unique name from.
403
+ # @return [String]
404
+ #
405
+ # @version SketchUp 6.0
406
+ def unique_name(*args)
407
+ end
408
+
409
+ end