Skip to main content
Skip Navigation LinksHome  Extending the Spotfire Platform  Creating Extensions to the Spotfire Platform

©Spotfire 2011

Creating Extensions to the Spotfire Platform

A Spotfire solution to a complex problem may require a design with several specialized extensions. Still, a single extension based on an SDK example project will often do. The examples are fully functional solutions to common problems, and there are many ways to combine them.


Developers use the Spotfire SDK and the Spotfire API to automate, integrate and extend the TIBCO Spotfire platform. This page lists the extension points and solutions that can be created, often by extensions available in the SDK.

For Spotfire 2.0 and 2.1 extension development, refer to procedures based on the earlier Package Builder application.

See also:
  • Extending the Spotfire Platform
    The Spotfire platform can be extended programmatically. It provides concepts and APIs to solve analytic problems by adding custom capabilities.
  • Extensions
    A Spotfire extension is the smallest functional unit added to the platform. It is developed in Visual Studio® and is included in a Spotfire add-in, enabling versioning, licensing, deployment and loading.
  • Spotfire SDK
    The SDK provides required Spotfire developer resources: the Spotfire Extension Project Template, development assemblies, example projects, and the Package Builder application wrapping the extensions for deployment.
  • Licensing Extensions
    A Spotfire license controls access to a specific extension. The license is enabled in the Administration Manager tool for the group which should have access to it.

Extension Points

There are overviews for most extension points, including a guide to the use of the corresponding project in the SDK. Additional code samples are sometimes provided for common or creative usage.

The following tables list the extension types in the left column. Each cross in the columns to the right indicates a required or (optional) set of Visual Studio project building at least one assembly (DLL) and a Package Builder project defining an intended client and building a package (SPK).

Presentation Extension Types

The presentation layer provides extension points enabling new analytic actions and the rendering of data.

Presentation layer extensions
Extension Type Core Forms Web
Tools are versatile and it is therefore important to be clear on the context of operation, which is defined by a parameter when inheriting from the CustomTool.
Key SDK example: The SpotfireDeveloper.CustomToolsExample. Explains how to prompt users for input to custom application, document, page or visualization level automation jobs. This project implements four tools that extend the plots, pages, and the application capabilities. The example also illustrates how to use custom licenses together with tools.
*Spotfire Web Player only supports prompting, using a web form, for custom export from 3.0.
  • Creating a Tool
    A tool performs an analytic action. It operates in the context it is defined for.
    Available from 2.0.
  • Creating a Table Context Menu
    In addition to hooking in a context menu tool on a table, table context tools may be hooked in on column as well as cell level.
    SDK example: SpotfireDeveloper.CustomToolsExample. Contains a table plot cell context tool, a copy cell value tool, and a custom help.
    Available from 2.2.
  • How to Create an Information Link Tool
    An information link is a configured request to a database. Information link configuring and opening can be automated. The API provides methods to find a link, to get and set its parameters, and launch the browse information link user interface. This tutorial describes a tool populating parameters on an informaton link.
    SDK example: SpotfireDeveloper.InformationLinkToolExample
    Available from 2.2.
  • How to Create an Export Tool
    This tutorial describes how to create a tool for Spotfire Professional and Spotfire Web Player that exports the active page in the analysis to an HTML page.
    SDK examples: SpotfireDeveloper.HtmlPrintToolExample, SpotfireDeveloper.HtmlPrintToolExampleForms and SpotfireDeveloper.HtmlPrintToolExampleWeb. Provide code also for advanced custom export.
    Available from 3.0.
    SDK example: SpotfireDeveloper.ExportToolExample. Shows how to implement a tool that exports a visualziation to a web page.
    Available from 2.0.
  • Adding Custom Help Files
    Help documentation can be integrated in Spotfire. First custom help files are registered, then tools can integrate with their own help file.
    SDK example: SpotfireDeveloper.CustomToolsExample
    Available from 2.2.
X (X) (X)*
  • Creating a Visualization
    A visualization is a visual displaying data in Spotfire. A custom visualization defines a unique visualization, implementing model, view, and possibly using additional components.
    SDK example: SpotfireDeveloper.CustomVisualsExample with SpotfireDeveloper.CustomVisualsExampleForms. Explain how to implement custom and configured visuals (plots) for Spotfire Professional and Enterprise Player, and how to use these together with custom licenses. The project implements custom charts, plots and other forms of presentation within an analysis document page based on the current set of filtered and marked data.
    Available from 2.0. These examples are updated to 2.2.
    SDK Example: SpotfireDeveloper.CustomVisualsExample with SpotfireDeveloper.CustomVisualsExampleWeb. Similar to the previous example, but implements the visualizations for display the Spotfire Web Player, that is an environment handling the client-server boundary using a web browser.
    Available from 2.2.
Fitting Model
  • Creating a Fitting Model
    Curve fitting is the process of calculating values from visualization coordinates and input parameters, to draw reference curves and points.
    SDK example: SpotfireDeveloper.CustomFittingModelExample
    Available from Spotfire 2.1.
