Importing Shapefiles (shp) to SketchUp (skp)



I’ve modified the Shapefile importer to add a geolocation option. Starting with an empty inch model, it will set the model location to the lower left corner of the import and scale everything appropriately. Just export it as a KMZ file and import it into Google Earth. While the calculations originally used elliptic interpolation of the radius (depending on the latitude), it appears that Google Earth uses the equatorial radius of 3963.2 miles and assumes the Earth is a sphere.

The new plugin:

The model: (990.2 KB)

The KMZ file: NorthEndz.kmz (603.7 KB)

If you import the original shapefile (northendish.shp) into Google Earth, you can compare the two interpretations … they’re very, very close. I suspect that importing smaller regions would map more accurately. The shapefile import treats each lot as a separate entity as opposed to all of them plotted as one large flat area.

Hope this helps …


Hey Jim!

The shape file importer is working really really well for me now at the neighborhood parcel level. Thank you so much for making this!

Here’s a screenshot of the 3D neighborhood masterplan that I’ve been working on:

I’m now working on importing shape files for all of the building in Southeast michigan into SketchUp, but every time I try, SketchUp freezes.

Here’s a link to a folder w the shp file in in:

Any suggestions on how I can get this to work?

I also have the building height data for each of these structures (not sure if that information is in the shape files or not, but I have it in a CSV file that I’m also including in the folder) and I was hoping to create a 3D model that reflects the building heights as well.


Hi again @tysongersh -

I downloaded your files and ran a sample import with about 4200 buildings. Unfortunately, I have to head to work now and won’t be able to reply in more detail until about five hours from now.

Your screenshot looks awesome, BTW :slight_smile:



I need to try that shapefile importer. I’ve been using the QGIS to DXF method and made a tutorial to show the potential challenges to avoid:

I also use the same DXF export process to get Open Street Map info (.OSM) into SU. I’m not aware of an OSM to SU plugin but would love to know if it exists or is under development.


You might give this a try … I generally use it with the file that is exported from

"SketchUp plugin to import Open Street Map (OSM) XML files (using a scale factor of 10,000 or more is recommended). Tested with 2015 & 2016 using Windows and Macs. "

Like most of my imports, it treats raw data as inches … you’ll have to scale the results.


I only imported the first 4202 buildings, but they seem to come in okay with no scaling. These are the settings I used:



The “MEDIAN_HGT” field (it’s the same in the database as in the Excel spreadsheet) is probably accurate for “brick-shaped” buildings, but stepped or terraced buildings may not be accurate. I selected the “PARCEL_ID” as the name of each building so that I could cross-reference that with the Excel spreadsheet to get street address, etc.

I happened to pick on the Renaissance Village Apartments since they stood out so distinctly. I mapped an aerial image over the import and added an OSM import (in blue) just for fun.

Can you reproduce this with the first 4202 buildings? Or maybe try these settings with your bounding box values? (I forget what you used before and I’m too lazy to look back to find it).



So, when I import the shapefile it all comes in at once. How can I try importing a fraction of the full file? Saw your comment above - been using openstreetmap a bunch lately and great to know a way to get SketchUp to interact with it. I’d like to add this giant file of fairly detailed info to open st. map somehow if possible.

I spent 16 hours straight hand drawing the building footprints for a neighborhood the other day and then came across this dataset and wanted to cry because they already had it all with more detail than what I did.


You can change the number of PolyItems to something less than 420294, but this will only pick up the first ones in the database. You can also adjust the maximum/minimum values to something like this:


Xmin 13468518.882149257
Ymin 319793.52719511825
Xmax 13476788.882149257
Ymax 330460.52719511825

This grabs most of your area of interest, I believe:

The numbers in your new database appear to be in feet from some distant reference point. Your earlier dataset was in GPS coordinates. You can generally tell this from the max/min values you see when you select the database.


Yes, I was able to do the 4202 buildings no problem - thanks for walking me through the parameters options - very helpful!

The MEDIAN_HGT column is apparently the “median height in feet from 2008 LiDAR data. A value of 0 indicates that the median height is unknown”.

The STORIES column is “Number of stories. For single family residential this number is expressed in quarter fractions from 1 to 3 stories: 1:00, 1.25, 1.50, etc.”

For, for example, the property located at 957 Calvert has the following numbers:

The structure itself looks like this:

Is this really a 1 story building with median height of 24’?

