ImFusion SDK 4.3
Workspaces API

Basic scripting and snapshot functionality. More...

+ Collaboration diagram for Workspaces API:

Detailed Description

Basic scripting and snapshot functionality.

Workspaces allow for restoring a session or automate the execution of a series of data loading and algorithms in a similar fashion as scripting. The description of a workspace is encapsulated in the Workspace class that formalizes the individual aspects of a workspace and provides functionality for import/export from/to workspace (*.iws) files. The definition and execution of workspaces is closely coupled to the ApplicationController interface.

The WorkspaceConversionRegistry and WorkspaceConversionFunction interfaces provide versioning functionality to migrate workspaces that have been written by older versions of the SDK to newer versions of the ImFusion SDK.

Users can view, create and modify workspaces (to a certain limit) via the WorkspaceEditor.

Workspace File Structure

Version 14 Workspace files have the following Structure

<propertyfile version="1.1">
<param name="workspaceVersion">14</param>
<property name="Algorithms">
<property name="[Algorithm Name]">
<param name="inputUids">[Stringlist of input data UID]</param>
<param name="outputUids">[Stringlist of output data UID]</param>
<param name="execute">[0|1]</param>
<param name="...">[Further algorithm-specific configuration]</param>
</property>
...
</property>
<property name="Interface">
<param name="outputUids">[Stringlist of output data UID]</param>
<param name="inputUids">[Stringlist of input data UID]</param>
</property>
<property name="Datasets">
<property name="Data">
<param name="uid">[String UID used for cross-referencing]</param>
<param name="name">[Name in DataModel]</param>
<param name="...">...</param>
<property name="Components">
[Serialized list of DisplayOptions2d, DisplayOptions3d, and TransformationStash DataComponents]
</property>
</property>
...
</property>
<property name="Annotations">
<property name="[Annotation Type]">
<param name="parentDataUid">[Optional Parent Data UID]</param>
<param name="referenceDataUid">[Optional Reference Data UID]</param>
<param name="frame">[Optional attached frame]</param>
<param name="...">[Further annotation-specific configuration]</param>
</property>
</property>
<property name="DataWidget">
[DataWidget configuration]
</property>
<property name="Display">
<param name="layoutMode">0</param>
<param name="focusedView">1</param>
<property name="VisibleData">
...
</property>
[further view configuration]
</property>
</propertyfile>

Workspaces

The Interface property serves the compounding of workspaces by defining their inputs and outputs similar to functions. One can run the proxy algorithm "Run Workspace" on a child workspace from a parent workspace. The child could expect any number of inputs. The mapping is analogous to a function call: the child expects "dataY", the parent inputs "dataX" then it takes the name "dataY" in the body of the child. The outputs work in a similar fashion.

See also
Placeholders in Workspace Files

Classes

class  ParseFolderAndRunWorkspaceAlgorithm
 Algorithm to parse through folder structures and run a workspace on individual files. More...
 
class  ParseFolderAndRunWorkspaceAlgorithmController
 Controller for the algorithm parsing folders and running a workspace on them. More...
 
class  Workspace
 Workspaces allow for restoring a session or automate the execution of a series of data loading and algorithms in a similar fashion as scripting. More...
 
struct  WorkspaceConversionFunction
 Structure to describe a conversion of workspace files between different versions. More...
 
class  WorkspaceConversionRegistry
 Singleton to manage registered workspace conversion functions and apply them to workspace file. More...
 
Search Tab / S to search, Esc to close