# Selecting dynamic components by their components options

**URL:** <https://forums.sketchup.com/t/selecting-dynamic-components-by-their-components-options/275578>\
**Category:** Pro\
**Tags:** dynamiccomponents, selection\
**Created:** [May 30, 2024, 5:50pm UTC](https://forums.sketchup.com/t/selecting-dynamic-components-by-their-components-options/275578 "2024-05-30T17:50:29Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![companyusername](https://avatars.discourse-cdn.com/v4/letter/c/5e9695/32.png) [@companyusername](https://forums.sketchup.com/u/companyusername)\
**Post date:** [May 30, 2024, 5:50pm UTC](https://forums.sketchup.com/t/selecting-dynamic-components-by-their-components-options/275578/1 "2024-05-30T17:50:29Z")

</div>

I have dynamic components for cabinets.  
In Sketchup, is there a way to select the dynamic components based on their value in components options?

The conditions would be like an object w/ A\_ItemCode equal to 33 or any objects w/ B\_CarcassWidth greater than 800mm.

 ![image](https://global.discourse-cdn.com/sketchup/original/3X/1/6/162469a466787646c0d881b071e75aaae48ab7b5.png)

---

<div class="post-metadata">

**Author:** ![ryan.moore](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/ryan.moore/32/106089_2.png) [@ryan.moore](https://forums.sketchup.com/u/ryan.moore)\
**Post date:** [May 31, 2024, 12:07am UTC](https://forums.sketchup.com/t/selecting-dynamic-components-by-their-components-options/275578/2 "2024-05-31T00:07:08Z")

</div>

This could be done with Ruby…

```ruby
model = Sketchup.active_model
sel = model.selection
dict = 'dynamic_attributes'
code33 = []

sel.each do |dc|
  check = dc.get_attribute( dict, 'item_code')
  if check == '33'
    code33 << dc
  end
end

sel.clear
sel.add code33

```

[test.skp](https://forums.sketchup.com/uploads/short-url/sEHYWybhfTrApoD9d6wg0WpxeiP.skp) (98.4 KB)

---

<div class="post-metadata">

**Author:** ![companyusername](https://avatars.discourse-cdn.com/v4/letter/c/5e9695/32.png) [@companyusername](https://forums.sketchup.com/u/companyusername)\
**Post date:** [May 31, 2024, 2:36pm UTC](https://forums.sketchup.com/t/selecting-dynamic-components-by-their-components-options/275578/3 "2024-05-31T14:36:46Z")

</div>

Thank you!

Will you please give some suggestions on how and where to learn Ruby and Sketchup API?  
Because there are many more ideas I want to explore now that I see the power of programming from your answer.

Liked I want to align the selected dynamic components on x-axis with like 10cm distances w/ each other. I think Ruby and Sketchup API can help but no idea where to start.

---

<div class="post-metadata">

**Author:** ![companyusername](https://avatars.discourse-cdn.com/v4/letter/c/5e9695/32.png) [@companyusername](https://forums.sketchup.com/u/companyusername)\
**Post date:** [May 31, 2024, 3:17pm UTC](https://forums.sketchup.com/t/selecting-dynamic-components-by-their-components-options/275578/4 "2024-05-31T15:17:38Z")

</div>

After debugging process, I found that Ruby uses lowercases.

---

<div class="post-metadata">

**Author:** ![rtches](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/rtches/32/131827_2.png) [@rtches](https://forums.sketchup.com/u/rtches)\
**Post date:** [June 1, 2024, 8:18pm UTC](https://forums.sketchup.com/t/selecting-dynamic-components-by-their-components-options/275578/6 "2024-06-01T20:18:10Z")

</div>

> [@companyusername](#):
>
> Ruby

> [@Ruby Learning Resources \[WikiLists\]](https://forums.sketchup.com/t/ruby-learning-resources-wikilists/22861/2):
>
> notebook PRIMERS & GUIDES (A list of primers and introductory guides for learning Ruby.) Ruby Language Primers Ruby Language Primers for v 3.2 - SketchUp 2024.0+ [Primer Index](https://docs.ruby-lang.org/en/3.2/index.html)[Keywords](https://docs.ruby-lang.org/en/3.2/keywords_rdoc.html)[Encodings](https://docs.ruby-lang.org/en/3.2/encodings_rdoc.html)[Global Variables](https://docs.ruby-lang.org/en/3.2/globals_rdoc.html)[Implicit Type Conversions](https://docs.ruby-lang.org/en/3.2/implicit_conversion_rdoc.html)[Regular Expressions](https://docs.ruby-lang.org/en/3.2/regexp_rdoc.html)[Security](https://docs.ruby-lang.org/en/3.2/security_rdoc.html)[Syntax](https://docs.ruby-lang.org/en/3.2/syntax_rdoc.html)[Assignment](https://docs.ruby-lang.org/en/3.2/syntax/assignment_rdoc.html)[Calling Methods](https://docs.ruby-lang.org/en/3.2/syntax/calling_methods_rdoc.html)[Comments](https://docs.ruby-lang.org/en/3.2/syntax/comments_rdoc.html)[Control Expressions](https://docs.ruby-lang.org/en/3.2/syntax/control_expressions_rdoc.html)[Exceptions](https://docs.ruby-lang.org/en/3.2/syntax/exceptions_rdoc.html)[Literals](https://docs.ruby-lang.org/en/3.2/syntax/literals_rdoc.html)[Methods](https://docs.ruby-lang.org/en/3.2/syntax/methods_rdoc.html)[Miscellaneous](https://docs.ruby-lang.org/en/3.2/syntax/miscellaneous_rdoc.html)[Modules and Classes](https://docs.ruby-lang.org/en/3.2/syntax/modules_and_classes_rdoc.html)[Pattern Matching](https://docs.ruby-lang.org/en/3.2/syntax/pattern_matching_rdoc.html)[Precedence](https://docs.ruby-lang.org/en/3.2/syntax/precedence_rdoc.html)[Refinements](https://docs.ruby-lang.org/en/3.2/syntax/refinements_rdoc.html)[Ruby Standard Library Overview](https://docs.ruby-lang.org/en/3.2/standard_library_rdoc.html)play_button Older SketchUp V…

---

<div class="post-metadata">

**Author:** ![ryan.moore](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/ryan.moore/32/106089_2.png) [@ryan.moore](https://forums.sketchup.com/u/ryan.moore)\
**Post date:** [June 1, 2024, 11:13pm UTC](https://forums.sketchup.com/t/selecting-dynamic-components-by-their-components-options/275578/7 "2024-06-01T23:13:34Z")

</div>

Glad it worked for you! @rtches link to Dans resources is a great place to start, and you can always search and post here with questions. It’s a pretty steep learning curve and it can be quite a bit of fun too…