I think the LiDAR data is measuring all of the heights of the structure for every square in of the footprint, and then calculating the median (so, the abundance of porch roofs alone would distort the heigh values of the housing stock in Detroit). I think the # of stories is the result of some algorithm that determines how many feet above ground the roof starts at. Since 957 Calvert has a roof that “starts” at the top of the first floor, it’s called a 1 story house.

I wonder if there’s a way to use these two separate data points per property to create a higher degree of resolution? Not sure, but maybe it says "if a building type is single family residential and the roof starts on the first floor and the median height is over 15’, then the shape of the structure is probably a semi-a-frame house (or whatever you call the specific style of architecture 957 Calvert is).

Would love to hear your thoughts on this!

So, back to the original question, if I can get 4202 building shapes to work, how can I get the rest of them? Looks like I can target specific areas at a time - should I just take that route, or is there a more systematic way of doing it?

Also, how are you determining Xmin, Xmax, Ymin, and Ymax? I’m assuming those are the 4 corners of a target area, but in what format is 13468518.8821149257? I’m going to try some google search to figure it out in the meantime

I managed to import my neighborhood, but now I can’t seem to get the SEMCOG Building Shapes (white) to line up with the parcels (multi colored rectangles) or the shapes I have from the OpenStreetMap import (yellow). It’s weird, for certain buildings I have the EXACT dimensions of - for example 7432 Brush St. because we own that - and if I group all the semcog shapes and move it by the 7432 brush building shape to line up at the exact same point, they line almost perfectly - within 3 inches of any side kind of thing.

I just took a measurement and it looks like the semcog shapes aren’t perfectly square within themselves. As in, they are like trapezoidal within themselves.

How can I get these to work within themselves better? Here’s a link to the file in google drive for convenience:

note: the parcel dimensions aren’t perfect, but they were the closest I was able to get w the shape file importer. I’d love to be able to get everything plum, level, and square (or at least as much as possible)

Update: I’ve managed to get the shape files for all of the parcels in the City of Detroit and all of the SEMCOG shape files to align really nicely in GQIS and AutoCad (see images)

Now I just need to be able to figure out how to do this in sketch and my life will be complete

Also, and sorry for all of the questions, but do you think it would be possible to add a feature to the shaprefile importer that would allow one to import different colored shapes? So, for example, if one had done a property condition report for all of the structures in a defined area and had a column labeling the condition for each object as “1” (bad), “2” (stable), or “3” (good), could that number be used to color all of the shapes? Theoretically, you could also do the same when importing the parcel files as well, which would allow you to color code those differently (i.e. color code the parcels by ownership - so that you could visualize the distribution of blighted properties that were owned by the City government or something). That would be a really amazing data visualization strategy


I read them from the shapefile file. They describe the bounding box of the data.

It’s in whatever format the people creating the database wanted it to be.

Here’s a screenshot from the ESRI file specifications:



Circling back on all of this. Do you think that if I tried to import all the buildings all at once that it would work, but just take a long time to load? I’m giving it a try and have the spinning wheel of death going, but am thinking that if I wait long enough it’ll turn out - I’m on like 1 hour now.


I imported one building:


In its simplest form, this one has 18 entities: 6 faces and 12 edges in one group. By extension, 420,294 groups with a minimum 18 entities each gives a minimum of 7,565,292 entities. Note that the more complex shapes require more than 18 entities.

For example, this building has 66 entities in its group:


I suspect that the import reaches a limit at some point and spends 99% of the remaining time paging blocks of data to and from the drive. I’m pretty sure it will finish, but it might take a long, long time.


Right now i am trying to import shapefile of watersupply pipelines in sketchup. Is there any Plugins?
Please help
thanks in advance.


Can you share the shapefile? Somewhere earlier in this thread is a link to an importer you can try:

#35 (21.0 KB) (3.0 KB)

tHESE are the files. thanks for replying. I tried with shapefile importer and one Enjshape-master. I got tried with the same link you shared. Nothing is displayed on the screen.


I ran the Spirix Shapefile Importer and got this for the pipes:


However, when I tried to import the LTPoles, I get this error (in the Ruby Console window):

.shx does not contain polygons or polylines!

This would indicate the the light poles are not polygons or polylines, but something else. I’m on my lunch break right now, but when I get home this evening, I’ll look deeper into the LTpoles data and see if I can figure out more for you.


Thank you so much… To be frank I didnt got what you said.
which version of sketchup you have used?
I am also using Spirix Shapefile Importer. still am not getting any result.:frowning: what will the fault am making?