Components don't appear in "Component Option" Window

@colin Do you know if this has been fixed yet in DC v1.7.0 ?

Most of what you ever say is beyond me. What is the least amount of information you can give me that I can then check for what is not working?

See Yogesh’s post …

… and my post, same thread …

EDIT: Actually same thread, last poster confirms the bug has not been fixed yet.

@allusernametaken, the bug that was fixed I believe is the one where the model object has no #deleted? method.

So the only thing you can do is avoid folder names that start with any of the special escape characters I list in my post linked above.

@colin @DanRathbun
It happens only when I open up Components Options window w/o any component selected on mac OS. If I select a component first then open up the window, there’s no bug.

it happens to all of my components and files on mac OS. I just need to close and restart Sketchup if I forget to have a component selected when opening Components Options window.


Does it specifically happen (or not) to the DC Training components that ship with SketchUp ?


BTW, I don’t see it happening on Windows edition with DC extension ver 1.7.0.
But weirdly another user on Windows reports it happening.

You never actually answered the question of whether any of the folders in the component path, the component filename itself, or your user path folders begins with any of the control characters.

not sure what you mean by the DC Training components that ship with Sketchup. But I started using Sketchup last month and noticed this last week. I deleted the extension and re-installed from 3D warehouse. but still happens.

No control characters.

“Out of the box” the SketchUp Components inspector panel looks like this …

image

These are two folders of sample components that “ship” with SketchUp.
(You can navigate upwards using the droplist to the right of the house icon.)

If you choose the latter, you see a listing of training components.
I just tested using the “Cafe Table”, and I did not see what you described.

image

Ie … I inserted an instance. Then switched back to the Select tool, and clicked empty space to clear the selection. Then, opened the DC Options dialog.
I then selected the Cafe Table instance and the dialog was populated with option attributes as expected.


You mentioned restarting SketchUp and then the dialog works as expected.

Is this a new blank model that you restart into when it works ?

Or do you double click on a .skp file in finder to restart SketchUp ?

I realized what you had asked now. The \u issue normally only happens in Windows, where it is very easy to accidentally name a file starting with ‘u’, and the \ comes from the Windows path. I am sure that is still a problem.

On Mac you can make the same error happen by starting the file name with ‘\u’, which it seems is a legal filename, that happens to trigger the same Unicode related problem.

So, no, it isn’t fixed.

I went back to read the original post, and yes, what you say seems to be the case. Opening Component Options when a component is already select (any kind of component), gives you a working window for the rest of the session. Opening Component Options when no component is selected, gives you a non-working window for the rest of the session.

There is one thing you need to do to make sure the problem happens. First open Component Attributes, then open Component Options, and now select a component. The attributes change to show the change, but options doesn’t. If instead you open those windows when a component is selected, both windows work, and both update when you select a different component.

I found that there is a bug report about this, and it was being looked at again because of more recent reports. I am linking this post to the bug report.

1 Like

Ah, okay … Yes I see this on Windows as well. It is a weird one.

And … I also just checked and this old error has not yet been fixed.
The error is reported now (v1.7.0) at line 212 instead of 200, but the erroneous call to model.deleted? is still in there.

@colin, AND I just confirmed that the NoMethodError due to #deleted? getting called upon the model object, is what is causing the problem with the Options dialog.

Put your Options dialog into the error state where it will not populate when you click on a DC component.

At the console, paste in this command …

$dc_observers.get_latest_class.refresh_dialogs(true)

You should see the error displayed thus …

Error: #<NoMethodError: undefined method `deleted?' for
 #<Sketchup::Model:0x000001b044a6b198>>
c:/users/%UserName%/appdata/roaming/sketchup/sketchup 2020/sketchup/plugins/
su_dynamiccomponents/ruby/dcclass_overlays.rbe:212:in `block in pull_attribute_tree'

Now let’s give the Sketchup::Model class a temporary #deleted? method.
Paste in this definition …

class Sketchup::Model; def deleted?; !valid?(); end; end

… it simply defines the method that calls the existing #valid? method but negates the result and returns it. This satisfies the DC’s pull_attribute_tree method’s conditional statement, so it doesn’t raise an exception.

Now, again execute the refresh dialogs method call …

$dc_observers.get_latest_class.refresh_dialogs(true)

The Options dialog populates ! Yeah! (The crowd goes wild!) :cheer:


So for a fix, a fix script can be dropped into the Plugins folder …

unless Sketchup::Model.method_defined? :deleted?
  class Sketchup::Model
    def deleted?
      !valid?()
    end
  end # class
end # unless

Do y’all realize that I reported this 5 YEARS AGO ! … back in v1.3.2 ?

Ruby Errors in Dynamic Components

… but as this thread shows people were having issues back in DEC of 2014.

1 Like

:clap: :smiley:

Thanks for the fix, @DanRathbun !
In case anyone has the same problem, I needed help from @TIG to know how to install the .rb file you make from DanRathbun’s code:

If you have a lone .rb file [e.g. you are writing your own Ruby code] then you will need to access your Plugins folder to add it.
It that case use this snippet in the Ruby Console + [enter] to open that folder…

UI.openURL("file:///#{Sketchup.find_support_file('Plugins')}")

Once again … before you try my temporary fix, FIRST be sure to update the Dynamic Components extension to version 1.8.0 or higher and see if the bugs are gone.

(My “fix” was meant to be temporary and was discussed before the DC extension was revised to v 1.8.0.)


In general practice, you should always first check for new releases that fix bugs rather than apply temporary “hack patches”.

Sorry for causing confusion here. Installing 1.8.0 as DanRathbun suggests worked for me also.

1 Like

Hi All,

I am new to DC. Been trying to develop some over the past few days. I was just beginning to gain an understanding of the topic and they stopped working. As can be seen in the attached screenshot, I have the latest version of DC. I have SU 2019,2020,2021,2022 Pro installed on my machine. No DCs work ( components do not appear in Options window). This includes DCs downloaded from the 3D Warehouse. I have deleted and reinstalled the DC plugin from the Extension Warehouse, closed and reopened SU, rebooted my PC, etc… all to no avail. I am not comfortable delving into the ruby script at this moment. I have an additional question. When I activate the “Extensions” tab, should all of my enabled extensions be displayed? As can be seen, they are not. I welcome any assistance to solve this problem. Thank You.

Hi All,

After a closer reading of the above thread, I found that if I selected the component BEFORE opening the Component Options Window, it works! However, I still have the question of why all of my extensions are not listed when the “Extensions” tab is active.

Not all extensions have a submenu or item under the Extensions menu. Some are on the other menus and others only have context items that appear on the right-click context popup menu, within certain scenarios such as specific types of objects selected.

Still others might be utilitarian in nature, such as an importer that only appears on the filetype list of the import dialog.

1 Like

Thank You Dan!