123456789_123456789_123456789_123456789_123456789_

Class: Sketchup::Importer

Relationships
Inherits: Object

Overview

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.

Examples:

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 Sketchup::Importer::ImportSuccess
  end
end

Sketchup.register_importer(TextImporter.new)

Version:

  • SketchUp 6.0

Constant Summary

Instance Attribute Summary

  • #supports_options? ⇒ Boolean readonly

    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.

Instance Method Summary

  • #description ⇒ Object

    This method is called by SketchUp to determine the description that appears in the File > Import dialog’s pulldown list of valid importers.

  • #do_options ⇒ Object

    This method is called by SketchUp when the user clicks on the “Options” button inside the File > Import dialog.

  • #file_extension ⇒ Object

    This method is called by SketchUp to determine a single file extension is associated with your importer.

  • #id ⇒ Object

    This method is called by SketchUp to determine a unique identifier for your importer, typically something like “com.sketchup.importers.dxf”.

  • #load_file(file_path, status) ⇒ Object

    This method is called by SketchUp after the user has selected a file to import.

Instance Attribute Details

#supports_options?Boolean (readonly)

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.

Examples:

def supports_options?
  return true
end

Returns:

  • (Boolean)

    supports_options - a boolean

Version:

  • SketchUp 6.0

Instance Method Details

#descriptionObject

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.

Examples:

def description
  return "Custom Text Importer (*.txt)"
end

Returns:

  • description - a brief string description

Version:

  • SketchUp 6.0

#do_optionsObject

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.

Examples:

def id
  return "com.sketchup.importers.custom_txt"
end

Returns:

  • id - an id string

Version:

  • SketchUp 6.0

#file_extensionObject

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.

Examples:

def file_extension
  return "txt"
end

Returns:

  • extension - typically a 3-letter string

Version:

  • SketchUp 6.0

#idObject

This method is called by SketchUp to determine a unique identifier for your importer, typically something like “com.sketchup.importers.dxf”.

Examples:

def id
  return "com.sketchup.importers.custom_txt"
end

Returns:

  • id - an id string

Version:

  • SketchUp 6.0

#load_file(file_path, status) ⇒ Object

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:

- Sketchup::Importer::ImportSuccess
- Sketchup::Importer::ImportFail
- Sketchup::Importer::ImportCanceled - SketchUp will show a "cancelled" dialog
- Sketchup::Importer::ImportFileNotFound - SketchUp will show a "not found" dialog

Examples:

def load_file(file_path, status)
  # Here is where you would open the file and process it.
  puts file_path

  return Sketchup::Importer::ImportSuccess
end

Parameters:

  • file_path

    Absolute path to the file the user selected

  • status

    The status of the import so far. Contains true.

Returns:

  • success - an integer status code. See above.

Version:

  • SketchUp 6.0