X (X)
Table Value Renderer
  • Creating a Table Value Renderer
    Table value renderers render values in table visualization columns. The most common scenario is to turn data values into images, which are rendered in the table cells.
    SDK example: SpotfireDeveloper.CustomValueRendererExample
    Available from 2.2.
X (X)
SDK example: SpotfireDeveloper.CustomPanelExample
Available from 2.0.

Enrichment Extension Types

The enrichment layer provides extension points improving existing data or creating new data from existing data tables.

Enrichment layer extensions
Extension Type Core Forms Web
Virtual Table Column
  • Creating a Virtual Table Column Producer
    Some columns contain data that loads slowly, typically because of slow databases. Loading this kind of data into ordinary columns is impractical. Virtual column producers create columns that render only the cells actually viewed: Cell values are fetched on a need-to-view basis.
    SDK example: SpotfireDeveloper.CustomVirtualColumnExample
    Available from 2.2.
X (X)
Row Method / Column Method / Aggregation / Calculation
SDK example: SpotfireDeveloper.CalculationMethodExample. Shows how to add custom aggregations, expression functions, and statistical methods that automatically re-execute on data update events. The project contains four custom calculation methods extending Spotfire's built-in methods.
Available from 2.0.

Preparation Extension Types

The preparation layer provides extension points for data access, export and shaping on import.

Preparation layer extensions
Extension Type Core Forms Web
  • Creating a Transformation
    Transformations are applied to data when loading it into Spotfire, shaping the data to the desired form before analyzing it.
    SDK example: SpotfireDeveloper.CleanupTransformationExample. Implements a Pivot transformation.
    Available from 2.1.
X (X)
Preference Object
Preferences Objects, also known as Configuration Sets, are collections of application attributes that can be shared by users and groups of users.
SDK example: SpotfireDeveloper.PreferenceObjectsExample. Illustrates how to use Preference Objects. The example also contains an implementation of a custom panel.
Available from 2.0.
Data Writer
A Data Writer exports data to a custom file format.
SDK example: SpotfireDeveloper.CustomDataWriterExample. Exports data to an XML file using ADO.NET.
Available from 2.0.
Data Source
A custom Data Source loads linked data, data not saved in the analysis file, from a data source not generically supported, and saves its settings to the analysis file.
SDK example: SpotfireDeveloper.FileDataSourceExample. Implements a custom file data source which can be used to import ADO.NET XML data sets saved with the SpotfireDeveloper.CustomDataWriterExample.
SDK example: SpotfireDeveloper.CustomDataSourceExample. Explains how to import data from a custom file format. This project creates a data source capable of opening files from a HTTP resource locator.
Available from 2.0.
X (X)

Platform and Application Integration Extension Types

Extension Type Core Forms Web
Custom Authentication
  • Implementing Web Player Custom Authentication
    The Web Player Custom Authentication framework enables the development of a different authentication mechanism than the ones available out-of-the-box.
    SDK example: SpotfireWebDeveloper.CustomWebAuthenticationExample
    Available from 2.1.
Automation Interface (Spotfire COM Automation)
  • Creating an Automation Interface
    Spotfire can be controlled from another client. The inter-process communication is established via COM, making the desired functionality of the automation interface in Spotfire available to the remote client.
    SDK example: SpotfireDeveloper.ComAutomationExample. This example explains how to send and receive properties, events and commands to and from an external application. The project implements two examples of how to start and control Spotfire using COM. Note that it is considerably more advanced than the other SDK examples.
    Available from 2.0.

Concepts and APIs

Some platform capabilities do not rely on extension points, but lower level concepts and APIs.

Event Driven Updates
  • Periodic and Event Driven Updates
    An external process may update a Spotfire Web Player analysis. The EMS Updater in the Spotfire Web Player server may be used to act on EMS MapMessages, or, alternatively, the Update Analysis Web Service may respond to web service calls.
    Available from 3.0.
Mashup (Spotfire Web Player Automation)
  • Integrating with Spotfire Web Player
    The JavaScript API can be used to create Web Player mashups. The Web Player can be integrated with other applications and programmed to handle Web Player interactions.
    SDK example: SpotfireDeveloper.WebAutomationExample
    Available from 2.1.
Configuration Block
  • Creating a Configuration Block
    A configuration block configures the initial state of an analysis. It has two sections: a list of parameter assignments and a list of configuration statements.
    SDK example: SpotfireDeveloper.ParameterizedAnalysisToolExample
    Available from 2.1.
SDK example: SpotfireDeveloper.CalculationMethodExample
See also: Spotfire Axis Expressions
Available from 2.0.
  • Creating Threads
    Threading is used when some work needs to be performed asynchronously. Properly used it may enhance the end user experience considerably, but it also requires a fair amount of work, so it is only recommended for scenarios where it will make a difference.
    SDK example: SpotfireDeveloper.CustomWorkerExample
    Available from 2.2.