Skip to content

workspace sdk components

Andre Lafleur edited this page Apr 24, 2026 · 8 revisions

About components

Components are the extension points of the Workspace SDK. They allow modules to add functionality to Security Center client applications such as Security Desk and Config Tool. Each component type serves a specific purpose: rendering content in tiles, adding widgets to dashboards, extending maps, encoding credentials, and more.

Not all component types are available in both applications. Dashboard widgets require Security Desk. Standard map components such as providers, view builders, layers, searchers, importers, and panels are available in both applications. Map designer components are specific to Config Tool. Credential components and image extractors are also available in both applications.

Use this page when you need to choose the Workspace component type that matches a scenario, compare where component families run, or find the detailed page for a specific extension point.

How workspace components fit in a module

  1. A workspace module creates a component instance during Load().
  2. The module calls Initialize(Workspace) on that component.
  3. The module registers it with Workspace.Components.
  4. Security Center discovers and uses the component when the corresponding UI or workflow needs it.
  5. When the module unloads, it unregisters the component.

Shared components are a separate mechanism from Workspace.Components. Use Workspace.SharedComponents and Monitor.SharedComponents to consume built-in shared UI components. For details, see About shared components.

Component

All components inherit from a specialized abstract class such as ContentBuilder, TileWidgetBuilder, or DashboardWidgetBuilder. These classes inherit from the Component base class, which provides the shared registration and initialization infrastructure.

Do not inherit from Component directly. Each specialized component class seals the Type property to return a predefined identifier that the system uses to route the component to the correct consumer. Inheriting from Component directly produces a component that the system does not know how to use.

Component members

Member Type Description
Name Property (abstract) Display name for the component.
UniqueId Property (abstract) Unique identifier for this component instance. Each component must return a distinct GUID.
Type Property (abstract) Component type identifier. Sealed by each specialized class. Do not override this yourself.
IsAvailable Property Whether the component is currently available. Defaults to false. Set to true after initialization.
Workspace Property The workspace instance. Available after Initialize(Workspace) is called.
Initialize(Workspace) Method Initializes the component with the workspace. Call this before registering the component.
Initialize() Method (protected virtual) Override to perform setup after Workspace is available. Called by Initialize(Workspace).

Registering workspace components

Register and unregister components through Workspace.Components:

public class SampleModule : Module
{
    private MyContentBuilder m_component;

    public override void Load()
    {
        m_component = new MyContentBuilder();
        m_component.Initialize(Workspace);
        Workspace.Components.Register(m_component);
    }

    public override void Unload()
    {
        Workspace.Components.Unregister(m_component);
    }
}

ComponentCollection members

Member Description
Register(Component) Register a component with the workspace.
Unregister(Component) Remove a component from the workspace.
this[Guid type] Get all registered components of the specified type as a ReadOnlyCollection<Component>.
this[Guid type, Guid id] Get a specific component by type and unique identifier.
Count The number of registered components.

Component type identifiers

Genetec.Sdk.Workspace.Components.Components is the static catalog of component type GUIDs used by the specialized Workspace component base classes. In normal extension code you rarely read these fields directly because each specialized component class seals Type for you, but the identifiers are useful when you inspect Workspace.Components, compare component families, or read API tables.

Common identifiers include:

Identifier Used by
Components.ContentBuilder ContentBuilder
Components.TileWidgetBuilder TileWidgetBuilder
Components.TileViewBuilder TileViewBuilder
Components.ImageExtractor ImageExtractor
Components.BadgePrinter BadgePrinter
Components.CredentialEncoder CredentialEncoder
Components.CredentialReader CredentialReader
Components.CardholderFieldsExtractor CardholderFieldsExtractor
Components.CustomActionBuilder CustomActionBuilder
Components.MapObjectProvider MapObjectProvider
Components.MapObjectViewBuilder MapObjectViewBuilder
Components.MapLayerBuilder MapLayerBuilder
Components.MapSearcher MapSearcher
Components.MapPanelBuilder MapPanelBuilder
Components.MapImporter MapImporter

The SDK also exposes identifiers for other specialized families such as logon providers, incidents, pinnable content builders, and timeline providers. The detailed guides for those families call out the exact Type value that each abstract base class returns.

