The Importer interface lets you build your own importers for SketchUp. To
use this, you create a subclass of Importer and implement all of the
methods described below. This will make your importer appear in the list
that users see under File > Import, and you can use Ruby to do all of the
work of opening the file and creating whatever you need inside SketchUp.
Here is an example of a complete script that imports a .txt file and
displays its contents in a messagebox.
class TextImporter < Sketchup::Importer
# This method is called by SketchUp to determine the description that
# appears in the File > Import dialog's pulldown list of valid
# importers.
def description
return "Custom Text Importer (*.txt)"
end
# This method is called by SketchUp to determine what file extension
# is associated with your importer.
def file_extension
return "txt"
end
# This method is called by SketchUp to get a unique importer id.
def id
return "com.sketchup.importers.custom_txt"
end
# This method is called by SketchUp to determine if the "Options"
# button inside the File > Import dialog should be enabled while your
# importer is selected.
def supports_options?
return true
end
# This method is called by SketchUp when the user clicks on the
# "Options" button inside the File > Import dialog. You can use it to
# gather and store settings for your importer.
def do_options
# In a real use you would probably store this information in an
# instance variable.
my_settings = UI.inputbox(['My Import Option:'], ['1'],
"Import Options")
end
# This method is called by SketchUp after the user has selected a file
# to import. This is where you do the real work of opening and
# processing the file.
def load_file(file_path, status)
UI.messagebox(file_path)
return 0 # 0 is the code for a successful import
end
end
Sketchup.register_importer(TextImporter.new)
This method is called by SketchUp to determine the description that appears
in the File > Import dialog's pulldown list of valid importers.
Though it is common for the description to include the file extension
supported by the importer (such as "Text Importer (.txt)"), the actual
extension is defined in the file_extension method.
Returns:
def description return "Custom Text Importer (*.txt)" end
This method is called by SketchUp when the user clicks on the "Options"
button inside the File > Import dialog. You can use it to gather and store
settings for your importer.
Only applicable if the importer supports options, meaning its
supports_options method returns true.
Returns:
def id return "com.sketchup.importers.custom_txt" end
This method is called by SketchUp to determine a single file extension is
associated with your importer. Only files that match this extension will be
shown to the user as they browse their harddrive for things to import.
Ruby importers are only allowed to support a single extension.
Returns:
def file_extension return "txt" end
This method is called by SketchUp to determine a unique identifier for your importer, typically something like "com.sketchup.importers.dxf".
Returns:
def id return "com.sketchup.importers.custom_txt" end
This method is called by SketchUp after the user has selected a file to
import. This is where you do the real work by opening the file via Ruby's
File object and processing it in whatever way you need.
You must return an integer success code to SketchUp when you are done.
These are the codes that SketchUp understands and what will happen when
SketchUp receives each key.
Arguments:
Returns:
def load_file(file_path, status) # Here is where you would open the file and process it. UI.messagebox(file_path) return 0 # Success end
This method is called by SketchUp to determine if the "Options" button inside the File > Import dialog should be enabled while your importer is selected.
Returns:
def supports_options? return true end