3D solids produced in FME are split into polygons/entities when imported to SketchUp

Hey

I have an FME script that produces 3D solids buildings from sqlite data and outputs it into several formats.

I am also trying to output into Sketchup format .skp.

My problem is that when I open Sketchup the model is split into entities/individual polygons. It needs to be kept as a solid so one building can be selected in Sketchup.
All other formats keep solids as produced so I was hoping it’s maybe something about Sketchup settings or file formats?

I was also thinking if maybe there are scripts or tools that can loop through a folder of skp files:
Open .skp file → Group all entities → Save → Close file → take the next file etc etc

Does anyone have experience with this?

I posted this on FME website as well. In case someone stumbles upon the same problem: FME Community

Thanks!

if you import the individual .skp files into an existing SU model they will come in as solids if the geometry constitutes a solid…

can you post a couple of example files…

john

Hey John

Thanks for the input. I tried already uploading individual files and they do resolve as a solid. However I need a whole district of a city and SU doesn’t keep the coordinate system, so all buildings just fall into the same space. Or maybe it’s my poor use of SU?
Also is there a way to upload several files at once? I’d rather not upload thousand buildings one by one :wink:

In the meantime I got a workaround and used .dwg files instead of skp. Import into SU + explode, did the trick

one way to place the SU files would be to append a position to the name…

e.g. city_hall–200-588-10.skp

then using ruby Class: Sketchup::Entities — SketchUp Ruby API Documentation

path = '<full path to>/city_hall--200-588-10.skp'
position = File.basename(path, '.skp').split(/--/)[-1].split(/-/).map(&:to_f)
point = Geom::Point3d.new(position)
transform = Geom::Transformation.new(point)

model = Sketchup.active_model
entities = model.active_entities
definitions = model.definitions
componentdefinition = definitions.load(path)
instance = entities.add_instance componentdefinition, transform

if doing a full folder you’d create a method and pass each file to the method…

SU uses inches internally, so you need to convert either when creating the skp or when importing it…

john