Component types

The SDK provides the following component types. Each type has a dedicated abstract class to inherit from.

Tile components and content builders

These components extend Security Desk's tile-based monitoring interface.

Component Base class Description
Content builder ContentBuilder Controls what appears inside tiles. Handles entity drag-and-drop, events, and alarms by producing ContentGroup and Content objects. The system calls builders in priority order and uses the first non-null result.
Tile widget TileWidgetBuilder Adds collapsible panels to the right-side controls area when a tile is selected. Displays supplementary information or controls related to the tile content.
Tile view TileViewBuilder Renders overlays and custom visualizations directly inside the tile area. Supports placement over video, below the toolbar, or as full-tile content.
Tile properties TilePropertiesBuilder Adds configuration tabs to the bottom of the right-side controls panel alongside the built-in "General" tab.

See About content builders for content builder usage guidance.

See About tile extensions for tile widget, tile view, and tile properties usage guidance.

Dashboard widget components

Component Base class Description
Dashboard widget DashboardWidgetBuilder Adds widgets to Security Desk dashboards. The builder creates DashboardWidget instances that provide visual content and configuration options.

See About dashboard widgets for dashboard widget usage guidance.

Map extension components

These components extend Security Center's mapping capabilities. Map components are available in both Security Desk and Config Tool.

Component Base class Description
Map panel MapPanelBuilder Adds panels to the map interface.
Map searcher MapSearcher Implements map search. Override Search(MapSearcherContext) to return IList<MapSearcherResult> with matching locations.
Map importer MapImporter Imports external map data. Returns MapImporterResult.
Map object provider MapObjectProvider Supplies custom objects for display on maps.
Map object view MapObjectViewBuilder Builds visual representations of custom map objects.
Map layer MapLayerBuilder Adds custom overlay layers to maps.
Map designer tool MapDesignerTool Adds tools to the map designer in Config Tool.
Map designer widget MapDesignerWidget Adds widgets to the map designer in Config Tool.

See About map extensions for map component usage guidance.

Credential and cardholder components

These components extend cardholder and credential management. They are available in both Security Desk and Config Tool.

Component Base class Description
Badge printer BadgePrinter Implements badge printing through IBadgeService.
Credential encoder CredentialEncoder Encodes credential data to external hardware. Override Encode(CredentialEncoderData).
Credential reader CredentialReader Reads credential data from external hardware. CardholderCredentialReader provides a specialized variant for cardholder workflows.
Cardholder fields extractor CardholderFieldsExtractor Imports cardholder data from external sources such as HR systems, vCard files, or custom integrations. Extracts fields like name, email, photo, credentials, and group assignments.

See About badge printers for badge printer usage guidance.

See About credential encoders for credential encoder usage guidance.

See About credential readers for credential reader usage guidance.

See About cardholder fields extractors for cardholder fields extractor usage guidance.

Image extractors and timeline providers

Component Base class Description
Image extractor ImageExtractor Captures images from external sources for cardholder photos, custom fields, and entity thumbnails. Available in both Security Desk and Config Tool.
Timeline provider TimelineProviderBuilder Provides data for timeline visualizations. The TimelineProvider class inherits from DependencyObject, not Component. Register providers through TimelineProviderBuilder.

See About image extractors for image extractor usage guidance.

See About timeline providers for timeline provider usage guidance.

Specialized component types

Component Base class Description
Pinnable content builder PinnableContentBuilder Creates visual content for pinnable popups (floating panels) in monitor windows.
Logon provider LogonProvider Customizes sign-in behavior for Security Center client applications.
Custom action CustomActionBuilder Adds custom actions to the event-to-action system. The builder creates CustomActionView instances for configuring the action.
Incident IncidentBuilder Adds custom incident types to the incident management system. The builder creates IncidentView instances for editing incident data.

See About pinnable content builders for pinnable content builder usage guidance.

See About logon providers for logon provider usage guidance.

See About custom actions for custom action usage guidance.

See About incidents for incident usage guidance.

See also

Platform SDK

Plugin SDK

Workspace SDK

Media SDK

Macro SDK

Web SDK

Media Gateway

Genetec Web Player

Clone this wiki locally