SketchUp IFC Manager extension

Can you share an example or gif where the bsdd is used?

Great job! I use IFC Manager a lot. I recently uploaded an extension called “Add Ifc Quantities to selection” to complete IFC parameters with quantities. With your plugin I can use Sketchup model for Bim5D

1 Like

Why isn’t this extension on the Extension Warehouse?
It definitely should be there!

1 Like

Never heard anything back from the development team on my e-mail Another Rubyzip problem - #9 by tt_su

It seems that Ifc is not important for them. Even considering that the hard work is done. Trimble Connect read ifc perfectly and writing info from Sketchup is easy. @brewsky did an enormous job. I published an extension to attach quantities to items and ifc manager exports them to ifc

It’s difficult to contact with them. @colin helped me to contact with them.

ping @tt_su

@paddyclown Can you please give this pre-release version a try to see if it fixes the SketchUp 2023 issue?

I updated the bundled version of rubyzip to the latest version in the hope it will fix something I’m not able to replicate myself. So no guarantees… :crossed_fingers:

1 Like

:frowning: an, sorry to report that no, no joy…
"Error Loading File C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/loader.rb
Error: #<REXML::ParseException: #<NoMethodError: undefined method <<' for #<Sketchup::Set:0x000001e2948508e0>> C:/Program Files/SketchUp/SketchUp 2023/Tools/RubyStdLib/rexml/parsers/baseparser.rb:558:in parse_attributes’
C:/Program Files/SketchUp/SketchUp 2023/Tools/RubyStdLib/rexml/parsers/baseparser.rb:378:in pull_event' C:/Program Files/SketchUp/SketchUp 2023/Tools/RubyStdLib/rexml/parsers/baseparser.rb:183:in pull’
C:/Program Files/SketchUp/SketchUp 2023/Tools/RubyStdLib/rexml/parsers/treeparser.rb:23:in parse' C:/Program Files/SketchUp/SketchUp 2023/Tools/RubyStdLib/rexml/document.rb:288:in build’
C:/Program Files/SketchUp/SketchUp 2023/Tools/RubyStdLib/rexml/document.rb:45:in initialize' C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/lib/skc_reader.rb:63:in new’
C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/lib/skc_reader.rb:63:in block in set_properties' C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/lib/rubyzip/zip/file.rb:97:in open’
C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/lib/skc_reader.rb:59:in set_properties' C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/lib/skc_reader.rb:49:in initialize’
C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/settings.rb:262:in new' C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/settings.rb:262:in block in read_classifications’
C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/settings.rb:260:in each_pair' C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/settings.rb:260:in read_classifications’
C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/settings.rb:171:in load_settings' C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/loader.rb:76:in module:IfcManager
C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/loader.rb:30:in <module:BimTools>' C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/loader.rb:29:in <top (required)>’
C:/Program Files/SketchUp/SketchUp 2023/Tools/extensions.rb:197:in require' C:/Program Files/SketchUp/SketchUp 2023/Tools/extensions.rb:197:in load’
C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager.rb:48:in register_extension' C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager.rb:48:in module:IfcManager
C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager.rb:33:in <module:BimTools>' C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager.rb:30:in <top (required)>’

Exception parsing
Line: 2
Position: 394
Last 80 unconsumed characters:

C:/Program Files/SketchUp/SketchUp 2023/Tools/RubyStdLib/rexml/parsers/baseparser.rb:410:in rescue in pull_event' C:/Program Files/SketchUp/SketchUp 2023/Tools/RubyStdLib/rexml/parsers/baseparser.rb:332:in pull_event’
C:/Program Files/SketchUp/SketchUp 2023/Tools/RubyStdLib/rexml/parsers/baseparser.rb:183:in pull' C:/Program Files/SketchUp/SketchUp 2023/Tools/RubyStdLib/rexml/parsers/treeparser.rb:23:in parse’
C:/Program Files/SketchUp/SketchUp 2023/Tools/RubyStdLib/rexml/document.rb:288:in build' C:/Program Files/SketchUp/SketchUp 2023/Tools/RubyStdLib/rexml/document.rb:45:in initialize’
C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/lib/skc_reader.rb:63:in new' C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/lib/skc_reader.rb:63:in block in set_properties’
C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/lib/rubyzip/zip/file.rb:97:in open' C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/lib/skc_reader.rb:59:in set_properties’
C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/lib/skc_reader.rb:49:in initialize' C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/settings.rb:262:in new’
C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/settings.rb:262:in block in read_classifications' C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/settings.rb:260:in each_pair’
C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/settings.rb:260:in read_classifications' C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/settings.rb:171:in load_settings’
C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/loader.rb:76:in <module:IfcManager>' C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/loader.rb:30:in module:BimTools
C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/bt_ifcmanager/loader.rb:29:in <top (required)>' C:/Program Files/SketchUp/SketchUp 2023/Tools/extensions.rb:197:in require’

"
is still what came back
I previously removed the older offending 4.3.1 version
and installed via plugin manager>install>rbz

I have no idea what is doing this :frowning:

@brewsky Standard libraries should not even know of the existence of Sketchup::Set.

Standard libraries (and your extensions,) should be using the Ruby standard Set.

Sketchup::Set is deprecated.

Thanks @DanRathbun, I imagine that @brewsky will understand… I’m sorry that I’m not educated enough to do so :frowning:

Well somewhere, some extension seems to have reassigned the top level Set identifier to point at Sketchup::Set, which is a very BIG naughty “no-no” !

I didn’t even know a Sketchup::Set version existed… I went through all of my code AND the bundled rubyzip. Not a single Sketchup::Set… Really weird… I can’t imagine another initialisation of Set would end up in the Sketchup scope. And the rubyzip / rexml combo isn’t heavily embeded, rubyzip gets a filepath to unpack which content gets passed to rexml.

Somewhere… theres an interesting thought…
@paddyclown is it possible to test without any other plugins installed? Just to be sure?
I don’t know what the most thorough way is to do this, maybe temporarily move the entire folder “C:/Users/VIVARCHI/AppData/Roaming/SketchUp/SketchUp 2023/SketchUp/Plugins/” to your desktop.
Sketchup automatically restores any files it needs there.

Then, as said, some other extension is setting the top level ::Set identifier to point at Sketchup::Set, which is not desirable because (as we see here) it affects everthing !

The documentation for Sketchup::Set explicitly shows doing this so called “Compatibility Shim” within a custom module. There is a warning comment in this code snippet that says …

  • # Warning! Do NOT do this in the global namespace!

It would be better (I think) to use the Extension Manager to manually switch off all extensions except Dynamic Components and the IFC Manager extension.
Open Ruby console, and Restart SketchUp.
Then switch on the 1st half of the extensions, and restart.
If you see the error it is in that half off the extensions. If, not it must be in the latter half.

Basically, this is called a binary search. It’s the quickest way to find something in a list.
The collection is cut in half, and the half still containing the target is determined.
Then that half is cut in half, and repeat until the target is found.

1 Like

Jan, just tried and it works when there’s no other plugins !
■■■■, now we have to figure out which other plugin is in conflict…
But I still don’t understand why it all worked fine in SU22 & only started being problematic after installing SU23
HéHo

1 Like

:smiley: given the number I’ve got installed, that’s still going to take a while !

Got a better way, … I hope. Open the Ruby console and execute this …

Object.const_source_location(:Set)

with all the extensions switched back ON.

Tried that, still got no joy :frowning: What was it supposed to to ?

It is supposed to list the Ruby file that has redefined the :Set constant.

Please paste the results here.