<%NOJS_WARNING%>

KISTERS Logo KISTERS logo

XML API Documentation

Scroll PDF
XMLAPI Documentation

Table of contents

General

All methods, events or types marked as BETA are subject to change until their final release.

Structure

Methods

Every method execution consists of a "Call" and a "Response" as XML.
All Available methods are listed under General.

Each "Call" is structured as in the following example.

<Call Method="MethodName" CustomId="CustomId" Response="true/false">
    <!-- Parameter are placed here -->
</Call>

The "Method" attribute contains the name of the method which should be executed.
The "Response" attribute is optional and specifies if a response should be generated. Valid values are"true" and "false". Default value is "true".
The "CustomId" attribute is optional. If present, the "Response" will also carry this "CustomId".
Each "Response" is structured as in the following example.

<Response Method="MethodName" CustomId="CustomId" Error="ErrorCode">
    <!-- Parameter are placed here -->
    <!-- Warnings are placed here -->
</Response>

The "Method" attribute contains the name of the executed method.

The "Error" attribute indicates if the method execution was successful or if an error occurred.

The "CustomId" attribut is only present if the "Call" has a "CustomId".


Event

<Event Type="EventName">
    <!-- Parameter are placed here -->
</Event>

The "Type" attribute contains the name of the executed event.


Methods

ActivateConfigurationView

Activates the ConfigurationView at the specified position.

Call:

Parameter Type Description
Position
optional
UINT Position of the ConfigurationView
Name
optional
string Name of the ConfigurationView. If multiple views have the same name, the first one is chosen.

Example:

<Call Method="ActivateConfigurationView">
    <Position>2</Position>
</Call>
<Call Method="ActivateConfigurationView">
    <Name>Initial view</Name>
</Call>

ActivateGraphicalCompare

Activates graphical compare.

The selection must contain 2 nodes or, if the selection is empty, the model must contain 2 root nodes.

Call:

Parameter Type Description
Activate bool If set to "true", graphical compare will be activated.

Example:

<Call Method="ActivateGraphicalCompare">
    <Activate>true</Activate>
</Call>

ActivateInteraction

Activates the specified interaction mode.

Parameter Type Description
Interaction Interaction Specifies the interaction which should be activated.

Note: activation/deactivation of boundary condition (BoundaryCondition_Axis...) is handled differently, please refer to TransformChanged.

Example:

<Call Method="ActivateInteraction">
    <Interaction>Measurement_PointCoordinate</Interaction>
</Call>

ActivateIllustrationMode

Activates the Illustration Mode (not concurrent). The function returns when all necessary wires have been computed and Illustration is active.

Example:

<Call Method="ActivateIllustrationMode">
</Call>

ActivateNextConfigurationView

Activates the next ConfigurationView.
If the last ConfigurationView is active, nothing will happen.

Example:

<Call Method="ActivateNextConfigurationView"></Call>

ActivateOnSaveConfigurationView

Activates the special "OnSave" configuration view that contains the scene state when it was last saved.

Example:

<Call Method="ActivateOnSaveConfigurationView" />

ActivatePrevConfigurationView

Activates the previous ConfigurationView.
If the first ConfigurationView is active, nothing will happen.

Example:

<Call Method="ActivatePrevConfigurationView"></Call>

ActivateSavedSelections

Activates one or more saved selections.

Call:

Parameter Type Description
Index
[multiple]
UINT Indices of saved selections to select.

Example:

<Call Method="ActivateSavedSelections">
    <Index>0</Index>
    <Index>1</Index>
</Call>

ActivateSelectedCoordinateSystem

Activates the selected "CoordinateSystem".

Example:

<Call Method="ActivateSelectedCoordinateSystem"></Call>

AddEventListener

Adds an event listener.

Parameter Type Description
Event
[multiple]
Event Specifies the event which should be added.

Example:

<Call Method="AddEventListener">
    <Event>ActivateInteraction</Event>
    <Event>DeactivateInteraction</Event>
</Call>

AlignCallouts

Aligns either all selected callouts or all available callouts, if no selection was made beforehand.

Example:

<Call Method="AlignCallouts" />

AlignRootNodes

Aligns root nodes in a line or a plane to arrange them next to each other.

Parameter Type Description
Mode UINT Mode of alignment: 1 = Line, 2 = Plane

Example:

<Call Method="AlignRootNodes" />
    <Mode>1</Mode>
</Call>

AlignSolidToSolid

Aligns a solid to another solid, so that it fits best. Solids should be similar.
The bestfit option can be used as a first step to overlay alignment before comparing two versions.

Requieres either 2 selected nodes, or 2 root nodes.
The first solid ist aligned to the second one.

Example:

<Call Method="AlignSolidToSolid" />

AlignView

Aligns the view.

Parameter Type Description
Alignment AlignViewOption View alignment

Example:

<Call Method="AlignView">
    <Alignment>Top</Alignment>
</Call>

AssignCalloutIdToBillOfMaterialRow

Assigns the given callout id to the row's nodes.

Call:

Parameter Type Description
RowId UINT Row id
CalloutId string Callout id

Example:

<Call Method="AssignCalloutIdToBillOfMaterialRow">
    <RowId>0</RowId>
    <CalloutId>123</CalloutId>
</Call>

CenterHandles

Centers the handles of the functions section or transformation in the view.

Example:

<Call Method="CenterHandles">
    <CenterHandleMode>Section</CenterHandleMode>
</Clall>
<Call Method="CenterHandles">
    <CenterHandleMode>Transform</CenterHandleMode>
</Clall>

ClearBillOfMaterialCalloutId

Clears the assigned callout of every node contained in the specified row.

Call:

Parameter Type Description
RowId UINT Row id

Example:

<Call Method="ClearBillOfMaterialCalloutId">
    <RowId>0</RowId>
</Call>

ClearBillOfMaterialCalloutIds

Clears the assigned callout of every node contained in the bill of material.

Example:

<Call Method="ClearBillOfMaterialCalloutIds" />

ClearCustomIds

Clear the CustomIds of nodes.

Call:

Parameter Type Description
NodeId
[multiple]
NodeId NodeIds of the target nodes.
If none are provided, the current selection will be used.
InvertedSelection bool = false Clear the CustomIds of nodes, which are not listed / selected.

Example:

<Call Method="ClearCustomIds">
    <NodeId>34</NodeId>
    <NodeId>35</NodeId>
    <InvertedSelection>false</InvertedSelection>
</Call>

ClearTextSearch

Clears/Resets text search and selected highlights of the current scene.

Example:

<Call Method="ClearTextSearch" />

ClearValidationData

Clears the validation data

Example:

<Call Method="ClearValidationData" />

ClearView

Clears the view.

Example:

<Call Method="ClearView"></Call>

Close

Closes the active scene.

Example:

<Call Method="Close"></Call>

CloseAll

Closes all open scenes.

Example:

<Call Method="CloseAll"></Call>

ColorNodeFacesUnique

Colors all faces of a node or nodes with a unique color.

Call:

Parameter Type Description
NodeId
[multiple, optional]
NodeId NodeId(s) of the Node(s) which should be changed.
If none are provided, the selection will be used.
If nothing is selected, all nodes will be colored.
OneColorPerInstance
[optional]
bool = false Nodes which share the same geometry (instances) are colored in the same way.

Example:

<Call Method="ColorNodeFacesUnique">
    <NodeId>67</NodeId>
    <NodeId>89</NodeId>
    <OneColorPerInstance>true</OneColorPerInstance>
</Call>    

ColorNodesUnique

Colors nodes with a unique color.

Call:

Parameter Type Description
NodeId
[multiple, optional]
NodeId NodeId(s) of the Node(s) which should be changed.
If none are provided, the selection will be used.
If nothing is selected, all nodes will be colored.
OneColorPerInstance
[optional]
bool = false Nodes which share the same geometry (instances) are colored in the same way.

Example:

<Call Method="ColorNodesUnique"></Call>

Compute

Triggers a computation.

Call:

Remarks: Remarks: If not stated otherwise under Special Responses, every call to Compute returns a simple response without any parameters.

Parameter Type Description
Mode ComputationMode Computation mode

Example:

<Call Method="Compute">
    <Mode>BillOfMaterial</Mode>
</Call>

Note: Some modes might return multiple error codes.
Those will appear as a list of <ErrorCode> elements in the response body.

Additional Call Parameters:

  • Mode SectionGeometry
Parameter Type Description
Type CuttingPlaneMode Geometry type to create
Step
[optional]
float Enables creation of multiple geometries spaced by the given stepping value (in scene units)
Creates section geometries underneath the cutting plane and can only be a positive value.
  • Mode BillOfMaterial
Parameter Type Description
ResponseWithResult
[optional]
bool = true The result will be included in the response => see GetBillOfMaterial
  • Mode Draft
Parameter Type Description
Direction
[optional]
float3 Draft direction. If not provided, the scene's draft direction will be used.
HideOldNodes
[optional]
bool = true Hide the nodes the draft was calculated on. Set this to false if you want to perform multiple computations back to back.

Special Responses:

  • Mode ProjectedArea =>

    <Response Method="Compute" Error="ERR_SUCCESS">
        <Mode>ProjectedArea</Mode>
        <Area>123</Area>
    </Response>
    
  • Mode Split =>

    <Response Method="Compute" Error="ERR_SUCCESS">
        <Mode>Split</Mode>
        <SplitSessionId>0</SplitSessionId>
        <SplitSessionName>Session0</SplitSessionName>
        <SplitDirectionId>0</SplitDirectionId>
        <SplitDirectionName>Direction0</SplitDirectionName>
        <SplitGroupUpColor>#ffaaccbb</SplitGroupUpColor>
        <SplitGroupUpNumPatches>5</SplitGroupUpNumPatches>
        <SplitGroupDownColor>#ffaaccbb</SplitGroupDownColor>
        <SplitGroupDownNumPatches>5</SplitGroupDownNumPatches>
        <SplitGroupUnassignedColor>#ffaaccbb</SplitGroupUnassignedColor>
        <SplitGroupUnassignedNumPatches>5</SplitGroupUnassignedNumPatches>
        <SplitFullExplodeDistance>100.0</SplitFullExplodeDistance>
    </Response>
    
  • Mode BillOfMaterial, if call parameter ResponseWithResult is true => see GetBillOfMaterial

  • Mode Inertia =>

<Response Method="Compute" Error="SUCCESS">
    <Inertia>
        <InertiaPrincipalMoments M1="..." M2="..." M3="..."/>
        <InertiaMoments IoxG="..." IoyG="..." IozG="..."/>
        <InertiaProducts IxyG="..." IxzG="..." IyzG="..."/>
    </Inertia>
</Response>
  • Mode Draft =>

    <Response Method="Compute" Error="ERR_SUCCESS">
        <NodeId>123</NodeId>
        <NodeId>129</NodeId>
    </Response>
    

ComputeExactCompare

Executes "ExactCompare". The selection must contain 2 nodes or, if the selection is empty, the model must contain 2 root nodes.

Example:

<Call Method="ComputeExactCompare"></Call>

ConvertDXFVersion

Converts DXF input file into another version.
Can also convert into binary DXF files.
Purge removes all unused items, such as block definitions and layers.

Parameter Type Description
FileName Filename Name of the DXF input file (full path).
OutputFileName FileName Name of the DXF output file (full path).
Version Version Version of the DXF output file.
Binary
[optional]
bool = false Output file will be binary DXF file.
Purge
[optional]
bool = false Removes unused items from DXF output file.

Example:

<Call Method="ConvertDXFVersion">
    <FileName>C:\input.dxf</FileName>
    <OutputFileName>C:\output.dxf</OutputFileName>
    <Version>R32</Version>
    <Binary>true</Binary> <!-- optional -->
    <Purge>true</Purge> <!-- optional -->
</Call>

ConvertVSXMLFileToNestedSTEP

Converts a VSXML input file into one master STEP assembly file with nested external references (AP214-CC06).
The VSXML input file must contain references to already existing STEP files (.stp).
All transformations of STEP file references in VSXML are preserved, the structure is rebuilt with only one deeper level to ensure maximum compatibility with most STEP file readers.
The VSXML node names must match the part names in the step files for some STEP file readers.

Input VSXML file, output STEP file.

Parameter Type Description
FileName FileName Name of the VSXML input file (full path).
OutputFileName FileName Name of the STEP output file (full path).
Hierarchical bool Write nodes as hierarchical tree structure

Example:

<Call Method="ConvertVSXMLFileToNestedSTEP">
    <FileName>C:\assembly.vsxml</FileName>
    <OutputFileName>C:\assembly.stp</OutputFileName>
    <Hierarchical>true</Hierarchical>
</Call>

ConvertVSXMLToNestedSTEP

Converts VSXML input into one master STEP assembly file with nested external references (AP214-CC06).
The VSXML input must contain references to already existing STEP files (.stp).
All transformations of STEP file references in VSXML are preserved, the structure is rebuilt with only one deeper level to ensure maximum compatibility with most STEP file readers.
The VSXML node names must match the part names in the step files for some STEP file readers.

Input VSXML data, output STEP file.

Parameter Type Description
VSXML VSXML VSXML structure referencing STEP files
OutputFileName FileName Name of the STEP output file (full path).
Hierarchical bool Write nodes as hierarchical tree structure

Example:

<Call Method="ConvertVSXMLToNestedSTEP">
    <!--VSXML-->
    <OutputFileName>C:\assembly.stp</OutputFileName>
    <Hierarchical>true</Hierarchical>
</Call>

CopyNodes

Adds nodes to the clipboard to be pasted or moved to other positions in the structure tree.

Parameter Type Description
NodeIds NodeId Node(s) to be copied.
Cut bool Should the nodes be deleted after paste?
Sort bool Should the nodes be sorted like in the structure tree?

Example:

<Call Method="CopyNodes">
    <SceneId>1</SceneId>
    <NodeId>34</NodeId>
    <NodeId>56</NodeId>
    <Cut>true</Cut>
    <Sort>true</Sort>
</Call>

CreateCalloutGroup

Creates a new callout group from the current selection.

Response:

Parameter Type Description
NodeId NodeId Id of the created callout node if request was successful.

Example:

<Call Method="CreateCalloutGroup" />

<Response Method="CreateCalloutGroup" Error="SUCCESS">
    <NodeId>123</NodeId>
</Response>

CreateConfigurationView

Creates a new ConfigurationView. The view is positioned at the end of the list of views.

Call:

Parameter Type Description
Name string Optional: Custom name.

Example:

<Call Method="CreateConfigurationView"></Call>
<Call Method="CreateConfigurationView">
      <Name>Foo</Name>
</Call>

CreateCoordinateSystem

Creates a coordinate system from the given parameter(s).

Parameter Type Description
Position
[optional]
float3 Anchor of the coordinate system.
Normal
[optional]
float3 Normal (Z-axis) of the coordinate system.
Direction
[optional]
float3 Other direction (X-axis) of the coordinate system. Must be perpendicular to Normal.
Activate
[optional]
bool = false Activate coordinate system after creation.

If no position is provided, it will be (0, 0, 0). If no direction is provided, a random coordinate system is created with the normal as its Z-axis. If neither direction nor normal are provided, it will be an identity coordinate system.

Example:

<Call Method="CreateCoordinateSystem">
    <Position>
        <X>100</X>
        <Y>0</Y>
        <Z>0</Z>
    </Position>
    <Normal>
        <X>1</X>
        <Y>1</Y>
        <Z>1</Z>
    </Normal>
    <Normal>
        <X>1</X>
        <Y>-1</Y>
        <Z>0</Z>
    </Normal>
</Call>

<Response Method="CreateCoordinateSystem" Error="SUCCESS">
    <NodeId>130</NodeId>
</Response>

CreateGlareEffect

Call:

Parameter Type Description
NodeId
[multiple]
NodeId Optional: NodeIds of Nodes for which glare effects should be created.
If no Ids get passed, a glare effect will be applied to every selected node.
Name string Optional: Custom name for all nodes, which will be created.
If the parameter is not used the name of the new node will be similar to the node for which the effect is created.
CustomId CustomId Optional: Custom id for all nodes, which will be created.
If the parameter is not used the id will either be similar to the custom identierier of its reference node or empty if the reference nodes does not contain any custom id.
FileName FileName Optional: Name of the texture file which will be used for the glare effect.

Example:

<Call Method="CreateGlareEffect">
    <NodeId>85</NodeId> <!-- optional -->
    ...
    <NodeId>#Node5879</NodeId> <!-- optional -->
    <Name>Glare Effect</Name> <!-- optional -->
    <CustomId>Part32B.2_GlareEffect</CustomId> <!-- optional -->
    <FileName>fileName.png</FileName> <!-- optional -->
</Call>

<Response Method="CreateGlareEffect" Error="SUCCESS" />

CustomDimensioning

Creates custom dimensioning with specific properties. The text normal, start and end positions are mandatory parameters. Default values are derived from the scene's existing dimensioning settings.

Call:

Parameter Type Description
Name [optional] Name Custom Name for the Dimensioning Node.
CustomId [optional] CustomId Identifier for the custom dimensioning.
ParentId [optional] NodeId Node id of the parent Node.
Select [optional] bool Specifies if the custom dimensioning is selected. Default is false.
Direction [optional] CoordinateDirection Specifies the coordinate direction for the custom dimensioning.
Start Anchor Start anchor properties for the custom dimensioning.
End Anchor End anchor properties for the custom dimensioning.
Text Text Text properties for the custom dimensioning.
Background [optional] Background Background properties for the custom dimensioning.
Frame [optional] Frame Frame properties for the custom dimensioning.
Line [optional] Line Line properties for the custom dimensioning.

AnchorProperties

Parameter Type Description
Position float3 Position for the anchor.
Type [optional] AnchorEndType Type for the anchor (e.g., Arrow, Sphere).
Scale [optional] float Scale factor for the anchor.

TextProperties

Parameter Type Description
Height [optional] float Height for the text.
Normal float3 Normal vector for the text.
Origin [optional] float3 Origin for the text.
Offset [optional] float2 2D Offset in the with origin and normal defined plane from the origin for the text.
Rotation [optional] float Rotation for the text.
Position [optional] MarkupTextPosition Position for the text (e.g., Top, Bottom).
Docked [optional] bool Docks the Text to the measurement line.
Prefix [optional] string Prefix for the text.
Font [optional] string Font name for the text.
FontSize [optional] UINT Font size for the text.
Color [optional] RGB Color of the text.
ShowUnit [optional] bool Specifies if the unit is shown.
Unit [optional] LengthUnit Unit for the text (e.g., Millimeter, Inch).
Precision [optional] UINT Precision for the text.

BackgroundProperties

Parameter Type Description
Visible [optional] bool Specifies if the background is visible.
Color [optional] RGB Color for the background.

FrameProperties

Parameter Type Description
Type [optional] FrameType Type for the frame (e.g., Rectangle).
Visible [optional] bool Specifies if the frame is visible.
Color [optional] RGB Color for the frame.

LineProperties

Parameter Type Description
Color [optional] RGB Color for the line.
Width [optional] float Width for the line.
Knockout [optional] bool Specifies if knockout is enabled for the line.
ShowDirect [optional] bool Specifies if direct helper line is shown.
ShowHelper [optional] bool Specifies if additional helper lines are shown.

Example:

<Call Method="CustomDimensioning">
    <CustomId>#YourCustomId</CustomId>
    <Select>false</Select>
    <Direction>X</Direction>

    <Start>
        <Position>
            <X>50.71161715023053</X>
            <Y>6.138636646058059</Y>
            <Z>0.0</Z>
        </Position>
        <Type>Arrow</Type>
        <Scale>0.1</Scale>
    </Start>

    <End>
        <Position>
            <X>10.49846</X>
            <Y>57.34444</Y>
            <Z>-22.00154</Z>
        </Position>
        <Type>Sphere</Type>
        <Scale>0.2</Scale>
    </End>

    <Text>
        <Height>1</Height>
        <Normal>
            <X>0.0</Y>
            <Y>1.0</Y>
            <Z>0.0</Z>
        </Normal>
        <Rotation>0</Rotation>
        <Position>TopRight</Position>
        <Docked>true</Docked>
        <Prefix>Prefix </Prefix>
        <Font>Arial</Font>
        <FontSize>14</FontSize>
        <Color>#FF0000</Color>
        <ShowUnit>true</ShowUnit>
        <Unit>Millimeter</Unit>
        <Precision>7</Precision>
    </Text>

    <Background>
        <Visible>true</Visible>
        <Color>#FF0080</Color>
    </Background>

    <Frame>
        <Type>Rectangle</Type>
        <Visible>true</Visible>
        <Color>#FF0080</Color>
    </Frame>

    <Line>
        <Color>#FFC000</Color>
        <Knockout>false</Knockout>
    </Line>
</Call>

<Response Method="CustomDimensioning" Error="SUCCESS">
    <NodeId>1234</NodeId>
</Response>

DeleteConfigurationView

Deletes the ConfigurationView at the specified position.

Parameter Type Description
Interaction UINT Position of the ConfigurationView.

Example:

<Call Method="DeleteConfigurationView">
    <Position>0</Position>
</Call>

DeleteConfigurationViews

Deletes all configuration views.

Example:

<Call Method="DeleteConfigurationViews">
</Call>

DeleteNodeAttributes

Deletes a list of node attributes.

Call:

Parameter Type Description
NodeId
[multiple]
NodeId NodeIds to delete attributes from.
If none are provided, the current selection will be used.
Attribute
[multiple]
String Attributes to delete.

Example:

<Call Method="DeleteNodeAttributes">
    <NodeId>1</NodeId>
    <NodeId>2</NodeId>
    <Attribute>Price</Attribute>
    <Attribute>Quantity</Attribute>
</Call>

DeleteOffsetLines

Deletes offset lines from nodes.
Deletion happens either on a list of node ids, the current selection or all nodes, if none of the other options apply.

Call:

Parameter Type Description
NodeId
[multiple]
NodeId NodeIds to delete offset lines from.
If none are provided, the current selection will be used.

Example:

<!-- Deletes all offset lines in the current scene -->
<!-- Affects only the currently selected nodes if a selection was made prior to this call -->
<Call Method="DeleteOffsetLines" />

<!-- Deletes offset lines from nodes 123 and #MyCustomNode -->
<Call Method="DeleteOffsetLines">
    <NodeId>123</NodeId>
    <NodeId>#MyCustomNode</NodeId>
</Call>

DeleteSavedSelections

Deletes one or many saved selections.

Call:

Parameter Type Description
Index
[multiple]
UINT Indices of the selections to delete

Example:

<Call Method="DeleteSavedSelection">
    <Index>0</Index>
</Call>

DeleteVisibleCallouts

Deletes all visible callouts.

Example:

<Call Method="DeleteVisibleCallouts" />

DeselectNodes

Deselects the given nodes, if not already deselected.

Parameter Type Description
NodeId [multiple] <NodeId> NodeIds of the nodes to deselect.

Example:

<Call Method="DeselectNodes">
   <NodeId>1</NodeId>
   <NodeId>2</NodeId>
   <NodeId>3</NodeId>
</Call>

DisableAutoCalloutAlignment

Disables automatic callout alignment.

Example:

<Call Method="DisableAutoCalloutAlignment" />

EnableAutoCalloutAlignment

Enables automatic callout alignment.

Example:

<Call Method="EnableAutoCalloutAlignment" />

EvaluateBrepComplexity

Evaluates the geometries in the model and prints log messages whether a geometry node contains simple BREP, simple/complex NURBS, or no BREP (tessellation only). This method is called prior to automated export, in order to identify and avoid exporting expensive models.

Example:

<Call Method="EvaluateBrepComplexity" />

EvaluateTessellationDegeneration

Evaluates the geometries in the model and prints log messages whether a geometry node has degenerated (very slim) triangles. A triangle is degenerated if the smallest inner angle is smaller than setting Tools.TessellationDegeneration.EpsilonAngle. A geometry is degenerated if the number of degenerated triangles is more than > Setting Tools.TessellationDegeneration.EpsilonAngle. Degenerated geometries are colored Red, others green. Degenerated triangles are colored opaque, others transparent.

Example:

<Call Method="EvaluateTessellationDegeneration" />

<Response Method="EvaluateTessellationDegeneration" Error="SUCCESS">
    <TessellationDegeneration>1000</TessellationDegeneration>
</Response>

ExecuteNeighbourhoodSearch

If the "SelectionMode" is set to "Neighbourhood" (see also "SetSelectionMode"), this method will execute the search.

Parameter Type Description
Radius
[optional]
float Defines the radius of the sphere in which neighbours will be searched.
If this value is not set, the radius will be set to the bounding box extents of the current selection.

Example:

<Call Method="ExecuteNeighbourhoodSearch">
    <Radius>10.0f</Radius>
</Call>

ExplodeByDistance

Explodes the model.

Parameter Type Description
Position UINT Value between 0 and 100.
ExplosionType ExplosionType
<Call Method="ExplodeByDistance">
    <Position>10</Position>
    <ExplosionType>AxisAligned</ExplosionType>
</Call>

ExplodeHierarchically

Explodes the model hierarchically.

Hint: You can get the maximum explode level for this operation by calling GetMaxTreeDepth

Call:

Parameter Type Description
Level UINT Explosion level

Example:

<Call Method="ExplodeHierarchically">
    <Level>4</Level>
</Call>

Export2D

Exports the scene to a 2D format.
Remarks:
Any already existing file will be overwritten!

Parameter Type Description
ExportFormat2D ExportFormat2D Format to which should be exported.
FileName FileName Name of the new file (full path).

Example:

<Call Method="Export2D">
    <ExportFormat2D>PNG</ExportFormat2D>
    <FileName>C:\test.png</FileName>
</Call>

Export3D

Exports the scene to a 3D format. Remarks:
Any already existing on same location file will be overwritten!

Parameter Type Description
ExportFormat3D ExportFormat3D Format to which should be exported.
FileName FileName Name of the new file (full path).

Example:

<Call Method="Export3D">
    <ExportFormat3D>VSXML</ExportFormat3D>
    <FileName>C:\test.3dvsxml</FileName>
</Call>

ExportConfigurationViews

Exports all or a range of configuration views. To store it separated from the model file.

If the FileName parameter is present, the serialized configuration views get written to the specified file.
Otherwise, the serialized configuration is returned in the call's response.

Parameter Type Description
FileName string Output file name (optional)
Positions Array of Position Elements Array of positions elements to export (optional - otherwise exports all views)

Examples:

<!-- Exports all configuration views to the given file -->
<Call Method="ExportConfigurationViews">
    <FileName>C:\views\exported.xml</FileName>
</Call>
<!-- Exports views on position 0 and 1 to given file -->
<Call Method="ExportConfigurationViews">
    <FileName>C:\views\exported.xml</FileName>
    <Positions>
        <Position>0</Position>
        <Position>1</Position>
    </Positions>
</Call>
<!-- Exports all views. Serialized as XML returned in the response -->
<Call Method="ExportConfigurationViews">
</Call>
<!-- Exports views on position 0 and 1. Serialized as XML returned in the response -->
<Call Method="ExportConfigurationViews">
    <Positions>
        <Position>0</Position>
        <Position>1</Position>
    </Positions>
</Call>

ExportInformation

Export table-like information as TXT, CSV, HTML-Table, JSON or XML.

Call:

Parameter Type Description
Type ExportInformationType Type of information to be exported: BOM, structure tree, etc.
Format ExportInformationFormat The requested output format: TXT, CSV, HTML-Table, JSON, XML
TranslateLanguageId
[optional]
bool Whether defined text components should be generated as the language in setting (default) or left untranslated.
Base64Encoded
[optional]
bool Whether the output is base64-encoded, e.g. to handle character such as <, etc.
Set to false for human-readable output.
Note: the base64-encoded string is orgininally UTF8. You need to handle this after decoding.
FileName
optional
string Output filepath

Example:

<Call Method = "ExportInformation">
    <Type>NodeAttributes</Type>
    <Format>TXT</Format>
    <TranslateLanguageId>false</TranslateLanguageId>
    <Base64Encoded>false</Base64Encoded>
</Call>

<Response Method="ExportInformation" Error="SUCCESS">
    <ExportInformationString>
    Attributes                
    BodyID    MechanicalTool.1
    </ExportInformationString>
    <Format>TXT</Format>
</Response>

ExportMarkupsAsXML

Exports all markups and provides their data in the response.
Optionally, their references can be exported as well and the export can be limited to visible markups only.

Call:

Parameter Type Description
Visible
Default: true
bool Only export visible Markups
References
Default: true
bool Export validatable ReferenceData
See ImportMarkups and ValidateGeometry

Example:

<Call Method="ExportMarkupsAsXML">
    <!-- default: true -->
    <Visible>true/false</Visible>
    <!-- default: true -->
    <References>true/false</References>
</Call>

<Response Method="ExportMarkupsAsXML" Error="SUCCESS">
    <MarkupExport>
        <Markups>
            <!-- Markupdata - similar to vsxml markups-->
        </Markups>
        <!-- optional - if "<References>" was true -->
        <References>
            <PMIReference NodeId="21" CustomId="CustomId" TreePath="Tree\Path\">
                <ValidationData Type="5" Indices="0 0 0 ">
                    <Vertices Coordinates="0.0 100.0 100.0 100.0 100.0 100.0 "/>
                </ValidationData>
            </PMIReference>
        </References>
    </MarkupExport>
</Response>

ExportSectionGeometry

Creates a section geometry at the current position of the section plane and exports it to the desired format.
The exported data gets returned as a Base64 encoded string.

Call:

Parameter Type Description
ExportFormat2D ExportFormat2D Export format (only SVG and DXF supported)
Type
optional
Default: Wire
CuttingPlaneMode Type of section geometry (only 'Wire' type supported at the moment)
FileName
optional
string Output filepath

Response:

Parameter Type Description
Image string Base64 encoded result image (only if FileName parameter was not passed)

Example:

<Call Method="ExportSectionGeometry">
    <ExportFormat2D>SVG</ExportFormat2D>
    <Type>Wire</Type>
</Call>

<Response Method="ExportSectionGeometry" Error="SUCCESS">
    <Image><!-- Base64 --></Image>
</Response>

<Call Method="ExportSectionGeometry">
    <ExportFormat2D>SVG</ExportFormat2D>
    <Type>Wire</Type>
    <FileName>C:\output.svg</FileName>
</Call>

<Response Method="ExportSectionGeometry" Error="SUCCESS"/>

ExportStructureAsCSV

Exports the node structure as CSV, with one column for each level of depth.
If a filename is given, the structure will be saved to said filename, otherwise it will be returned in the response.

Call:

Parameter Type Description
FileName
optional
string Output filepath

Response:

Parameter Type Description
Structure string CSV string containing the node structure.

Example:

<Call Method="ExportStructureAsCSV">
</Call>

<Response Method="ExportStructureAsCSV" Error="SUCCESS">
    <Structure>"Root";;
    ;"Child1";
    ;;"Child2"</Structure>
</Response>

ExportViewsAsPDF

Creates a PDF file at a given location. The file contains an image of all views referenced by their Id in the call.
Additionally, information about the geometry contained in the views are added to the bottom of each page.
If no view Ids are passed, the PDF contains all views.

Call:

Parameter Type Description
FileName string Output path of the PDF file.
Id
[multiple]
UINT Id of the configuration view. Optional - PDF contains all views if no Ids are given.

Example:

<Call Method="ExportViewsAsPDF">
    <FileName>C:\test.pdf</FileName>
    <Id>0</Id>
    <Id>1</Id>
    <Id>3</Id>
</Call>

ExportViewsAsPNG

Exports PNG images of either the given selection of configuration views or all existing if no selection is passed.

Call:

Parameter Type Description
Directory string Output directory to save PNG images to.
Overwrite bool
(Default: false)
Overwrites existing files if set to true.
Returns ERR_WOULD_OVERWRITE_FILES if set to false and files would be overwritten.
Id
[multiple]
UINT Selection of configuration views to export.
Exports all views if selection is empty.

Example:

<Call Method="ExportViewsAsPNG">
    <Directory>C:\ExportedViews</Directory>
    <Overwrite>true</Overwrite>
    <Id>0</Id>
    <Id>1</Id>
</Call>

ExportViewsOverviewAsPDF

Creates a PDF file at a given location.
The file contains an overview of all views represented by their names and a preview image.

Call:

Parameter Type Description
FileName string Output path of the PDF file.

Example:

<Call Method="ExportViewsOverviewAsPDF">
    <FileName>C:\overview.pdf</FileName>
</Call>

FindAndReplaceString

Finds and replaces a string in either the node's name, custom id or attribute values.

Call:

Parameter Type Description
NodeId [multiple] <NodeId> NodeIds of the nodes whose data should be replaced.
Type string Type of data to find/replace: Name, CustomId or Attribute
Attribute string Only if type is Attribute: Attribute name to find/replace in. Skip to search all attributes.
Find string String to find. Can match part of the string, no wildcards.
Replace string String to replace Find with

Example:

<Call Method="FindAndReplaceString">
  <Type>Name</Type>
  <Find>MechanicalTool</Find>
  <Replace>Part</Replace>
</Call>

<Call Method="FindAndReplaceString">
  <Type>Attribute</Type>
  <Attribute>Created</Attribute>
  <Find>2022</Find>
  <Replace>2023</Replace>
</Call>

FitAll

Fits the zoom so that the whole visible model can be seen.
Zoom level depends on projected bounding box of visible objects. Applies Paddings if defined.

Call:

Parameter Type Description
Top [optional] UINT = 0 Padding added at the top in pixels.
Bottom [optional] UINT = 0 Padding added at the bottom in pixels.
Left [optional] UINT = 0 Padding added on the left in pixels.
Right [optional] UINT = 0 Padding added on the right in pixels.

Example:

<Call Method="FitAll">
    <Padding> <!-- optional -->
        <Top>10</Top> <!-- optional -->
        <Bottom>22</Bottom> <!-- optional -->
        <Left>15</Left> <!-- optional -->
        <Right>0</Right> <!-- optional -->
    </Padding>
</Call>

FitHeight

Fit the zoom to height of the model or page.

Example:

<Call Method="FitHeight"></Call>

FitWidth

Fit the zoom to the width of the model or page.

Example:

<Call Method="FitWidth"></Call>

FixFacesOrientation

Fixes orientation of all faces for all selected nodes or all nodes if none are selected.

Example:

<Call Method="FixFacesOrientation"></Call>

Focus

Focus on an area of interest in the scene using animated variable camera shift, rotation and zoom steps.

Call:

Parameter Type Description
NodeId
[multiple]
[optional]
NodeId Focus on specified NodeIds.
If none are provided, the current selection will be used. There is no focus operation if the current selection is empty and no NodeIds are specified.
Factor
[optional]
float = 1.0 Zoom in factor, default 1.0 corresponds to the adjustment to the bounding box of the selected nodes (larger values to zoom out).
Ghost
[optional]
bool = false The other nodes (not selected or specified for focus) are in ghost state (transparent and not selectable) after the focus transition. This option should help to focus on the inner parts of an object.
FadeTime
[optional]
All times are given in milliseconds (ms)
Available steps for animated focus transition - zoom out, camera translation (shift), rotate camera, zoom in.
To skip a step set 0 ms.
ZoomOut UINT Zoom out to view the complete model. Helps the user to orientate himself before the next step.
Translation UINT Moves the new camera look at to a point in the middle of the objects to be focused.
Rotation UINT Turn (rotate) the camera to the best angle to show the focused objects from outside.
ZoomIn UINT Zoom in to fit the focused objects (see Factor).

Example:

<Call Method="Focus">
  <!-- Optional NodeIds, uses selection if none are provided -->
  <NodeId>1</NodeId>
  <NodeId>2</NodeId>

  <Factor>1.0</Factor> <!-- default = 1.0f -->
  <Ghost>false</Ghost> <!-- default = false -->

  <!-- Optional FadeTimes, no fading if not provided -->
  <FadeTime>
    <ZoomOut>0</ZoomOut>
    <Translation>1000</Translation>
    <Rotation>2000</Rotation>
    <ZoomIn>500</ZoomIn>
  </FadeTime>
</Call>

<!-- focus on seletion, ghost others -->
<Call Method="Focus">
  <Factor>3</Factor>
  <Ghost>true</Ghost>
  <FadeTime>
    <ZoomOut>500</ZoomOut>
    <Translation>1000</Translation>
    <Rotation>2000</Rotation>
    <ZoomIn>1000</ZoomIn>
  </FadeTime>
</Call>

GenerateAttribute

Creates or updates an attribute for identifying nodes.

AttributeGenerationMode "NodePath" calculates a new attribute value based on the hierarchical structure of the nodes - Attribute_value_name: "root\name_of_parent_node\name_of_child_node".
The characters ">", "<" and "&" are replaced by "_".

Call:

Parameter Type Description
NodeId
[multiple]
NodeId NodeIds for creating or updating an attribute.
If none are provided, the current selection will be used.
Recursive bool = false Generate attribute recursively.
IncludePartNodes bool = false Include Part nodes.
Overwrite bool = true Overwrite attribute of noded if one is present
Mode AttributeGenerationMode = NodePath Generation mode.
Name String Name of the attribute to create.

Example:

<Call Method="GenerateAttribute">
    <NodeId>34</NodeId>
    <NodeId>35</NodeId>
    <Recursive>false</Recursive>
    <IncludePartNodes>false</IncludePartNodes>
    <Overwrite>true</Overwrite>
    <Mode>NodePath</Mode>
    <Name>Path</Name>
</Call>

GenerateBOMCalloutIds

Generates callout ids for every BOM entry without any callout id by using the provided start value incrementing it after each assignment.
This call doesn't generate any callouts yet.

Call:

Parameter Type Description
StartId UINT Start value

Response:

Parameter Type Description
StartId UINT Last used callout id + 1

Example:

<Call Method="GenerateBOMCalloutIds">
    <StartId>1</StartId>
</Call>

GenerateBOMCallouts

Generates callouts for each BOM entry with a callout id value.

Example:

<Call Method="GenerateBOMCallouts" />

GenerateCustomIds

Generates or updates the CustomIds of nodes.

CustomIdGenerationMode "NodePath" calculates a new CustomId based on the hierarchical structure of the nodes - CustomId: "root\name_of_parent_node\name_of_child_node_3".
The characters ">", "<" and "&" are replaced by "_".

Call:

Parameter Type Description
NodeId
[multiple]
NodeId NodeIds to generate custom ids for.
If none are provided, the current selection will be used.
Recursive bool = false Generate custom ids recursively.
IncludePartNodes bool = false Include Part nodes.
Overwrite bool = true Overwrite custom id of node if one is present.
UniqueIds bool = false Ensure that generated CustomIds are unique by adding a counter (_n)
Mode CustomIdGenerationMode = NodePath Generation mode.

Example:

<Call Method="GenerateCustomIds">
    <NodeId>34</NodeId>
    <NodeId>35</NodeId>
    <Recursive>false</Recursive>
    <IncludePartNodes>false</IncludePartNodes>
    <Overwrite>true</Overwrite>
    <UniqueIds>false</UniqueIds>
    <Mode>NodePath</Mode>
</Call>

GenerateFaces

Generates or regenerates faces for all selected nodes or all nodes if none are selected.

Example:

<Call Method="GenerateFaces" />

GenerateNormals

Generates normals for all selected nodes or all nodes if none are selected.
Nodes with normals are ignored.

Example:

<Call Method="GenerateNormals" />

GenerateStatistics

Generates statistics containing drawing information such as buffer memory used or number of nodes present.
FPS can be calculated on demand.

Call:

Parameter Type Description
PerformFPSTest bool = true Performs a test that calculates the FPS. This test takes 5 seconds to complete.

Example:

<Call Method="GenerateStatistics">
    <PerformFPSTest>false</PerformFPSTest>
</Call>

<Response Method="GenerateStatistics" Error="SUCCESS">
    <NumBuffers>13</NumBuffers>
    <NumGeometryNodes>35</NumGeometryNodes>
    <...>
</Response>

GenerateWires

Generates wires for all selected nodes or all nodes if none are selected.
Nodes with wires are ignored.

Example:

<Call Method="GenerateWires" />

GetAnalysisResults

Gets the analysis results for either Wallthickness, BandAnalysis or Curvature nodes.

Parameter Type Description
NodeId
[multiple]
NodeId NodeIds of the nodes.
Global bool Transforms the coordinates from model to world (global) space. Overridden by an active coordinate system.

Example:

<Call Method="GetAnalysisResults">
    <NodeId>20</NodeId>
    <NodeId>21</NodeId>
    <NodeId>22</NodeId>
    <Global>true</Global>
</Call>

<Response Method="GetAnalysisResults">
    <NodeId Id="20" Type="Wallthickness">
        <Positions>100 100 0 100 100 0...</Positions>
        <Values>100 50...</Values><!--1 each-->
    </NodeId>
    <NodeId Id="21" Type="BandAnalysis">
        <Positions>100 100 0 100 100 0...</Positions>
        <Values>50 60...</Values><!--1 each-->
    </NodeId>
    <NodeId Id="22" Type="Curvature">
        <Positions>100 100 0 100 100 0...</Positions>
        <Values>0.5 0.2...</Values><!--2 each-->
    </NodeId>
</Response>

GetAnimationAxis

Gets the common animation axis of all selected nodes.

Remarks:
If the selected nodes contain different animation axes, __VARIOUS__ gets returned.

Response:

Parameter Type Description
Direction CoordinateDirection Animation axis
__VARIOUS__ if selected nodes contain different animation axes

Example:

<Call Method="GetAnimationAxis" />

<Response Method="GetAnimationAxis">
    <Direction>X</Direction>
</Response>

<Response Method="GetAnimationAxis">
    <Direction>__VARIOUS__</Direction>
</Response>

GetAnimationSpeed

Gets the animation speed of all selected nodes with an animation.

Remarks:
If the selected animation nodes contain different speed values, __VARIOUS__ gets returned.

Response:

Parameter Type Description
Speed float Rotation speed
__VARIOUS__ if selected nodes contain different speed values

Example:

<Call Method="GetAnimationSpeed" />

<Response Method="GetAnimationSpeed">
    <Speed>0.5</Speed>
</Response>

<Response Method="GetAnimationSpeed">
    <Speed>__VARIOUS__</Speed>
</Response>

GetBCFVisualizationInfo

GET the view displayed in current scene as BCF 2.1 Visualization Information XML.

(Version 2.1)
-Components
-Selection
-Visibility
-Coloring

-OrthogonalCamera (the camera order depends on the mode that is active in the scene)
-PerspectiveCamera
-ClippingPlanes (only one plane supported)

Remarks:

For Selection, Visibility, Coloring IFC Data requires loading with attributes (IfcGuid), the same applies to the preparation of 3DVS files.

<Call Method="SetSettings">
    <Settings><Import3D>
        <Filter><ReadAttributes>true</ReadAttributes></Filter>
    </Import3D></Settings>
</Call>

Response:

Parameter Type Description
VisualizationInfo XML https://github.com/buildingSMART/BCF-XML

All X, Y, Z coordinates in meter

Example:

<Call Method="GetBCFVisualizationInfo" />

<Response Method="GetBCFVisualizationInfo" Error="SUCCESS">
    <VisualizationInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 	xsi:noNamespaceSchemaLocation="visinfo.xsd">
        <Components>
            <Selection>
                <Component IfcGuid="3lpXi_8GH6EuwcCd5R554$"/>
                <Component IfcGuid="1xQYbrIQzDgwq4v0LNnn0U"/>
            </Selection>
            <Visibility DefaultVisibility="true">
                <Exceptions>
                    <Component IfcGuid="3FFmHz1JT4IuolU5gYJxiL"/>
                    <Component IfcGuid="2xmw0BYPD0TePWVXqCOL6c"/>
                    <Component IfcGuid="3Vo2$Io8L3HPA5yAF00Hs0"/>
                    ...
                    <Component IfcGuid="1q3$Rj_Nb7q8goAJGwY_Vp"/>
                    <Component IfcGuid="1YZvJSjKD2Ku2hFpmr3HHT"/>
                </Exceptions>
            </Visibility>
            <Coloring>
                <Color Color="FF00FFFF">
                    <Component IfcGuid="0eJbMxjiv8BgeffzsZzV_9"/>
                    <Component IfcGuid="155n_KM3HBsP2vAHv$PhfZ"/>
                    <Component IfcGuid="2VXubfNjT9Xez8ttHQftXp"/>
                    ...
                    <Component IfcGuid="0EOMJDvw1EOPyacy$fD7MD"/>
                </Color>
            </Coloring>
        </Components>
        <OrthogonalCamera>
            <CameraViewPoint>
                <X>-34054.4240</X>
                <Y>216381.5360</Y>
                <Z>673.046125</Z>
            </CameraViewPoint>
            <CameraDirection>
                <X>-0.679403</X>
                <Y>-0.641393</Y>
                <Z>-0.356408</Z>
            </CameraDirection>
            <CameraUpVector>
                <X>-0.260032</X>
                <Y>-0.243745</Y>
                <Z>0.934330</Z>
            </CameraUpVector>
            <ViewToWorldScale>25.824014</ViewToWorldScale>
        </OrthogonalCamera>
        <PerspectiveCamera>
            <CameraViewPoint>
                <X>-34054.4240</X>
                <Y>216381.5360</Y>
                <Z>673.046125</Z>
            </CameraViewPoint>
            <CameraDirection>
                <X>-0.679403</X>
                <Y>-0.641393</Y>
                <Z>-0.356408</Z>
            </CameraDirection>
            <CameraUpVector>
                <X>-0.260032</X>
                <Y>-0.243745</Y>
                <Z>0.934330</Z>
            </CameraUpVector>
            <FieldOfView>45.0</FieldOfView>
        </PerspectiveCamera>
        <Clippingplanes>
            <Clippingplane>
                <Location>
                    <X>-34094924.0</X>
                    <Y>216347280.0</Y>
                    <Z>650309.750</Z>
                </Location>
                <Direction>
                    <X>-0.087156</X>
                    <Y>0.996195</Y>
                    <Z>0.0</Z>
                </Direction>
            </Clippingplane>
        </Clippingplanes>
    </VisualizationInfo>
</Response>

GetBillOfMaterial

Gets the current bill of material of the scene.

Example:

<Call Method="GetBillOfMaterial" />

Response:

<Response Method="GetBillOfMaterial" Error="SUCCESS">
    <!-- The following structure resembles a table -->
    <BillOfMaterial>
        <!-- Contains the columns of the table -->
        <Template>
            <!--
                'Id' is the unique identifier of the column, each item in 'Data'
                eventually contains a member with this id.
                Remarks: Columns containing attribute data will have a matching
                'Attribute' element in an Item with the 'Name' attribute matching the
                column id.

                'DisplayName' contains the translated name for the column.
            -->
            <Column Id="Number" DisplayName="Nr."/>
            <Column Id="Name" DisplayName="Name"/>
            <Column Id="Quantity" DisplayName="Anzahl"/>
            <Column Id="CalloutId" DisplayName="ID"/>
            <!-- The following columns represent additional attribute columns -->
            <Column Id="Author" DisplayName="Author"/>
            <Column Id="Created" DisplayName="Created"/>
            <Column Id="Generator" DisplayName="Generator"/>
            <Column Id="SchemaVersion" DisplayName="SchemaVersion"/>
            <Column Id="Title" DisplayName="Title"/>
        </Template>
        <!-- Contains the rows of the table -->
        <Data>
            <!-- 'Id' is the unique identifier of the row -->
            <Item Id="0">
                <Number>69</Number>
                <Name>Axle.1</Name>
                <Quantity>2</Quantity>
                <CalloutId/>
                <Attribute Name="Author">sxp</Attribute>
                <Attribute Name="Created">2005-05-25</Attribute>
                <Attribute Name="Generator">CATIA V5</Attribute>
                <Attribute Name="SchemaVersion">1.0</Attribute>
                <Attribute Name="Title">Axle 3DXml File</Attribute>
            </Item>
            <!-- ... --->
        </Data>
    </BillOfMaterial>
</Response>

GetBillOfMaterialAttributeNames

Gets all different attribute names for all nodes in the current scene.

Example:

<Call Method="GetBillOfMaterialAttributeNames" />

Response:

<Response Method="GetBillOfMaterialAttributeNames" Error="SUCCESS">
    <Attribute>Source</Attribute>
    <Attribute>Revision</Attribute>
    <Attribute>Author</Attribute>
    <Attribute>Description</Attribute>
</Response>

GetBillOfMaterialNodePropertyNames

Gets the node property names that can be used in the Bill Of Material.

Example:

<Call Method="GetBillOfMaterialNodePropertyNames" />

Response:

<Response Method="GetBillOfMaterialNodePropertyNames" Error="SUCCESS">
    <Properties>Color</Properties>
    <Properties>Material</Properties>
    <Properties>NodeId</Properties>
    <Properties>CustomNodeId</Properties>
    <Properties>Transparency</Properties>
    <Properties>GeometryId</Properties>
    <Properties>FilePath</Properties>
    <Properties>ContainsBREP</Properties>
    <Properties>Surface</Properties>
    <Properties>Volume</Properties>
    <Properties>Density</Properties>
    <Properties>Mass</Properties>
</Response>

GetCalloutAnchor2DProjection

Generate 2D Coordinates for markup endpoints.
Sorted from front to back.

Call:

Parameter Type Description
InViewport
[optional]
Default: false
bool Must be visible on screen
Quantity
[optional]
Default: 0
UINT Limit number of results
0 = no Limit

Example:

<Call Method="GetCalloutAnchor2DProjection">
    <InViewport>true</InViewport>
    <Quantity>10</Quantity>
</Call>
<Response Method="GetCalloutAnchor2DProjection" Error="ERR_SUCCESS">
    <Anchor2DPositions>
        <Item>
            <Id>5</Id>
            <CavasX>100</CavasX>
            <CavasY>200</CavasY>
            <CalloutText>text</CalloutText> <!--optional-->
            <CalloutName>name</CalloutName>
            <Visible>true</Visible>
            <InViewport>true</InViewport>
            <Depth>0.5</Depth>
        </Item>
    </Anchor2DPositions>
</Response>

GetCallouts

Gets information about callouts in the current scene.
If the current selection is empty, all existing callouts will be returned.
Otherwise all directly or indirectly referenced callouts will be determined and returned, e.g. if a non-callout node is selected that is referenced by a callout in the scene, this callout will be returned as well.

Example:

<Call Method="GetCallouts" />

Response:

<Response Method="GetCallouts" Error="SUCCESS">
    <Callout Id="1" NodeId="358">
        <NodeId>306</NodeId>
    </Callout>
    <Callout Id="2" NodeId="361">
        <NodeId>281</NodeId>
    </Callout>
    <Callout Id="3" NodeId="362">
        <NodeId>317</NodeId>
        <Callout Id="1" NodeId="358"/>
        <Callout Id="2" NodeId="361"/>
    </Callout>
</Response>

GetCamera

Gets information about the current camera position and look at.

Response:

Parameter Type Description
Position float3 Camera position
LooktAt float3 Point on which the camera looks
UpVector float3 Up vector of the camera

Example:

<Call Method="GetCamera"></Call>

<Response Method="GetCamera" Error="SUCCESS">
    <Position>
        <X>10.0</X>
        <Y>10.0</Y>
        <Z>10.0</Z>
    </Position>
    <LookAt>
        <X>0.0</X>
        <Y>0.0</Y>
        <Z>0.0</Z>
    </LookAt>
    <UpVector>
        <X>0.0</X>
        <Y>0.0</Y>
        <Z>1.0</Z>
    </UpVector>
</Response>

GetClashDetection

Gets the clash detection details computed by Compute::ClashSync or Compute::ClashAsync.

Response:

Parameter Type Description
Id UINT Index in list
Name string Name (and optional selection set) of first node
OtherName string Name (and optional selection set) of second node
Type string Type of clash, either "Unknown", "Unspecified", "Contact" or "Collision"
MaxDepth float Depth of collision

Example:

<Call Method="GetClashDetection"></Call>

<Response Method="GetClashDetection" Error="SUCCESS">
    <Data>
        <Item>
            <Id>0</Id>
            <Name>Lamp</Name>
            <OtherName>Table</OtherName>
            <Type>Unspecified</Type>
            <MaxDepth>0</MaxDepth>
        </Item>
        <Item>
            <Id>1</Id>
            <Name>Chairs - Chair 1</Name>
            <OtherName>Table</OtherName>
            <Type>Contact</Type>
            <MaxDepth>0.001</MaxDepth>
        </Item>
        <Item>
            <Id>2</Id>
            <Name>Chairs - Chair 2</Name>
            <OtherName>Table</OtherName>
            <Type>Collision</Type>
            <MaxDepth>12</MaxDepth>
        </Item>
    </Data>
</Response>

GetConfigurationViewInformation

Gets information about all "ConfigurationViews".

Call:

Parameter Type Description
Image bool = false If set to "true", the response contains preview Images.
Position
[optional]
UINT If set, only the information of the view at the specified position is provided.

Response:

Parameter Type Description
ConfigurationView
[multiple]
ConfigurationView
Position UINT Position
Name string Name of the configuration view
Image string Base64 encoded PNG image

Example:

<Call Method="GetConfigurationViewInformation">
    <Position>10</Position>
    <Image>true</Image>
</Call>

<Response Method="GetConfigurationViewInformation" Error="SUCCESS">
    <ConfigurationView>
        <Position>10</Position>
        <Name>Top view</Name>
        <Image><!-- Base64 encoded PNG --></Image>
     </ConfigurationView>
</Response>

GetCurrentView

Serialize the current view.

Response:

Parameter Type Description
CurrentView XMLNode Contains the serialzed wiew

Example:

<Call Method="GetCurrentView" />

<Response Method="GetCurrentView" Error="SUCCESS">
    <CurrentView>
        <!-- viewxml -->
    </CurrentView>
</Response>

GetDocumentAttachmentData

Gets the names and metadata of all attachments in the current document. See ShowDocumentAttachment to display the attachment.

Response:

Parameter Type Description
Name string Name of the attached file
Id UINT Attachment id, starting at 0
Level UINT Attachment level. Root has 0, each parent -> child increments level by 1
Pages UINT Number of pages if attachment is PDF, 0 otherwise
Size UINT Attachment size in bytes
Created UINT Creation date (seconds since epoch 1/1/1970 00:00:00 UTC, 0 if unknown)
Edited UINT Modification date (seconds since epoch 1/1/1970 00:00:00 UTC, 0 if unknown)

Example:

<Call Method="GetDocumentAttachmentData"></Call>

<Response Method="GetDocumentAttachmentData" Error="SUCCESS">
    <Attachment Name="Parent.pdf" Id="0" Level="0" Pages="1" Size="120000" Created="1327876849" Edited="1327876852"/>
    <Attachment Name="Child1.prc" Id="1" Level="1" Pages="0" Size="80000" Created="0" Edited="0"/>
    <Attachment Name="Child2.png" Id="2" Level="1" Pages="0" Size="40000" Created="1337876849" Edited="1337876852"/>
</Response>

GetDraftResults

Extracts the geometric properties of draft geometry.

Call:

Parameter Type Description
NodeId NodeId Nodes to be tested. These should be the node ids returned by the Compute call.
AngleAsDegree bool = false Angle will be printed as degree instead of radians.

Response:

For each band, a sub entry is provided with:

Parameter Type Description
Type string Can be either Undercut, Error or the band's angle as defined in the settings.
Positions string The vertices' position in groups of 3 numbers.
Values string The angle value for each vertex, or -1 if undercut.

Example:

<Call Method="GetDraftResults">
    <NodeId>123</NodeId>
    <AngleAsDegree>true</AngleAsDegree>
</Call>

<Response Method="GetDraftResults" Error="SUCCESS">
    <Node Id="123">
        <Band Type="Undercut">
            <Positions>-37.5899 300.4502 186.11696...</Positions>
            <Values>-1.000000...</Values>
        </Band>
        <Band Type="&gt; 1.50°">
            <Positions>-37.5899 300.4502 186.11696...</Positions>
            <Values>89.999992...</Values>
        </Band>
        <Band Type="± 0.01°">
            <Positions>0 -4.2632564e-14 100...</Positions>
            <Values>89.999992...</Values>
        </Band>
        <Band Type="&lt; -1.50°">
            <Positions>-27.823017 194.31712 25.552103...</Positions>
            <Values>89.999992...</Values>
        </Band>
    </Node>
</Response>

GetImage

Generates an image of the current view and returns it.

Call:

Parameter Type Description
ExportFormat2D ExportFormat2D Format in which the image should be generated

Response:

Parameter Type Description
ExportFormat2D ExportFormat2D Format of the image
Image string Base64 encoded image

Example:

<Call Method="GetImage">
    <ExportFormat2D>PNG</ExportFormat2D>
</Call>

<Response Method="GetImage" Error="SUCCESS">
    <ExportFormat2D>PNG</ExportFormat2D>
    <Image><!-- Base64 encoded image --></Image>
</Response>

GetLastPickDurationInSeconds

Gets the duration of the last pick in seconds. If no pick was performed, the duration will be 0.

Response:

Parameter Type Description
Position float Pick duration

Example:

<Response Method="GetLastPickDurationInSeconds" Error="SUCCESS">
    <Duration>0.015</Duration>
</Response>

GetLayers

Gets the layers of the current scene.

Example:

<Response Method="GetLayers" Error="SUCCESS">
    <Layer>
        <Id>1</Id>
        <Name>Layer1</Name>
        <Visible>true</Visible>
    </Layer>
    <Layer>
        <Id>2</Id>
        <Name>Layer2</Name>
        <Visible>false</Visible>
    </Layer>
</Response>

GetMaxTreeDepth

Gets the maximum tree depth.

Response:

Parameter Type Description
MaxDepth UINT Maximum tree depth

Example:

<Call Method="GetMaxTreeDepth" />

<Response Method="GetMaxTreeDepth">
    <MaxDepth>4</MaxDepth>
</Response>

GetModelRepository

Gets the current WebViewer model repository path.

Example:

<Call Method="GetModelRepository" />

<Response Method="GetModelRepository">
    <Path>C:\Path\To\Models</Path>
</Response>

GetNodeDirection

Attempts to extract a direction from a node. For coordinate systems, the Z axis is returned. For nodes constisting of wires, the first wire direction is returned.

Parameter Type Description
NodeId NodeId NodeId of the node.

Example:

<Call Method="GetNodeDirection">
    <NodeId>14</NodeId>
</Call>

<Response Method="GetNodeDirection" Error="SUCCESS">
    <Direction>
        <X>1.000000</X>
        <Y>0.000000</Y>
        <Z>0.000000</Z>
    </Direction>
</Response>

GetNodeProperties

Gets the properties of a specific Node

Parameter Type Description
NodeId
[multiple]
NodeId NodeIds of the nodes.
If no NodeId is provided, the selection will be used.

Response:

Parameter Type Description
Properties VSXML Properties of the specified nodes.

Example:

<Call Method="GetNodeProperties">
    <NodeId>14</NodeId>
    <NodeId>25</NodeId>
</Call>

<Response Method="GetNodeProperties" Error="SUCCESS">
    <Properties>
        <!-- VSXML -->
    </Properties>
</Response>

GetNodeTransformMatrix

Gets the transformation matrix of a specific node.

Parameter Type Description
Global
[optional]
bool = true If true, then the global matrix is returned. Otherwise, the local matrix.
NodeId NodeId NodeId of the node.

Response:

Parameter Type Description
TransformMatrix Matrix a 4x4 row major transformation matrix

Example:

<Call Method="GetNodeTransformMatrix">
    <Global>true</Global>
    <NodeId>14</NodeId>
</Call>

<Response Method="GetNodeTransformMatrix" Error="SUCCESS">
    <TransformMatrix>1 0 0 0 0 1 0 0 0 0 1 0 21.96 28.84 -36.01 1</TransformMatrix>
</Response>

GetPageCount

Gets the page count of a 2D document.

Response:

Parameter Type Description
Pages UINT Number of pages.

Example:

<Response Method="GetPageCount" Error="SUCCESS">
    <Pages>5</Pages>
</Response>

GetPropertiesOfSelectedNodes

Gets common properties of all selected nodes.
Computes sum for physical properties if all geometries belonging to selected nodes contain physical properties.

Response:

Parameter Type Description
Properties <NodePropertiesXML> Properties of the selected nodes.

Example:

<Response Method="GetPropertiesOfSelectedNodes" Error="SUCCESS">
    <Properties>
        <NodePropertiesXML>
            <General>
                <Name>NONE</Name>
                <Type>Ri_BrepModel</Type>
                <Color>0xffffff0</Color>
                <Transparency>0.400000</Transparency>
            </General>
            <PhysicalProperties>
                <Surface>1544.48 mm^2</Surface>
                <Volume>1738.33 mm^3</Volume>
                <Density>1.0 kg/dm^3</Density>
                <Mass>1.74 g</Mass>
            </PhysicalProperties>
            <Attributes>
                <Attribute
                    key="CV5FACENAME"
                    value="Mainfold Solid #737213"
                />
            </Attributes>
        </NodePropertiesXML>
    </Properties>
</Response>

GetSavedSelections

Gets a list of all saved selections for the current scene.

Response:

Parameter Type Description
Selection
[multiple]
SavedSelection List of saved selections

Example:

<Call Method="GetSavedSelection" />

<Response Method="GetSavedSelection">
    <Selection Index="0" Name="Foo" />
    <Selection Index="1" Name="Bar" />
    <Selection Index="2" Name="Baz" />
</Response>

GetSceneSettings

Get the runtime settings of the current scene.

Response:

Parameter Type Description
SettingsXML SettingsXML Settings of the current scene

Example:

<Call Method="GetSceneSettings"></Call>

<Response Method="GetSceneSettings">
        <!--SettingsXML-->
</Response>

GetSceneState

Receive all available scenedata required to synchronize UI

Response:

Multiple events (SelectionChanged / SettingsChanged / SplitUpdate / active interactions / Measurementresult)

Parameter Type Description
Scene XMLNode Container for scenespecific data
Name String Scenename
2D bool Is it a 2D-scene
Selectionmode SelectionMode Currently active Selectionmode

Example:

<Call Method="GetSceneState" />

<Event Type="CalloutSelectionChanged" ViewId="0"/>

<Event Type="SelectionChanged" ViewId="0"/>

<Event Type="SelectionChangedCustomId" ViewId="0"/>

<Event Type="NodePropertiesChanged" ViewId="0"/>

<Event Type="TransformChanged" ViewId="0">
    <Position>
        <X Unit="mm">0.00</X>
        <Y Unit="mm">0.00</Y>
        <Z Unit="mm">0.00</Z>
    </Position>
    <Translation>
        <X Unit="mm">0.00</X>
        <Y Unit="mm">0.00</Y>
        <Z Unit="mm">0.00</Z>
    </Translation>
    <Rotation>
        <X Unit="°">0.00</X>
        <Y Unit="°">0.00</Y>
        <Z Unit="°">0.00</Z>
    </Rotation>
    <Scaling>
        <Scale Unit="%">0.00</Scale>
    </Scaling>
</Event>

<Response Method="GetSceneState" Error="SUCCESS">
    <SceneState>
        <Scene Name="toy.3dxml" 2D="false"/>
        <SelectionMode>None</SelectionMode>
    </SceneState>
</Response>


GetSearchableNodeTypes

Gets a list of all searchable node types in the current scene.

Response:

Parameter Type Description
NodeType
[multiple]
String List of searchable node types

Example:

<Call Method="GetSearchableNodeTypes" />

<Response Method="GetSearchableNodeTypes" Error="SUCCESS">
    <NodeType>Root</NodeType>
    <NodeType>ProductOccurrence</NodeType>
    <NodeType>Ri_BrepModel</NodeType>
    <NodeType>AnnotationSet</NodeType>
    <NodeType>AnnotationItem</NodeType>
    <NodeType>MasterRootNode</NodeType>
</Response>

GetSelectedBillOfMaterialRows

Gets the ids of all selected rows.
A row is selected if it contains a node that is currently selected.

Response:

<Response Method="GetSelectedBillOfMaterialRows">
    <RowId>0</RowId>
    <RowId>3</RowId>
</Response>

GetSelectedFacesColor

Gets the Color (ARGB) of selected faces.

In case of multiple colors the method returns ColorVarious, AlphaVarious = true and the returned color value is invalid.

Response:

<Response Method="GetSelectedFacesColor">
    <Color>#FFFF00</Color>
    <ColorVarious>true/false</ColorVarious>
    <AlphaVarious>true/false</AlphaVarious>
</Response>

GetSelectedNodes

Gets all currently selected nodes.

Response:

Parameter Type Description
NodeType
[optional]
NodeType This parameter is present if all nodes have the same type.
NodeId
[multiple]
NodeId All selected node IDs

Example:

<Call Method="GetSelectedNodes"></Call>

<Response Method="GetSelectedNodes" Error="ERR_SUCCESS">
    <NodeType>NodeType_Root</NodeType>
    <NodeId>85</NodeId>
    <NodeId>#Node5879</NodeId>
</Response>

GetSettings

Gets the default import, export and scene settings.
This settings are used on loading a file or stating a new scene.

Response:

Parameter Type Description
SettingsXML SettingsXML Current global Settings

Example:

<Call Method="GetSettings"></Call>

<Response Method="GetSettings">
        <!--SettingsXML-->
</Response>

GetStructure

Call:

Parameter Type Description
Minimal
[optional]
bool= true If set, the response contains the minimal structure (see below).

Response:

Parameter Type Description
Structure <VSXML> Structure of the whole scene.

Example:

<Call Method="GetStructure">
    <Minimal>true</Minimal>
</Call>

<Response Method="GetStructure" Error="ERR_SUCCESS">
    <Structure>
        <!-- VSXML -->
    </Structure>
</Response>

Minimal Structure

If the parameter Minimal is set to true, the following data doesn't get exported:

  • Node attributes
  • Node colors
  • Transformations
  • Physical properties
  • Vector export information
  • Heatmaps
  • Annotations
  • Materials
  • Constraints
  • Render states
  • Animations
  • Bounding boxes

Furthermore, node types values are exported as numeric values instead of strings.


GetUndoStack

Returns the current stack of undo operations.

Response:

Parameter Type Description
Step
[multiple]
string Translated undo step.

Example:

<Call Method="GetUndoStack" />

<Response Method="GetUndoStack" Error="SUCCESS">
    <Step>Select</Step>
    <Step>Color</Step>
    <Step>Color</Step>
    <Step>Select</Step>
</Response>

GetViewsOverviewAsPDF

Returns a Base64 encoded string containing an overview of all views represented by their names and a preview image.

Response:

Parameter Type Description
Image string Base64 encoded image

Example:

<Call Method="GetViewsOverviewAsPDF">
</Call>

<Response Method="GetViewsOverviewAsPDF" Error="ERR_SUCCESS">
    <Image>
        <!-- Base64 encoded image -->
    </Image>
</Response>

GetViewsAsPDF

Returns PDF a Base64 encoded string containing image information of all views referenced by their Id in the call.
Additionally, information about the geometry contained in the views are added to the bottom of each page.
The image contains all views if no Ids are passed to the call.

Call:

Parameter Type Description
Id
[multiple]
UINT Id of the configuration view. PDF contains all views if no Ids are given.

Response:

Parameter Type Description
Image string Base64 encoded image

Example:

<Call Method="GetViewsAsPDF">
    <Id>0</Id>
    <Id>1</Id>
    <Id>3</Id>
</Call>

<Response Method="GetViewsAsPDF" Error="ERR_SUCCESS">
    <Image>
        <!-- Base64 encoded image -->
    </Image>
</Response>

GetWallthicknessRollingBallAnalysisResults

Call:

Parameter Type Description
NodeId
[multiple]
UINT Ids of the nodes to calculate wallthickness values for.

Response:

Parameter Type Description
WallThickness
- NodeId UINT Id of the respective node
- Values float Floating values of all rolling balls: X Y Z radius

Example:

<Call Method="GetWallthicknessRollingBallAnalysisResults"><NodeId>20</NodeId><NodeId>21</NodeId></Call>

<Response Method="GetWallthicknessRollingBallAnalysisResults" Error="ERR_SUCCESS">
    <WallThickness NodeId="20" Values=""><!-- empty if non-tessellated node-->
    <WallThickness NodeId="21" Values="0 0 0 5 1 2 3 1.3 (...)">
    </Image>
</Response>

GotoPage

Scrolls to the specified page.

Call:

Parameter Type Description
Page UINT Page to which to scroll.
Page starts at 0.

Example:

<Call Method="GotoPage">
    <Page>2</Page>
</Call>

HideAllMarkups

Hides all markups.

Example:

<Call Method="HideAllMarkups"></Call>

HideAllPMIs

Hides all PMIs.

Example:

<Call Method="HideAllPMIs"></Call>

HideVisibleCallouts

Hide all visible callouts.

Example:

<Call Method="HideVisibleCallouts" />

ImportAttributeCSV

Imports a file or string containing attributes for nodes. The CSV needs to start with "# 3DVS Attribute CSV" to be imported. Attributes will be added to nodes whose name contains the element at the first column of the CSV.

Parameter Type Description
Path string Path to the file containing attribute CSV. Takes precedence over content parameter.
Content bool Content of the attribute CSV, if there is no file.

Examples:

<Call Method="ImportAttributeCSV">
    <Path>C:\temp\test.csv</Path>
</Call>
<!-- Important: Correct newlines and no spaces -->
<Call Method="ImportAttributeCSV">
    <Content># 3DVS Attribute CSV
Name;Index
Model;1
Submodel;2</Content>
</Call>

ImportConfigurationViews

Imports configuration views.

Remarks:
Configuration views can be either imported by a file path or by embedded data in the XML API request.
If the FileName parameter is present, data will only be imported from the given file.

Parameter Type Description
FileName string Path to the file containing configuration view data.
DeleteExistingViews bool Delete all existing configuration views prior to import.
optional, default: false
VSViews Views XML Import configuration views directly from request.

Examples:

<!-- Import views from given file, delete existing views prior to import -->
<Call Method="ImportConfigurationViews">
    <DeleteExistingViews>true</DeleteExistingViews>
    <FileName>C:\views\views.xml</FileName>
</Call>
<!-- Import views from embedded data, don't delete existing views prior to import -->
<Call Method="ImportConfigurationViews">
    <VSViews>
        <!-- Views XML -->
    </VSViews>
</Call>

ImportFile

Imports a file into the current scene.

Call:

Parameter Type Description
FileName FileName Path to the file which should be imported.
WebViewer: relative path in ModelRepository (or full path if ModelRepository set to empty in setting file CRendererInstance.ini).
If remote file loading is enabled (enabled by default in all products except WebViewer) you can also pass URLs to files served via HTTP/HTTPS/FTP/FTPS protocols.
Name
[optional]
string Name for the imported root node

Example:

<Call Method="ImportFile">
    <FileName>C:\test.3dvs</FileName>
    <Name>FooBar</Name>
</Call>

ImportMarkups

Imports Markups to the Scene

The required MarkupXML can be retrieved from ExportMarkupsAsXML

Call:

Parameter Type Description
MarkupExport XMLNode
optional
Rootnode of the MarkupXML, may be omitted
Markups VSXML Serialized Markups
References VSXML Serialized References

Example

<Call Method="ImportMarkups">
    <MarkupExport><!-- may be omitted -->
        <Markups>
            <!-- MarkupXML -->
        </Markups>
        <!-- optional -->
        <References>
            <!-- ReferenceXML -->
        </References>  
    </MarkupExport>
</Call>

<Response Method="ImportMarkups" Error="SUCCESS"> <!-- Error may be "WARN_UNRESOLVED_REFERENCES" if geometries could not be resolved

ImportVSXMLToNode

Imports VSXML to the specified node.
Use "0" for importing to the root node.

Call:

Parameter Type Description
NodeId <NodeId> NodeId of the nodes to which the VSXML should be imported.
VSXML VSXML VSXML of nodes or markup to import

Example:

<Call Method="ImportVSXMLToNode">
    <NodeId>25</NodeId>
    <!-- VSXML -->
</Call>

IncrementValue

Increment the given value of a specified type by the corresponding delta in settings.

Parameter Type Description
Type IncrementValueType Specifies the type of value to be incremented. The step size is defined by the corresponding settings. Associated events, i.e. TransformChanged or SectionChanged, will be triggered.
Axis CoordinateDirection The target axis: X, Y, Z. This parameter is not required in case of boundary condition axis or SectionMove, because there is only one axis. For SectionRotate, set Y for the red axis and Z for the blue axis.
UpDown UpDown "Up" means increment / add or "Down" means decrement / subtract.

Example:

<Call Method="IncrementValue">
    <Type>TransformationMove</Type>
    <Axis>X</Axis>
    <UpDown>Up</UpDown>
</Call>

InvertVisibility

Inverts the visibility of all nodes.

Example:

<Call Method="InvertVisibility"></Call>

IsAutoCalloutAlignmentActive

Get current status of automatic callout alignment.

Example:

<Call Method="IsAutoCalloutAlignmentActive" />

Response:

Parameter Type Description
Result bool Status of automatic alignment

LockCallouts

Locks all callouts or all selected callouts.
Locked callouts cannot be transformed until unlocked again.

Example:

<Call Method="LockCallouts" />

LogMessage

Logs a message with an optional logging level.

Call:

Parameter Type Description
Message string Log message
Level
[optional]
LogLevel Log level

Example:

<Call Method="LogMessage">
    <Message>Hello world</Message>
    <Level>Error</Level>
</Call>

MeasureDistanceSolidsToSolids

Measures the distance between solids. The solids to be computed will be chosen based on the following parameter:

Call:

Parameter Type Description
DistanceSolidsComputationType DistanceSolidsComputationType Defines the type of groups to be clashed against each other.

Examples: NodesSelectedVsUnselected: Clashes all selected nodes against all unselected nodes.
NodesSelectionInternal: Clashes every selected node against every other selected node.
SelectionSetsSelectedVsUnselected: Clashes the nodes from all selected selection sets against the remaining sets.
SelectionSetsSelectionInternal: Clashes the nodes from each selection set against the nodes from each other set.

<Call Method="MeasureDistanceSolidsToSolids"><DistanceSolidsComputationType>SelectedVsUnselected</DistanceSolidsComputationType></Call>

MeasureSelectedWireLength

Highlights all wires found in the selected nodes, clears the selection and triggers a MeasurementChanged event with the accumulated wire length of all nodes.

Example:

<Call Method="MeasureSelectedWireLength" />

MirrorSelectedNodes

Mirrors the selected nodes.

Call:

Parameter Type Description
Copy bool = true If set to "true" the method will generate a mirrored copy.
Plane PlaneOption Defines the plane at which the nodes are mirrored.

Example:

<Call Method="MirrorSelectedNodes">
    <Copy>true</Cop>
    <Plane>XY</Plane>
</Call>

ModifySelection

Modifies the selection with the selected "SelectionModifier".

Call:

Parameter Type Description
SelectionModifier <SelectionModifier> Specifies how the selection is modified

Example:

<Call Method="ModifySelection">
    <SelectionModifier>Isolate</SelectionModifier>
</Call>

MoveConfigurationView

Repositions the given configuration view inside the configuration view list.

Call:

Parameter Type Description
ConfigurationView <UINT> Current position of the target configuration view (zero based index, i.e. 0 is the first configuration view)
Position <UINT> Target position of the configuration view (zero based index)

Example:

<Call Method="MoveConfigurationView">
    <ConfigurationView>1</ConfigurationView>
    <Position>2</Position>
</Call>

MouseClick

Moves the cursor to a specified position and performs a click.

Call:

Parameter Type Description
X float Cursor X position from left
Y float Cursor Y position from top
MouseButton
[optional]
<MouseButton> Mouse button

Example:

<Call Method="MouseClick">
    <X>10.0</X>
    <Y>11.1</Y>
    <MouseButton>Left</MouseButton>
</Call>

MouseDoubleClick

Performs a double click at a specified position.

Call:

Parameter Type Description
X float Cursor X position from left
Y float Cursor Y position from top
MouseButton
[optional]
<MouseButton> Mouse button

Example:

<Call Method="MouseDoubleClick">
    <X>10.0</X>
    <Y>11.1</Y>
    <MouseButton>Left</MouseButton>
</Call>

MouseDown

Performs a "Mouse down" action at a specified position.

Call:

Parameter Type Description
X float Cursor X position from left
Y float Cursor Y position from top
MouseFlag
[optional]
<MouseFlag> External flag code
MouseButton
[optional]
<MouseButton> Mouse button

Example:

<Call Method="MouseDown">
    <X>10.0</X>
    <Y>11.1</Y>
    <MouseFlag>None</MouseFlag>
    <MouseButton>Left</MouseButton>
</Call>

MouseMove

Moves the cursor to a specified position.

Call:

Parameter Type Description
X float Cursor X position from left
Y float Cursor Y position from top
MouseFlag
[optional]
<MouseFlag> External flag code
MouseButton
[optional]
<MouseButton> Mouse button that is pressed during move

Example:

<Call Method="MouseMove">
    <X>10.0</X>
    <Y>11.1</Y>
    <MouseFlag>None</MouseFlag>
    <MouseButton>None</MouseButton>
</Call>

MouseUp

Performs a "Mouse up" action at a specified position.

Call:

Parameter Type Description
X float Cursor X position from left
Y float Cursor Y position from top
MouseFlag
[optional]
<MouseFlag> External flag code
MouseButton
[optional]
<MouseButton> Mouse button

Example:

<Call Method="MouseUp">
    <X>10.0</X>
    <Y>11.1</Y>
    <MouseFlag>None</MouseFlag>
    <MouseButton>Left</MouseButton>
</Call>

MouseWheel

Performs a mouse wheel scroll at the specified position.

Call:

Parameter Type Description
X float Cursor X position from left
Y float Cursor Y position from top
Delta float Wheel delta

Example:

<Call Method="MouseWheel">
    <X>10.0</X>
    <Y>11.1</Y>
    <Delta>120.0</Delta>
</Call>

NewScene3D

Creates a new empty 3D scene using default scene settings defined before.
Remarks:
Any previous file will be closed without saving!

Call:

Parameter Type Description
DiscardExistingScenes
[optional]
bool = true Closes all open scenes if set to true
Width
[optional]
UINT = 200 Width in pixels of the window in which the model should be displayed.
Height
[optional]
UINT = 200 Height in pixels of the window in which the model should be displayed.
Name
[optional]
string Name of the new scene

Example:

<Call Method="NewScene3D">
</Call>

NextPage

Scrolls to the next page of 2D documents.

Example:

<Call Method="NextPage"></Call>

OpenFile

Opens the specified file.
Remaks:
Any previous open file will be closed without saving**!**

Call:

Parameter Type Description
FileName FileName Path to the file which should be opened.
WebViewer: relative path in ModelRepository (or full path if ModelRepository set to empty in CRendererInstance.ini).
If remote file loading is enabled (enabled by default in all products except WebViewer) you can also pass URLs to files served via HTTP/HTTPS/FTP/FTPS protocols.
Width
[optional]
UINT = 200 Width in pixels of the window in which the model should be displayed.
Height
[optional]
UINT = 200 Height in pixels of the window in which the model should be displayed.
Name
[optional]
string If set, renames the master root node and matching root nodes.
Master root nodes are typically named after the loaded file's name, e.g. FooBar.CATPart or FooBar.CATPart.3dvs
If the master root node contains any child root node whose...
- ...name is equal to the master root node's name
- ...name is equal to the master root node's name except for the last extension (e.g. just FooBar or FooBar.CATPart)
- ...name is equal to the master root node's name except for the last two extensions (3dvs only, e.g. just FooBar)
... then the node's name is replaced by the provided value.
ExecuteAsync
[optional]
bool = false Asynchronously executes this method.
See Remarks for more info about asynchronous execution.

Response (synchronous execution):

Parameter Type Description
NewViewId UINT Id fo the newly created View.
Type 2D / 3D Identifies what type of file was opened.
FileFormat string Format and version of the opened file.

Response (asynchronous execution):

Parameter Type Description
AsyncOperationId string Id of asynchronous operation.

Remarks:
If executed with ExecuteAsync flag set to true, the method returns an operation identifier which can be used to identify the matching AsyncEventEnd event instance.

Example (synchronous execution):

<Call Method="OpenFile">
    <FileName>C:\dir\test.3dvs</FileName>
    <!-- JavaScript: '<FileName>C:\\dir\\test.3dvs</FileName>' -->
    <Width>1024</Width>
    <Height>1024</Height>
</Call>

<Response Method="OpenFile" Error="SUCCESS">
    <NewViewId>1</NewViewId>
    <Type>3D</Type>
</Response>

Example (asynchronous execution):

<Call Method="OpenFile">
    <ExecuteAsync>true</ExecuteAsync>
    <FileName>C:\dir\test.3dvs</FileName>
    <Width>1024</Width>
    <Height>1024</Height>
</Call>

<Response Method="OpenFile" Error="SUCCESS">
    <AsyncOperationId>21a8727b-1c4d-4b90-9b9e-562850a07481</AsyncOperationId>
</Response>

<!-- Event triggered after async operation finished -->
<Event Type="AsyncEventEnd" ViewId="0">
    <Id>21a8727b-1c4d-4b90-9b9e-562850a07481</Id> <!-- Same identifier as in OpenFile response -->
    <SceneId>1</SceneId>
    <NewViewId>1</NewViewId>
    <Type>3D</Type>
</Event>

OverwriteInitialNodeState

Overwrites the initial state of the given or the selected nodes. Includes color, material, texture and transparency. If no node is selected, all nodes are affected.

Parameter Type Description
NodeId
[multiple]
NodeId NodeIds of the nodes.
If no NodeId is provided, the selection will be used.

Example:

<Call Method="OverwriteInitialNodeState" />
<Call Method="OverwriteInitialNodeState">
<NodeId>1</NodeId>
<NodeId>2</NodeId>
<NodeId>3</NodeId>
</Call>

PasteNodes

Pastes previously copied nodes to each selected node according to the defined DropPosition. Some nodes are not compatible for some drop operations, so nodes may be pasted to different positions.

Call:

Parameter Type Description
NodeIds [optional] NodeId Node(s) to paste the previously copied nodes to. If missing, a new root node will be created.
DropPosition
Default: Center
DropPosition Relative position inside/next to the target node(s).
UseExpandedState
Default: false
bool Should nodes be added as children if a node is expanded?

Example:

<Call Method="PasteNodes">
    <SceneId>2</SceneId>
    <NodeId>78</NodeId>
    <NodeId>90</NodeId>
</Call>

<Call Method="PasteNodes">
    <SceneId>2</SceneId>
    <NodeId>78</NodeId>
    <NodeId>90</NodeId>
    <DropPosition>Top</DropPosition>
    <UseExpandedState>true</UseExpandedState>
</Call>

PathBasedTransformationInitializePath

Initializing path based transformation by defining the path node, either by selecting one single wire node during the call or by specifying the node id.

Call:

Parameter Type Description
NodeId [optional] <NodeId> NodeId of the wire node, which specifies the path. If no NodeId is specified, current selection will be used.

Example:

<Call Method="PathBasedTransformationInitializePath">
    <NodeId>85</NodeId>
</Call>

PathBasedTransformationInitializeTargetNodes

Initializing path based transformation by defining the node to be dragged along the defined path.

Call:

Parameter Type Description
NodeId [multiple] <NodeId> NodeId of the wire node, which specifies the path. If no NodeId is specified, current selection will be used.

Example:

<Call Method="PathBasedTransformationInitializeTargetNodes">
    <NodeId>86</NodeId>
    <NodeId>87</NodeId>
</Call>

PathBasedTransformationMoveTo

Transform a set of specified node (by PathBasedTransformationInitializeTargetNodes) along a specified path (by PathBasedTransformationInitializePath) to the specified position, which is defined in length percentage of the total path length.

Call:

Parameter Type Description
Percentage float Length percentage of the total path length

Example:

<Call Method="PathBasedTransformationMoveTo">
    <Percentage>20</Percentage>
</Call>

PathEditingActivatePointSelection

Activate the picking of another point to be moved during path editing.

Example:

<Call Method="PathEditingActivatePointSelection"/>

PathEditingFinalize

Finalize the path editing function and deactivate all associated interaction modes, i.e. point selection and translation handles.

<Call Method="PathEditingFinalize"/>

PathEditingInitialize

Initialize the path editing function. This method has to be called with one single selected wire node, i.e. the path to be edited.

Example:

<Call Method="PathEditingInitialize"/>

PauseRendering

Pauses rendering and tree updates.

Example:

<Call Method="PauseRendering"></Call>

PreviousPage

Scrolls to previous page of 2D documents.

Example:

<Call Method="PreviousPage"></Call>

ReloadAllNodes

Executes a top-down recursive reload of the nodes, which is to be used after a structure-only import. Example usecase: as a workaround in case of an unsuccessful standard model import because some of the referenced parts are unsupported.

Example:

<Call Method="ReloadAllNodes"></Call>

RemoveEmptyNodes

Removes all empty nodes from the current scene.

Example:

<Call Method="RemoveEmptyNodes">
</Call>

RemoveEventListener

Removes an "Eventlistener" (see also Events).

Call:

Parameter Type Description
Event
[multiple]
<Event> Specifies the event which should be removed.

Example:

<Call Method="RemoveEventListener">
    <Event>ActivateInteraction</Event>
    <Event>DeactivateInteraction</Event>
</Call>

RemoveFaces

Removes face information from all selected nodes or all nodes if none are selected.

Example:

<Call Method="RemoveFaces" />

RemoveNormals

Removes normals for all selected nodes or all nodes if none are selected.

Example:

<Call Method="RemoveNormals" />

RemoveWires

Removes wires for all selected nodes or all nodes if none are selected.

Example:

<Call Method="RemoveWires" />

RenameBillOfMaterialRowCalloutId

Renames the callout id assigned to the row's nodes.

Call:

Parameter Type Description
RowId UINT Row id
CalloutId string Callout id

Example:

<Call Method="RenameBillOfMaterialRowCalloutId">
    <RowId>0</RowId>
    <CalloutId>456</CalloutId>
</Call>

RenameSavedSelection

Renames a saved selection.

Call:

Parameter Type Description
Index UINT Index of the selection
Name string New name of the selection

Example:

<Call Method="RenameSavedSelection">
    <Index>0</Index>
    <Name>FooBar</Name>
</Call>

ReplaceNode

Replaces the node with a new file/part.

Call:

Parameter Type Description
NodeId NodeId NodeId of the node to be replaced.
FileName string Path of the new part.
ReplaceAll
[optional]
bool = false Replace all nodes with the same path as the node to be replaced.
KeepCurrent
[optional]
bool = false Keep and only hide the current node.

Example:

<Call Method="ReplaceNode">
    <NodeId>85</NodeId>
    <FileName>C:\test.3dvs</FileName>
    <ReplaceAll>true</ReplaceAll> <!-- optional -->
    <KeepCurrent>true</KeepCurrent> <!-- optional -->
</Call>

ResetCoordinateSystem

Activates the default coordinate system.

Example:

<Call Method="ResetCoordinateSystem"></Call>

ResetSceneLight

Reset the scene lighting to the default ambient, diffuse and specular values.

Example:

<Call Method="ResetSceneLight" />

ResetNodesLuminance

Reset specified nodes luminance; applies to the currently selected nodes or to all specified node luminance if the current selection is empty.

Example:

<Call Method="ResetNodesLuminance" />

ResetNodesToInitialState

Resets the state of the given or the selected nodes back to the initial state. Includes color, material, texture and transparency. If no node is selected, all nodes are affected.

Parameter Type Description
NodeId
[multiple]
NodeId NodeIds of the nodes.
If no NodeId is provided, the selection will be used.

Example:

<Call Method="ResetNodesToInitialState" />
<Call Method="ResetNodesToInitialState">
<NodeId>1</NodeId>
<NodeId>2</NodeId>
<NodeId>3</NodeId>
</Call>

ResetWallthicknessVisualization

Resets the scene's wall thickness heat map visualization properties.

Example:

<Call Method="ResetWallthicknessVisualization" />

ResetZoom

Resets the zoom, whole model can be seen without leaving the window extends on rotating the camera.

Example:

<Call Method="ResetZoom"></Call>

ResumeRendering

Resumes rendering and updates tree.

Example:

<Call Method="ResumeRendering"></Call>

RotatePage

Rotates the page of a 2D document by 90, 180 or 270 degrees.

Call:

Parameter Type Description
Angle UINT Angle by which to rotate the current page. Other values are not supported.

Example:

<Call Method="RotatePage"><Angle>90</Angle></Call>

Save2DAsPdf

Save a 2D-Session as vector PDF file. Remarks:
Saving will overwrite existing files**!**

Call:

Parameter Type Description
FileName string Path of the new file

Example:

<Call Method="SaveAs">
    <FileName>C:\test.pdf</FileName>
</Call>

SaveAs

Save the Session as 3DVS file. Remarks:
Saving will overwrite existing files**!**

Call:

Parameter Type Description
FileName string Path of the new file
SaveNodes
[optional]
bool = false Save subtrees of the modelfile, starting from the provided NodeIds below.
If no NodeIds are provided, the selection will be used.
NodeId
[multiple]
NodeId Node to save.

Example:

<Call Method="SaveAs">
    <FileName>C:\test.3dvs</FileName>
    <SaveNodes>true</SaveNodes>
    <NodeId></NodeId>
</Call>

SaveAsRelative

Save the Session as 3DVS file. Remarks:
Saving will overwrite existing files**!**

Call:

Parameter Type Description
FileName string Relative path of the new file, starting from the configured modelrepository
SaveNodes
[optional]
bool = false Save subtrees of the modelfile, starting from the provided NodeIds below.
If no NodeIds are provided, the current selection is used.
NodeId
[multiple]
NodeId Node to save.

Example:

<Call Method="SaveAsRelative">
    <FileName>test.3dvs</FileName>
    <SaveNodes>true</SaveNodes>
    <NodeId></NodeId>
</Call>

SaveCurrentSelection

Save the currently selected nodes as a new selection.

Remarks:
This is a temporary action.
You have to save the opened file as .3dvs to persist selections over the current session.

Call:

Parameter Type Description
Name
[optional]
string Name of the selection

Response:

Parameter Type Description
Index UINT Index of the selection
Name string Name of the selection

Example:

<Call Method="SaveCurrentSelection">
    <Name>Foo</Name>
</Call>

<Response Method="SaveCurrentSelection">
    <Index>0</Index>
    <Name>Foo</Name>
</Response>

SearchNodes

Search nodes with the given parameters.

Call:

Parameter Type Description
SearchString SearchString A search string which specifies the search parameters (AND combined)
SelectionMode SearchSelectionMode = None Specified if nodes should be selected, replace selection or be added to the selection.
IncludeHiddenGeometries bool = false Specifies if hidden geometry should be included in the search.
CaseSensitive bool = false Specifies if hidden geometry should be included in the search.
Color RGB Search for nodes matching color instead of passing a search string

Response:

Parameter Type Description
NodeId
[multiple]
NodeId Matching list of NodeIds as search result.

Example:

<Call Method="SearchNodes">
    <SearchString>Name="Test" + "AttributeName"="AttributeValue"</SearchString
    <SelectionMode>None</SelectionMode>
    <IncludeHiddenGeometries>true</IncludeHiddenGeometries>
</Call>

<Call Method="SearchNodes">
    <Color>#FFFF00</Color>
    <SelectionMode>Select</SelectionMode>
</Call>

<Call Method="SearchNodes">
    <Color>#FF00FF</Color>
    <SelectionMode>None</SelectionMode>
</Call>

<Call Method="SearchNodes">
    <SearchString>Name="*part_of_node_name*"+ Type="ProductOccurrence" + "SomeAttributeName"="exact_attribute_text_value"
    </SearchString>
    <SelectionMode>AddToSelection</SelectionMode>
    <IncludeHiddenGeometries>false</IncludeHiddenGeometries>
</Call>

<Call Method="SearchNodes">
    <SearchString>Content="*text_contained_in_content*"</SearchString>
    <SelectionMode>Select</SelectionMode>
    <IncludeHiddenGeometries>true</IncludeHiddenGeometries>
</Call>

<Call Method="SearchNodes">
    <SearchString>CustomId="*part_of_custom_id*"</SearchString>
    <SelectionMode>Select</SelectionMode>
    <IncludeHiddenGeometries>true</IncludeHiddenGeometries>
</Call>

<Call Method="SearchNodes">
    <SearchString>CustomId="EXACTmatchingID*"</SearchString>
    <SelectionMode>None</SelectionMode>
    <IncludeHiddenGeometries>true</IncludeHiddenGeometries>
    <CaseSensitive>true</CaseSensitive>
</Call>


<Response Method="SearchNodes" Error="SUCCESS">
    <NodeId>85</NodeId>
    <NodeId>103</NodeId>
</Response>

SearchNodesByRule

Search and select nodes as defined by a search rule, allowing for a more detailed search. Only the rule is required; the remaining parameters have default values, sometimes taken from the scene settings.

Call:

Parameter Type Description
Rule string A string which specifies the search parameters.
IncludeHiddenGeometries bool, taken from scene settings if missing Specifies if hidden geometry should be included in the search.
CaseSensitive bool, taken from scene settings if missing Specifies if search terms should be treated case-sensitive. Keywords are always case-insensitive.
ReturnNodeIds bool = true Node ids and custom ids (if applicable) of found nodes will be added to the response call.
SelectionMode SearchSelectionMode = Select Specifies how found nodes interact with the existing selection in the scene.
Action RuleAction = None Specifies what should be done with the nodes that were found by the rule.

Response:

Parameter Type Description
NodeId
[multiple]
NodeId Nodes matching the rule string, with optional custom ids

List of possible rule syntax elements:

Operator Comment
< The first argument is smaller than the second one
<= The first argument is smaller than or equal to the second one
= The first argument is equal to the second one
>= The first argument is greater than or equal to the second one
> The first argument is greater than the second one
is The first argument is equal to the second one
and Logical combination between two arguments where both must be true. Takes precedence over the "or" operator.
or Logical combination between two arguments where both at least one must be true.
not Logical combination that negates the following operator
Keyword Comment
node.isvisible The node is visible in the scene (not the structure tree)
node.istransformed The node has a transformation set, so a translation, rotation or scaling is applied
node.iscuttable The node can be cut
node.isghosted The node has been ghosted
node.hasvertexcolors The node's geometry has vertex colors (it does not matter if they are displayed)
node.hasgeometry The node has geometry (can be triangles, wires or points)
node.hasbrep The node has BREP data
node.hascustomid The node has a custom id
node.iscuttabilitylocked The node has the following constraint set: cuttability locked
node.isvisibilitylocked etc
node.iscolorlocked etc
node.ismateriallocked etc
node.istransparencylocked etc
node.isghostlocked etc
node.iscoloroverwritelocked etc
node.istransparencyoverwritelocked etc
node.id Returns the node id
node.geometryid Returns the node's geometry id. If the node has no geometry, it will return 0
node.color Returns the node's color. Expects a hexadecimal representation (such as #FF00FF)
node.vertexcolor Checks if a node's geometry contains a specific vertex color. Expects a hexadecimal representation (such as #FF00FF)
node.volume Returns the node's volume or 0 if none has been calculated
node.surface Returns the node's surface or 0 if none has been calculated
node.density Returns the node's density or 0 if none has been calculated
node.mass Returns the node's mass or 0 if none has been set
node.transparency Returns the node's transparency
node.luminance Returns the node's luminance
node.scale Returns the node's scale
node.name Returns the node's name
node.type Returns the node's type, such as "ProductOccurrence"
node.customid Returns the node's custom ID or empty if none has been set
node.filepath Returns the node's filepath or empty if none has been set
node.material Returns the node's material
node.texture Returns the node's texture
markup.content If the node is a markup, queries all markup contents (the visible text)
node.attribute("x") Checks if a node has a specific attribute
node.attribute("x")="y" Checks if a node has a specific attribute with a specific value
node.attribute("x")>=double Checks if a node has a specific attribute with a numerical value, and compares it
contains(node.dataType, "abc", "def") Checks if a node datum exists in a specified list. Possible data are name, customid and color. Wildcards are allowed.
contains(node.attribute, "attributeName", "abc", "def") Same as above, but with the attribute name included before the list.

Example:

<Call Method="SearchNodesByRule">
    <Rule>node.isvisible</Rule>
    <IncludeHiddenGeometries>true</IncludeHiddenGeometries>
    <CaseSensitive>true</CaseSensitive>
    <ReturnNodeIds>false</ReturnNodeIds>
    <IncludePartNodes>false</IncludePartNodes>
    <SelectionMode>None</SelectionMode>
    <Action>Hide</Action>
</Call>

SearchNodesByString

Search nodes with the given parameters from string.
Option such as case sensitive or select after search will be taken from the current scene settings.

Call:

Parameter Type Description
SearchString string A search string which specifies the search parameters.

Response:

Parameter Type Description
NodeId
[multiple]
NodeId Nodes matching search string

Example:

<Call Method="SearchNodes">
    <SearchString>Name="*part_of_node_name*"+ Type="ProductOccurrence" + "SomeAttributeName"="exact_attribute_text_value"
    </SearchString>
    <SelectionMode>AddToSelection</SelectionMode>
    <IncludeHiddenGeometries>false</IncludeHiddenGeometries>
</Call>

SectionAlignAxis

Aligns the section pane on the given axis.

Call:

Parameter Type Description
Axis string Axis to align on.
Values: X, Y or Z

Example:

<!-- Aligns the section pane on the X axis. -->
<Call Method="SectionAlignAxis">
    <Axis>X</Axis>
</Call>

SelectAllGeometries

Selects all geometries.

Example:

<Call Method="SelectAllGeometries"></Call>

SelectBillOfMaterialRows

Selects all nodes contained in the given rows.

Call:

Parameter Type Description
RowId
[multiple]
UINT Rows to select
AddToSelection bool Add nodes to current selection (default: false)

Example:

<Call Method="SelectBillOfMaterialRows">
    <RowId>0</RowId>
    <RowId>1</RowId>
    <AddToSelection>true</AddToSelection>
</Call>

SelectClashIndex

Selects the clash with the given index.

Call:

Parameter Type Description
Index UINT Index to select

Example:

<Call Method="SelectClashIndex">
    <RowId>1</RowId>
</Call>

SelectGeometries

Selects all geometries. Visibility can be controlled via the Visible parameter.

Call:

Parameter Type Description
Visible
Default: true
bool Only select visible geometries.

Example:

<Call Method="SelectGeometries"><Visible>false</Visible></Call>

SelectMarkups

Selects all markups. Visibility can be controlled via the Visible parameter.

Call:

Parameter Type Description
Visible
Default: true
bool Only select visible markups.

Example:

<Call Method="SelectMarkups"><Visible>false</Visible></Call>

SelectPMIs

Selects all PMIs. Visibility can be controlled via the Visible parameter.

Call:

Parameter Type Description
Visible
Default: true
bool Only select visible PMIs.

Example:

<Call Method="SelectPMIs"><Visible>false</Visible></Call>

SelectObjects

Selects any objects. Visibility can be controlled via the Visible parameter.

Call:

Parameter Type Description
Visible
Default: true
bool Only select visible objects.

Example:

<Call Method="SelectObjects"><Visible>false</Visible></Call>

SelectSurfaces

Selects all nodes that consist of only one surface, and returns the number of nodes selected.

Response:

Parameter Type Description
Number UINT Number of nodes selected

Example:

<Call Method="SelectSurfaces" />

<Response Method="SelectSurfaces" Error="SUCCESS">
    <Number>34</Number>
</Response>

SelectVisibleCallouts

Selects all visible callouts.

Example:

<Call Method="SelectVisibleCallouts" />

SetAnimationAxis

Sets the animation axis for the selected nodes.

Call:

Parameter Type Description
Direction CoordinateDirection Animation axis

Example:

<Call Method="SetAnimationAxis">
    <Direction>X</Direction>
</Call>

SetAnimationSpeed

Sets the animation rotation speed for the selected nodes.

Call:

Parameter Type Description
Speed float Rotation speed

Example:

<Call Method="SetAnimationSpeed">
    <Speed>0.5</Speed>
</Call>

SetBCFVisualizationInfo

SET a view to be displayed in current scene as BCF 1.0, 2.0 or 2.1 Visualization Information XML.

(Version 2.1)
Components
Selection
Visibility
Coloring

(Version 2.0 and 1.0)
Components
Component - Selected, Visible, Color

(Version 2.1, 2.0 and 1.0)
OrthogonalCamera (the first camera determines the mode of the scene, orthogonal or perspective)
PerspectiveCamera
ClippingPlanes (only one plane supported)

Remarks:

For Selection, Visibility, Coloring IFC Data requires loading with attributes (IfcGuid), the same applies to preparation of 3DVS files.

<!-- ReadAttributes setting for file import -->
<Call Method="SetSettings">
    <Settings><Import3D>
        <Filter><ReadAttributes>true</ReadAttributes></Filter>
    </Import3D></Settings>
</Call>

Call:

Parameter Type Description
VisualizationInfo XML https://github.com/buildingSMART/BCF-XML
Scale
[optional]
float for units other than meters, default: 1.0
FadeTime
[optional]
UINT Fade time for a camera transition in ms (Default: 0 ms - no transition)

All X, Y, Z coordinates in meter

Example:

<Call Method="SetBCFVisualizationInfo">
    <FadeTime>2000</FadeTime> <!-- optional camera transition-->
    <VisualizationInfo>
        <PerspectiveCamera>
            <CameraViewPoint>
                <X>30.287109</X>
                <Y>26.765625</Y>
                <Z>61.891602</Z>
            </CameraViewPoint>
            <CameraDirection>
                <X>-0.671611</X>
                <Y>-0.638433</Y>
                <Z>-0.375954</Z>
            </CameraDirection>
            <CameraUpVector>
                <X>-0.272485</X>
                <Y>-0.259024</Y>
                <Z>0.926638</Z>
            </CameraUpVector>
            <FieldOfView>45.0</FieldOfView>
        </PerspectiveCamera>
    </VisualizationInfo>
</Call>

GetBCFVisualizationInfo


SetCalloutAlignment

Sets the alignment for all currently selected callouts or all, if no selection was made.

Call:

Parameter Type Description
Alignment MarkupAlignment Alignment to set

Example:

<Call Method="SetCalloutAlignment">
    <Alignment>Rectangle</Alignment>
</Call>

SetCamera

Sets the current camera position.

Call:

Parameter Type Description
Position float Camera position
LooktAt float Point to which the camera looks
UpVector float Up vector of the camera
FadeTime
[optional]
UINT Fade time for animated camera transition in ms (Default: 0 ms - no transition)

Example:

<Call Method="SetCamera" Error="SUCCESS">
    <FadeTime>2000</FadeTime> <!-- optional -->
    <Position>
        <X>10.0</X>
        <Y>10.0</Y>
        <Z>10.0</Z>
    </Position>
    <LookAt>
        <X>0.0</X>
        <Y>0.0</Y>
        <Z>0.0</Z>
    </LookAt>
    <UpVector>
        <X>0.0</X>
        <Y>0.0</Y>
        <Z>1.0</Z>
    </UpVector>
</Call>

SetCurrentView

Deserialize into the current view.

Call:

Parameter Type Description
CurrentView XMLNode As exported from GetCurrentView

Example:

<Call Method="SetCurrentView">
    <!-- CurrentView -->
</Call>

<Response Method="SetCurrentView" Error="SUCCESS" />

SetSceneLight

Sets the scene's lighting components: ambient, diffuse and specular. This is used, e.g. to reduce brightness in case of a night scene.

Call:

Parameter Type Description
Ambient float3 Directionless lighting, provides the scene with basic brightness.
Diffuse float3 Lighting component which provides the surface brightness depending on its direction.
Specular float3 Lighting component which creates bright spots on surface depending on its shininess.

Example:

<Call Method="SetSceneLight">
    <Ambient>0.1 0.1 0.1</Ambient>
    <Diffuse>0.5 0.5 0.5</Diffuse>
    <Specular>0.1 0.1 0.1</Specular>
</Call>

SetSceneSettings

Sets runtime settings for the current scene.

Call:

Parameter Type Description
SettingsXML SettingsXML Desired scene settings

Example:

<Call Method="SetSceneSettings">
    <!-- SettingsXML -->
</Call>

SetSelectedFaces

Selects a range of faces from a node.

Call:

Parameter Type Description
NodeId NodeId NodeId to which the face ids refer, or #CustomId.
FaceId
[multiple]
UINT Ids of the faces which should be selected.
AddToSelection
[optional]
(default: false)
bool true to add the given face ids to the current selection, clears the current selection if false

Example:

<Call Method="SetSelectedFaces">
    <AddToSelection>true/false</AddToSelection>
    <NodeId>#YourCustomId</NodeId>
    <FaceId>0</FaceId>
    <FaceId>2</FaceId>
    <FaceId>9</FaceId>
</Call>

SetSelectedFacesColor

Sets a Color (ARGB) to selected faces

Call:

Parameter Type Description
Color ARGB NodeIds of the nodes which should be selected, or #CustomId.

Example:

<Call Method="SetSelectedFacesColor">
    <Color>#FFFFFF<Color>
</Call>

SetSelectedNodes

Selects a range of nodes.

Call:

Parameter Type Description
NodeId
[multiple]
NodeId NodeIds of the nodes which should be selected, or #CustomId.
AddToSelection
[optional]
(default: false)
bool true to add the given node ids to the current selection, clears the current selection if false

Example:

<Call Method="SetSelectedNodes">
    <AddToSelection>true/false</AddToSelection>
    <NodeId>#YourCustomId</NodeId>
    <NodeId>30</NodeId>
</Call>

SetSelectedNodesLuminance

This is used, for example, to simulate a light source in night scenes, such as a position light or daytime running light.
The given float number between 0 and 1 will be added to the ambient lighting component of the selected nodes.
The light color is determined by the color of the node.

Call:

Parameter Type Description
Luminance float Specifies additional brightness, range [0, 1].

Example:

<Call Method="SetSelectedNodesLuminance">
    <Luminance>0.1</Luminance>
</Call>

SetSelectionMode

Sets the selection mode.

Call:

Parameter Type Description
SelectionMode SelectionMode Desired selection mode
Example:
<Call Method="SetSelectionMode">
    <SelectionMode>Select</SelectionMode>
</Call>

SetSettings

Sets global settings.

Call:

Parameter Type Description
SettingsXML SettingsXML Desired global settings.

Example:

<Call Method="SetSettings">
    <!-- SettingsXML -->
</Call>

SetLayerVisibility

Sets the visibility of a layer. Toggles the visibility, if the bool-parameter is not set.

Example:

<Call Method="SetLayerVisibility" Error="SUCCESS">
    <Id>0</Id>
    <Visible>false</Visible>
</Call>

SetLightDirectionToCameraDirection

Set the direction of the specified directional light source to the current viewing direction.

Example:

<Call Method="SetLightDirectionToCameraDirection">
    <Index>2</Index>
</Call>

SetLightPositionToSelectionCenter

Set the position of the specified point light source to the bounding box center of the current selection.

Example:

<Call Method="SetLightPositionToSelectionCenter">
    <Index>2</Index>
</Call>

SetMaterialColorAsNodeColor

Sets the node color of all nodes with a material to the material color. The material will not be removed. Vertex colors can optionally be removed.

Call:

Parameter Type Description
NodeId
[multiple, optional]
NodeId NodeId(s) of the Node(s) which should be changed.
If none are provided, the selection will be used.
RemoveVertexColors
Default: false
bool If vertex colors should also be removed.

Example:

<Call Method="SetMaterialColorAsNodeColor">
    <RemoveVertexColors>true</RemoveVertexColors>
</Call>

SetModelRepository

Sets the WebViewer model repository path.

Note for WebViewer users: This method only has an effect if the AllowModelRepositoryOverrides setting in CRendererInstance.ini is set to 1 (default: 0)

Call:

Parameter Type Description
Path String Path to the model repository.

Example:

<Call Method="SetModelRepository">
    <Path>C:\Path\To\Models</Path>
</Call>

SetNodeProperties

Sets the properties of the specified Node.

Call:

Parameter Type Description
NodeId
[multiple]
NodeId NodeId of the Node which should be changed.
If no NodeId is provided, the selection will be used.
VSXML VSXML Desired node properties.

Example:

<Call Method="SetNodeProperties">
    <NodeId>14</NodeId>
    <NodeId>15</NodeId>
    <!-- VSXML -->
</Call>

SetNodeTransformMatrix

Sets the transformation matrix of a specific node.

Parameter Type Description
Global
[optional]
bool = true If true, then the global matrix is set. Otherwise, the local matrix.
NodeId NodeId NodeId of the node.
TransformMatrix Matrix a 4x4 row major transformation matrix

Example:

<Call Method="SetNodeTransformMatrix">
    <Global>true</Global>
    <NodeId>14</NodeId>
    <TransformMatrix>1 0 0 0 0 1 0 0 0 0 1 0 21.96 28.84 -36.01 1</TransformMatrix>
</Call>

SetTransformAlignmentOffset

Sets offset for aligning transformation functions, i.e. move point-to-point, move circle-center-to-circle-center, move circle-center-to-point, move plane-to-plane (with axis boundary condition).

Example:

<Call Method="SetTransformAlignmentOffset">
    <Offset>1.5f</Offset>
</Call>
<Response Method="SetTransformAlignmentOffset" Error="SUCCESS" />

ShowAll

Shows everything.

Example:

<Call Method="ShowAll"></Call>

ShowAllCallouts

Shows all callouts.

Example:

<Call Method="ShowAllCallouts" />

ShowDocumentAttachment

Shows the attachment of the current scene at the specified index from GetDocumentAttachmentData.
Works only for PDF attachments at this time.

Call:

Parameter Type Description
Index UINT Attachment index in the list, starting at 0

Example:

<Call Method="ShowDocumentAttachment"><Index>1</Index></Call>

<Response Method="ShowDocumentAttachment" Error="ErrorCode"/>

Possible errors:

Error code Description
SUCCESS Attachment was successfully shown.
WARN_NO_ACTION_PERFORMED Attachment currently shown was selected.
ERR_INDEX_OUT_OF_RANGE Index range was invalid.
ERR_UNABLE_TO_IMPORT_3D_TO_2D 3D attachment was selected for display.
ERR_UNABLE_TO_LOAD_FILE if the file is broken or the format is not supported.

StartNewSplitSession

Starts a new split session, the current split session will be reseted, i.e. all directions and split groups will be deleted.

Example:

<Call Method="StartNewSplitSession"/>

StartPlayConfigurationViews

Starts the playback of the ConfigurationViews.

Timing can be set per ConfigurationView. If not set, it is taken from ConfigurationView Settings.

Call:

Parameter Type Description
Position
optional
Default: 0
UINT Position of the ConfigurationView to start the playback.
Reverse
optional
Default: false
bool Play towards the end or the beginning of the list.
Number
optional
Default: 0
UINT The number of ConfigurationViewsin this playback sequence. 0 = All

Example:

<Call Method="SetSceneSettings">
    <Settings>
        <Scene>
            <ConfigurationView>
                <ViewPlay>
                    <TransitionTime>2</TransitionTime>
                    <DurationTime>1</DurationTime>
                </ViewPlay>
            </ConfigurationView>
        </Scene>
    </Settings>
</Call>

<Call Method="StartPlayConfigurationViews">
    <Position>10</Position>
    <Reverse>false</Reverse>
    <Number>0</Number>
</Call>

StopPlayConfigurationViews

Stops the playback of the ConfigurationViews.

Example:

<Call Method="StopPlayConfigurationViews"/>

StructureCompare

Compute the structure

Call:

Parameter Type Description
NodeId
[optional]
NodeId Nodes to be compared. If not provided, the two selected nodes or root nodes will be used instead.
Format ExportInformationFormat Format in which the computation results will be provided.
Options string Options for the comparison, separated by comma, case sensitive. Please refer to the table below for details.
FileName Filename If set, the computation results will be written to the file. Otherwise, the ExportInformationString return parameter will be used instead.

The following options can be toggled on or off. The node name is always compared against.

Option Description
Filepath
Structure Added or removed nodes
Visibility
Text CustomId, PMI texts
Appearance Color, material, texture
Transformation Rotation, translation, scaling
Attributes
Geometry
PhysicalProperties Volume, surface, density
All All of the above

Example:

<Call Method="StructureCompare">
    <NodeId>123</NodeId>
    <NodeId>456</NodeId>
    <Format>CSV</Format>
    <Options>Text,Attributes</Options>
</Call>

StructureCompareSelectRow

Call:

Selects a row in the Structure compare results. The settings in Settings.Scene.Tools.StructureCompare.Visualization dictate what happens upon selection.

Parameter Type Description
Index UINT = -1 Index of the row to select. Send -1 to deselect.

Example:

<Call Method="StructureCompareSelectRow">
    <Index>1</Index>
</Call>

TerminateSplitSession

Terminates the currently open split session, which is a loop of selecting split direction and triggering computation. Hence, this method can e.g. be used to deactivate the direction selecting interaction mode.

<Call Method="TerminateSplitSession"/>

Undo

Undos a specifies number of actions.

Call:

Parameter Type Description
Steps UINT = 1 Number of steps which should be undone.

Example:

<Call Method="Undo">
    <Steps>1</Steps>
</Call>

ToggleNodeSelection

Toggles the selection state of the given nodes.

Parameter Type Description
NodeId [multiple] <NodeId> NodeIds of the nodes to toggle.

Example:

<Call Method="ToggleNodeSelection">
   <NodeId>1</NodeId>
   <NodeId>2</NodeId>
   <NodeId>3</NodeId>
</Call>


UnGhostAll

Unghosts all ghosted nodes.

Example:

<Call Method="UnGhostAll"></Call>

UnlockCallouts

Unlocks all callouts or all selected callouts.

Example:

<Call Method="UnlockCallouts" />

UpdateBillOfMaterialRowCalloutId

Updates the callout id value of the provided BOM row.

If the BOM row contains no callout id, the provided callout id gets remembered to be used by the next call to GenerateBOMCallouts.
If the new callout id is empty, any assigned or remembered callout id value gets cleared.
If the row contains an id to an existing callout, the actual callout gets renamed.

Parameter Type Description
RowId UINT Id of the BOM row to update
CalloutId string New callout id value to use

UpdateConfigurationView

Updates the ConfigurationView at the specified position.

Call:

Parameter Type Description
Position UINT Position of the ConfigurationView.
Name string Optional: New name for the ConfigurationView

Remarks:
If the optional Name parameter is given in the call, then only a rename will be performed.

Example:

<Call Method="UpdateConfigurationView">
    <Position>2</Position>
</Call>

<Call Method="UpdateConfigurationView">
    <Position>3<Position>
    <Name>NewName</Name>
</Call>

UpdateSavedSelection

Updates the saved selection with the currently selected nodes.

Call:

Parameter Type Description
Index UINT Index of the saved selection

Example:

<Call Method="UpdateSavedSelection">
    <Index>0</Index>
</Call>

UpdateScene

Updates the scene by deleting the current scene and rebuilding the node structure tree using a cache of 3DVS references from the previous UpdateScene call.
Use NewScene3D to start with an empty scene or clean the cache.

Call:

Parameter Type Description
KeepCreatedNodes bool = true Specifies if the "CreatedNodes" subtree should be preserved
VSXML VSXML New scene structures VSXML

Example:

<Call Method="UpdateScene">
    <KeepCreatedNodes>false</KeepCreatedNodes>
    <!--VSXML-->
</Call>

ValidateGeometry

Utilizes the "Reference" part of ImportMarkups to validate geometry

Call:

Parameter Type Description
Recover bool
Default: true
Try to recover reordered indices.
This increases the time

Example:

<Call Method="ValidateGeometry">
    <Recover>true</Recover>
</Call>

VirtualTreeViewCollapseAll

Collapses all nodes in the tree.

Example:

<Call Method="VirtualTreeViewCollapseAll" />

VirtualTreeViewCollapseSelected

Collapses the children of all selected nodes.

Example:

<Call Method="VirtualTreeViewCollapseSelected" />

VirtualTreeViewExpandAll

Expands all nodes in the tree.

Example:

<Call Method="VirtualTreeViewExpandAll" />

VirtualTreeViewExpandSelected

Expands all selected nodes to make all their children visible.

Example:

<Call Method="VirtualTreeViewExpandSelected" />

VirtualTreeViewExpandToSelectedLevel

Expands the entire tree to the level of the selected node.
This will not work if more than one node is selected.

Example:

<Call Method="VirtualTreeViewExpandToSelectedLevel" />

VirtualTreeViewSelectSameLevelNodes

Selects all nodes that are on the same level as the selected node.
If more than one node is selected, the first one will be taken as reference.

Example:

<Call Method="VirtualTreeViewSelectSameLevelNodes" />

VirtualTreeViewSetSize

Sets the number of lines visible to the amount specified.

Call:

Parameter Type Description
Size UINT Number of lines visible

Example:

<Call Method="VirtualTreeViewScrollUp">
      <Size>20</Size>
</Call>

VirtualTreeViewScrollDown

Scrolls down the tree for the specified amount of steps.

Call:

Parameter Type Description
Steps UINT Number of steps to scroll down

Example:

<Call Method="VirtualTreeViewScrollDown">
      <Steps>15</Steps>
</Call>

VirtualTreeViewScrollUp

Scrolls up the tree for the specified amount of steps.

Call:

Parameter Type Description
Steps UINT Number of steps to scroll up

Example:

<Call Method="VirtualTreeViewScrollUp">
      <Steps>15</Steps>
</Call>

VirtualTreeViewToggleExpansion

Expands a node if not expanded and collapses it otherwise.

Call:

Parameter Type Description
NodeId NodeId NodeId of the node to be toggled.

Example:

<Call Method="VirtualTreeViewToggleExpansion">
      <NodeId>12</NodeId>
</Call>

VirtualTreeViewToggleVisibility

Makes a node visible if hidden and hides it otherwise.

Call:

Parameter Type Description
NodeId NodeId NodeId of the node to be toggled.

Example:

<Call Method="VirtualTreeViewToggleVisibility">
      <NodeId>12</NodeId>
</Call>

ZoomIn

Zooms in.

Example:

<Call Method="ZoomIn"></Call>

ZoomOut

Zooms Out.

Example:

<Call Method="ZoomOut"></Call>

Deprecated

New3DView

Please use NewScene3D.

Creates a new empty 3DView.

Remarks:
Any previous file will be closed without saving**!**

Example:

<Call Method="New3DView"></Call>

ComputeBrepCompare

Executes "BrepCompare". The selection must contain 2 nodes or, if the selection is empty, the model must contain 2 root nodes.

Example:

<Call Method="ComputeBrepCompare"></Call>

SectionCenterHandles

Please use CenterHandles.

Centers the cutting pane handle in the view.

Example:

<!-- Affects the current view -->
<Call Method="SectionCenterHandles" />

<!-- Affects a specific view -->
<Call Method="SectionCenterHandles" ViewId="2" />

SetMouseButtonFunctions

Please use SetSceneSettings.

Sets the mouse buttons functions.

Call:

Parameter Type Description
LeftMouseButtonFunction
[optional]
MouseButtonFunction Desired mouse function
RightMouseButtonFunction
[optional]
MouseButtonFunction Desired mouse function
MiddleMouseButtonFunction
[optional]
MouseButtonFunction Desired mouse function

Example:

<Call Method="SetMouseButtonFunctions">
    <MiddleMouseButtonFunction>Rotate</MiddleMouseButtonFunction>
    <LeftMouseButtonFunction>Pan</LeftMouseButtonFunction>
</Call>

SetRenderMode

Please use SetSceneSettings.

Sets the render mode.

Call:

Parameter Type Description
RenderMode
[multiple]
RenderMode Desired render mode

Example:

<Call Method="SetRenderMode">
    <RenderMode>Solid</RenderMode>
    <RenderMode>Wires</RenderMode>
</Call>

ShowGrid

Please use SetSceneSettings.

Shows the grid.

Example:

<Call Method="ShowGrid"></Call>

Events

ActivateInteraction

Occurs if an interaction was activated.

Response:

Parameter Description
Interaction(#interaction) Interaction
Specifies the interaction which was activated.

Example:

<Event Type="ActivateInteraction">
    <Interaction>Measurement_DistancePointToPoint</Interaction>
</Event>

CalloutAutoAlignmentChanged

Gets triggered whenever the auto alignment mode state of callouts changes.

Response:

Parameter Description
State bool
Updated auto alignment state.

Example:

<Event Type="CalloutAutoAlignmentChanged">
    <State>true</State>
</Event>

CalloutListChanged

Gets triggered whenever the list of callouts changes.

Example:

<Event Type="CalloutListChanged" />

CalloutSelectionChanged

Occurs if the selection changed.
Contains a list of all selected callout ids or an empty list if none is selected.

Response:

Parameter Description
CalloutId CalloutId
ID of a selected callout.
(Can occur multiple times)

Example:

<Event Type="CalloutSelectionChanged">
    <CalloutId>1</CalloutId>
    <CalloutId>2</CalloutId>
    <CalloutId>3</CalloutId>
</Event>

<!-- No callout selected -->
<Event Type="CalloutSelectionChanged">
</Event>

CalloutProjection

Parameter Description
Item Item
One projected item.
(Can occur multiple times)
Id Id
CavasX UINT
X-position
CavasY UINT
Y-position
CalloutText string
CalloutName string
Visible bool
InViewport bool
Depth float

Response:

<Event Method="CalloutProjection">
    <Anchor2DPositions>
        <Item>
            <Id>5</Id>
            <CavasX>100</CavasX>
            <CavasY>200</CavasY>
            <CalloutText>text</CalloutText> <!--optional-->
            <CalloutName>name</CalloutName>
            <Visible>true</Visible>
            <InViewport>true</InViewport>
            <Depth>0.5</Depth>
        </Item>
    </Anchor2DPositions>
</Event>

DeactivateInteraction

Occurs if an interaction was deactivated.

Response:

Parameter Description
Interaction <Interaction>
Specifies the interaction which was deactivated.

Example:

<Event Type="DeactivateInteraction">
    <Interaction>Measurement_DistancePointToPoint</Interaction>
</Event>

ImportFinished

Gets triggered when the import was finished.

Example:

<Event Type="ImportFinished">
</Event>

ImportLogMessage

Gets triggered at the end of file import and sends the collected log messages from the importer.

Example:

<Event Type="ImportLogMessage">
    <Message>CATIA V5 / CGR (TM) file reader.\n Reading data from ...
</Event>

NodeCreated

Gets triggered whenever a node got created.

Warning:

Due to the nature of how nodes get created internally it is currently not possible to reliably get the node's properties correctly when this event gets fired.
This will be changed in a future update.

Response:

Parameter Description
NodeId <NodeId>
NodeId of the created node

Example:

<Event Type="NodeCreated">
    <NodeId>123</NodeId>
</Event>

NodeDeleted

Gets triggered whenever a node got deleted.

Response:

Parameter Description
NodeId <NodeId>
NodeId of the deleted node

Example:

<Event Type="NodeDeleted">
    <NodeId>123</NodeId>
</Event>

PageChanged

2D only

Gets triggered when the current document page changes.
Can be sent by the client to change document pages.

Parameters:

Parameter Description
Page UINT
Current page, starts from 1.
Pages UINT
Page count.

Example:

<!-- Sent by API -->
<Event Type="PageChanged" ViewId="0">
    <Page>1</Page>
    <Pages>2</Pages>
</Event>

<!-- Sent by client -->
<Event Type="PageChanged" ViewId="0">
    <Page>1</Page>
</Event>

PresetChanged

Gets triggered whenever a preset changed.

Response:

Parameter Description
Type PresetType
Type of changed preset.
Name string
Name of preset.
If name is empty, no preset is active, i.e. userdefined settings.

Example:

<Event Type="PresetChanged" ViewId="0">
    <Type>WallthicknessHeatmap</Type>
    <Name/>
</Event>

<Event Type="PresetChanged" ViewId="0">
    <Type>WallthicknessHeatmap</Type>
    <Name>ray - quality</Name>
</Event>

SavedSelectionsChanged

Gets triggered whenever the list of saved selections changes.

Response:

Parameter Description
Selection
[multiple]
SavedSelection
Updated list of all saved selections.

Example:

<Event Type="SavedSelectionsChanged" ViewId="0">
    <Selection Index="0" Name="Foo"/>
    <Selection Index="1" Name="Bar"/>
    <Selection Index="2" Name="Baz"/>
</Event>

SelectionChanged

Occurs on every click related to node selections and contains selected NodeIds and type or nothing if selection is empty.
The event contains the internal Id of the selected node and the node type if it is the same for all nodes or "various".

Response:

Parameter Description
NodeType <NodeType>
NodeId <NodeId>
NodeIds of the currently selected nodes.

Example:

<Event Type="SelectionChanged">
    <NodeType>ProductOccurence</NodeType>
    <NodeId>25</NodeId>
    <NodeId>29</NodeId>
</Event>

SelectionChangedCustomId

Occurs on every click related to node selections and contains CustomIds or nothing if no CustomId is found in the current 3D scene or if the selection is empty.
Contains the node type if it is the same for all nodes or "various".

This event contains only CustomIds typically set by integrations via VSXML or by API on prepared 3DVS files.
If the clicked object does not contain its own CustomId, the event returns the next CustomId found while traversing up the model hierarchy or nothing.

The CustomId is used for mapping between a leading system and the current 3D scene in both directions.

Response:

Parameter Description
NodeType <NodeType>
NodeId
[multiple]
<NodeId>
NodeIds of the currently selected nodes (#customid).

Example:

<Event Type="SelectionChangedCustomId">
    <NodeType>ProductOccurence</NodeType>
    <NodeId>#Fist</NodeId>
    <NodeId>#Second</NodeId>
</Event>

TransformChanged

is triggered:

  1. when nodes are transformed by position of boundingbox center, by translation, by rotation or by scaling,
  2. a boundary condition is activated/deactivated,
  3. a boundary condition is set
Parameter Type Description
Position float3 transform the position of boundingbox center
Translation float3 translate by the given 3d vector, single value X/Y/Z is valid
float Axis One single value in case of active boundary condition
Rotation float X rotate around X axis, in degree
float Y rotate around Y axis, in degree
float Z rotate around Z axis, in degree
float Axis One single value in case of active boundary condition, in degree
Scaling float Scale scale, valid value is between 0.001 and 100000.0
BoundaryConditionActive bool Activate or deactivate boundary condition
BoundaryCondition Interaction Set type of boundary condition, i.e. BoundaryCondition_Axis...

Example:

<!-- Possible transfomation steps: Position, Translation, Rotation, Scale -->
<Event Type="TransformChanged"><Position><X>0.0</X><Y>0.0</Y><Z>0.0</Z></Position></Event>
<Event Type="TransformChanged"><Translation><Y>10.0</Y></Translation></Event>
<Event Type="TransformChanged"><Rotation><X>90.0</X></Rotation></Event>
<Event Type="TransformChanged"><Scaling><Scale>500</Scale></Scaling></Event>

<!-- Transformation in case of activated boundary condition, e.g. rotation around a defined axis -->
<Event Type="TransformChanged"><Rotation><Axis>45.0</Axis></Rotation></Event>

<!-- Activate/deactivate boundary condition -->
<Event Type = "TransformChanged"><BoundaryConditionActive>true</BoundaryConditionActive></Event>

<!-- Set a type of boundary condition -->
<Event Type = "TransformChanged"><BoundaryCondition>BoundaryCondition_AxisByCircle</BoundaryCondition></Event>

WallthicknessValuesChanged

Gets triggered on scene change and whenever the heatmap values of a wallthickness computation changed.

Parameter Groups:

Result

Contains the computed minimum and maximum values of the heatmap. These values cannot be changed.

Visualization

Contains settings affecting the heatmap's visualization.
These values can be changed by sending back this event structure with the modified values.
Minimum and Maximum are expected to be floating point values without any attached unit like 1.23 mm.

Example:

<Event Type="WallthicknessValuesChanged" ViewId="0">
    <Result>
        <Minimum>0.388913</Minimum>
        <Maximum>340.243134</Maximum>
    </Result>
    <Visualization>
        <ColorScheme>RainbowRedToBlue</ColorScheme>
        <Unit>Millimeter</Unit>
        <Minimum>1.234567</Minimum>
        <Maximum>340.243134</Maximum>
    </Visualization>
</Event>

Changelog

Version 2024.6

Version 2024.5

Version 2024.4

Version 2024.3

Version 2024.2

Version 2024.1

Version 2023.7

Version 2023.5

Version 2023.4

Version 2023.3

Version 2023.2

Version 2023.1

Version 2023.0

Version 2022.6.164

Version 2022.4.169

Version 2022.1.136

Version 2021.1.621

Version 2021.1.459

Version 2021.1.446

Version 2021.0.148

Version 2020.2.173

Version 2020.1.318

Version 2020.1.212

Version 2020.0.209

Version 2019.0.510

Version 2019.0.341

  • Modify Compute method (description changed, response always contains Mode parameter)
  • Add optional Name parameter to ImportFile
  • Add optional Name parameter to NewScene3D

Version 2019.0.314

Version 2019.0.298

Version 2019.0.268

Version 2019.0.119

  • Update Interaction modes
  • Add method "AlignCallouts"
  • Add method "SetCalloutAlignment"
  • Add method "EnableAutoCalloutAlignment"
  • Add method "DisableAutoCalloutAlignment"
  • Add method "IsAutoCalloutAlignmentActive"
  • Add method "DeleteVisibleCallouts"
  • Add method "HideVisibleCallouts"
  • Add method "ShowAllCallouts"
  • Add method "LockCallouts"
  • Add method "UnlockCallouts"
  • Add method "CreateCalloutGroup"

Version 2018.0.225

  • Added method "ExportConfigurationViews"
  • Added method "DeleteConfigurationViews"
  • Added method "ImportConfigurationViews"

Version 1.17

  • Added method "GetCamera"

  • Added method "SetCamera"


  • Added method "SetSceneSettings"

  • Added method "GetSceneSettings"

  • Added method "SetSettings"

  • Added method "GetSettings"


  • Added method "GetNodeProperties"

  • Added method "SetNodeProperties"


  • Added method "NewScene3D"

  • Added method "UpdateScene"


    Added method "FitAll"

  • Added method "UpdateScene"


  • Deprecated "New3DView"

  • Deprecated "SetRenderMode"

  • Deprecated "ShowGrid"

  • Deprecated "SetMouseButtonFunctions"

Version 1.16

  • Changed method "GetPropertiesOfSelectedNodes", now handling multi-selection and sum of physical properties


  • Added "ExportFormat2D": SVG, DXF


  • Added method "FitWidth"

  • Added method "FitHight"

  • Added method "RotatePage"

  • Added method "GotoPage"

  • Added method "GetPageCount"

  • Renamed "Interaction" "Measurement_WallThickness" to "Measurement_WallThickness_RayBased"

Version 1.15

  • Added optional "CustomId" attribute to "Call" and "Response"
  • Added "Type" parameter to "OpenFile" response
  • Added method "ComputeBrepCompare"
  • Added method "PauseRendering"
  • Added method "ResumeRendering"
  • Added method "ActivateGraphicalCompare"
  • Added methot "NextPage"
  • Added method "PreviousPage"
  • Added method "Export2D"
  • Added method "ActivateSelectedCoordinateSystem"
  • Remove event "RenderModeChanged"
  • Renamed "Interaction" "CuttingPlane" to "CuttingPlane"
  • Renamed "Interaction" "CuttingPlane_FromPointNormal" to "CuttingPlane_FromPointNormal"

Version 1.14

  • "SaveAs" now only saves to 3DVS
  • Added "Response" attribute to specifiy if a "Response" should be generated
  • Added beta method "Export3D"
  • Added beta method "GetImage"
  • Added beta method "ExplodeByDistance"
  • Added beta method "SearchNodes"

Version 1.13

  • Added Information on VSXML definition and Transformation Matrix to Appendix

Version 1.12

  • Renamed method "Import3DVSXMLToNode" to "ImportVSXMLToNode"
  • Renamed type "ERROR_CODE" to "ErrorCode"
  • Added method "SaveAs"

Version 1.11

  • Renamed parameter "FilePathName" to "FileName"
  • Added method "ActiveConfigurationView"

Version 1.0

  • Initial XMLAPI release

Appendix

Types

AlignViewOption

Isometric
Top
Left
Front
Bottom
Right
Back
Dimetric
Axis

AnchorEndType

None
Arrow
AngledLine
Cross
Sphere
ThinArrow
Line
WireLine
WireAngledLine
WireCross
WireArrow
WireReverseArrow

ARGB

32 bit color value with alpha

#AARRGGBB

AttributeGenerationMode

NodePath

bool

A boolean value "true" or "false"

Color

For "Color" its an 32 bit ARGB color.

#AARRGGBB

CustomIdGenerationMode

NodePath

ComputationMode

ProjectedArea
VisibilityTest
Distortion
Wallthickness
NeutralAxis
NumberOfTriangles
Drillhole
Split
BillOfMaterial
SectionGeometry
Merge
MergeHierarchically
ClashSync
ClashAsync
Inertia
BandAnalysis
Curvature

CoordinateDirection

X
Y
Z

CuttingPlaneMode

Filled
Wire
Solids

DistanceSolidsComputationType

SelectedVsUnselected
SelectionInternal

ExplosionType

AxisAligned
Spherical
AxisX
AxisY
AxisZ
RadialXY
RadialYZ
RadialZX

ExportFormat3D

3DVS
PRC
PDFPRC
STEP
IGES
PARASOLID
STL
U3D
ACIS
JT
VRML
VSXML
3MF
FBX
IFC
OBJ
MINECRAFT
GLTF

ExportFormat2D

3DVS
SVG
DXF
BMP
PNG
JPG
PDF
CGM
WMF

ExportInformationType

BillOfMaterial
StructureTree
NodeProperties
NodeAttributes
NodePhysicalProperties
StructureCompare

ExportInformationFormat

TXT
CSV
HTML
JSON
XML

DXFVersion

R12
R14
R32
AutoCAD2004
AutoCAD2013

float

Single precision floating point value

float3

3-dimensional vector of floating point values

<X>1.0</X>
<Y>0.0</Y>
<Z>0.0</Z>

float2

2-dimensional vector of floating point values

<X>1.0</X>
<Y>0.0</Y>

FrameType

Rectangle
Circle
Underline

IncrementValueType

TransformationMove
TransformationRotate
SectionMove
SectionRotate

Interaction

Deactivate_AllInteractions
Deactivate_Measurement
Measurement_PointCoordinate
Measurement_EdgeLength
Measurement_EdgeLengthAccumulated
Measurement_CircleRadius
Measurement_CircleDiameter
Measurement_CirclePerimeter
Measurement_CircleCenter
Measurement_DistancePointToPoint
Measurement_DistancePointToEdge
Measurement_DistancePointToAxis
Measurement_DistancePointToSolid
Measurement_DistanceEdgeToEdge
Measurement_DistanceEdgeToFace
Measurement_DistanceEdgeToSolid
Measurement_DistanceCenterToCenter
Measurement_DistanceAxisToAxis
Measurement_DistanceAxisToEdge
Measurement_DistanceFaceToFace
Measurement_DistanceFaceToCenter
Measurement_DistanceFaceToSolid
Measurement_DistanceSolidToSolid
Measurement_DistanceCylinderCenterToFace
Measurement_DistanceSolidsToSolids
Measurement_AngleBetweenTwoAxes
Measurement_AngleBetweenAxisEdge
Measurement_AngleBetweenTwoLines
Measurement_AngleBetweenTwoPlanes
Measurement_AngleBetweenPlaneDirection
Measurement_AngleFromThreePoints
Measurement_WallThickness_RayBased
Measurement_WallThickness_RollingBall
Measurement_BoundingBoxWorld
Measurement_BoundingBoxPart
Measurement_BoundingBoxMinimal
Measurement_FaceArea
Measurement_CircleArea
Measurement_CircleForDrillhole
Measurement_AngleBetweenTwoProjectedLines
Measurement_DistancePointToFace
Measurement_FaceAreaAccumulated
Measurement_ShortestPathsBeetweenPointsOnCurve
Deactivate_Transformation
Transformation_FreeDrag
Transformation_Move
Transformation_Rotate
Transformation_Scale
Transformation_Align_Move_PointToPoint
Transformation_Align_Move_PlaneToPlane
Transformation_Align_Move_CircleCenterToCircleCenter
Transformation_Align_Move_CircleCenterToPoint
Transformation_Align_Rotate_NormalToNormal
Transformation_Align_Rotate_PointToPoint
Transformation_Align_Rotate_CircleCenterToCircleCenter
Transformation_Align_CoordinateSystemToCoordinateSystem
Transformation_Align_CircleAxisToCircleAxis
Transformation_Align_PlaneToPlane
Transformation_Align_ThreePointsToThreePoints
Deactivate_Markup
Markup_Text
Markup_Circle
Markup_Rectangle
Markup_Freehand
Markup_Text_Fixed
Deactivate_DraftAngle
DraftAngle
Deactivate_EntityCreation
EntityCreation_CoordinateSystemByNormal
EntityCreation_CoordinateSystemByBoundingBox
EntityCreation_CoordinateSystemBy3Points
EntityCreation_CoordinateSystemByLines
EntityCreation_CoordinateSystemByLineAndPoint
EntityCreation_CoordinateSystemByCylinderAxis
EntityCreation_CoordinateSystemBy3Planes
EntityCreation_CoordinateSystemGlobal
EntityCreation_CoordinateSystemPart
EntityCreation_CoordinateSystemByCircleCenter
EntityCreation_PointByCircleCenter
EntityCreation_PointByPickPosition
EntityCreation_PointByCylinderCenter
EntityCreation_PointWireToWire
EntityCreation_WireByCircleCenter
EntityCreation_WirePointToPoint
EntityCreation_WirePointSequence
Deactivate_BoundaryCondition
BoundaryCondition_Axis
BoundaryCondition_AxisByLine
BoundaryCondition_AxisByCircle
BoundaryCondition_AxisX
BoundaryCondition_AxisY
BoundaryCondition_AxisZ
BoundaryCondition_AxisLocalX,
BoundaryCondition_AxisLocalY,
BoundaryCondition_AxisLocalZ,
Deactivate_Animation
Animation_AssignCoordinateToNode
Deactivate_Section
Section
Section_FromPointNormal
Section_From3Points
Section_From3CircleCenters
Section_FromLine
Deactivate_Flythrough
Flythrough
Flythrough_SelectStartPositionAndDirection
Deactivate_Distortion
Distortion
Deactivate_NeutralAxis
NeutralAxis
Deactivate_Drillhole
Drillhole
Deactivate_Filter
Filter
Deactivate_VisibilityTest
VisibilityTest
Deactivate_WallthicknessHeatmap
WallthicknessHeatmap
Deactivate_ProjectedArea
ProjectedArea
Deactivate_ClashDetection
ClashDetection
Deactivate_Callout
Callout_Creation
Callout_Modification
Callout_Deletion
Callout_Visibility
Deactivate_Split
Split_SelectDirection
Split_ShowDirection
Split_ShowDirectionWithDraftAngle
Split_ShowGroups
Deactivate_BandAnalysis
BandAnalysis
Deactivate_AlignVertical
AlignVertical
Deactivate_CoordinateSystem
CoordinateSystem
Deactivate_TextCopy
TextCopy
Deactivate_Pick
PickPoint
PickNormal
Deactivate_PathEditing
PathEditing_SelectPoint
PathEditing_MovePoint

LengthUnit

Millimeter
Centimeter
Decimeter
Meter
Kilometer
Inch
Foot
Yard
Mile
PDFUnit
Userdefined

LogLevel

Trace
Debug
Info
Warning
Error
Critical
Off

MarkupAlignment

None
Top
Bottom
Left
Right
TopBottom
LeftRight
Rectangle
Circle
NearToSolid

MarkupTextPosition

Top
Bottom
Center
TopLeft
TopRight
BottomLeft
BottomRight
CenterLeft
CenterRight

MouseButton

Left
Right
Middle

MouseButtonFunction

RectZoom
Zoom
Pan
Rotate
Turntable
RectSelect
None

MouseFlags

None
Shift
Ctrl

NodeId

Defines a node. The ID is used by different methods to address its actions.
There are different type of NodeIds.

The internal NodeId is given by the ViewStation and exists temporarily for the current session.

A number
**Example:** <NodeId>296</NodeId>

The CustomId can be any combination of text and numbers.

#  = CustomId
**Example:** <NodeId>#526</NodeId>

Special Cases : The MasterRootNode is the first Node in the VirtualTree and represents the scene. Can be adressed by 0 or %Scene%.

0 = MasterRootNode
**Example:** <NodeId>0</NodeId>

or

%Scene% = MasterRootNode
**Example:** <NodeId>%Scene%</NodeId>

The "CreatedNodes" represents the Nodes added to the scene by adding first Markup or Annotation

%CreatedNodes% = CreatedNodes node
**Example:** <NodeId>%CreatedNodes%</NodeId>

NodeProperties

Sample Response:

  <Response Method="GetPropertiesOfSelectedNodes" Error="SUCCESS">
    <Properties>
        <NodePropertiesXML>
            <General>
                <Name>NONE</Name>
                <Type>Ri_BrepModel</Type>
                <Color>0xffffff0</Color>
                <Transparency>0.400000</Transparency>
            </General>
            <PhysicalProperties>
                <Surface>1544.48 mm^2</Surface>
                <Volume>1738.33 mm^3</Volume>
                <Density>1.0 kg/dm^3</Density>
                <Mass>1.74 g</Mass>
            </PhysicalProperties>
            <Attributes>
                <Attribute
                    key="CV5FACENAME"
                    value"Mainfold Solid #737213"
                />
            </Attributes>
        </NodePropertiesXML>
    </Properties>

NodeType

Example:

None
Root
ProductOccurrence
Ri_BrepModel
Ri_PolyBrepModel
Ri_Set
Ri_PolyWire
Ri_TessMarkup
Part
AxisRoot
Axis
PMIView
Annotation
AnnotationReference
AnnotationSet
Curve
Line
Plane
Direction
Point
PointSet
CoordinateSystem
Handle_Root
Handle_Arrow
Handle_Sphere
Handle_Curlyarrow
Solid
Wire
AnnotationItem
Markup_Text
Dimensioning
PointMarker
EdgeMarker
CircleMarker
AxisMarker
ReferenceLine
LineMarker
TriangleMesh
Markup_Circle
Markup_Rectangle
Markup_Freehand
CutGeometry_Surface
CutGeometry_Wire
PMIMarkup_Text
PMIMarkup_Dimension
PMIMarkup_Arrow
PMIMarkup_Balloon
PMIMarkup_CircleCenter
PMIMarkup_Coordinate
PMIMarkup_Datum
PMIMarkup_Fastener
PMIMarkup_Gdt
PMIMarkup_Locator
PMIMarkup_MeasurementPoint
PMIMarkup_Roughness
PMIMarkup_Welding
PMIMarkup_Table
PMIMarkup_Other
OffsetLine
CutGeometry_Set
MasterRootNode
MarkupSet
DataAnalysisResult
Markup
UnitTranslation
Document2D
AnimationCoordinateSystem
CustomCoordinateSystem
Highlight
SplitSession
SplitDirectionRoot
SplitFaceGroupUp
SplitFaceGroupDown
SplitFaceGroupUnassigned
GlareEffect
PMIMarkup_JT_Start
PMIMarkup_JT_CalloutDimension
PMIMarkup_JT_Centerline
PMIMarkup_JT_Chamfer
PMIMarkup_JT_CuttingPlaneSymbol
PMIMarkup_JT_DatumFeatureSymbol
PMIMarkup_JT_Dimension
PMIMarkup_JT_FeatureControlFrame
PMIMarkup_JT_Section
PMIMarkup_JT_SurfaceFinish
PMIMarkup_JT_ThreadFeature
PMIMarkup_JT_UserDefinedSymbol
PMIMarkup_JT_End

PlaneOption

InPlaceXY
InPlaceYZ
InPlaceZX
PositiveXY
PositiveYZ
PositiveZX
NegativeXY
NegativeYZ
NegativeZX
WorldXY
WorldYZ
WorldZX
ActiveCoordinateSystemXY
ActiveCoordinateSystemYZ
ActiveCoordinateSystemZX

PresetType

Material
WallthicknessHeatmap
SplitGroupColors

RenderMode

Solid
Wireframe
Wires
Illustration
Opaque
Perspective
NoSelection
Shadow
Cut
Silhouette
Inverse
NoMaterial

RGB

24 bit color value.

#RRGGBB

RuleAction

None
Show
Hide
ShowNoInherit
HideNoInherit
Ghost
Unghost
Isolate
Delete

SavedSelection

Attribute Type Description
Index UINT Index of the selection
Name String Name of the selection

SearchSelectionMode

None
Select
AddToSelection
RemoveFromSelection

SearchString

Samples:

Search for Nodes by Attribute_Name text value beginning with
"Attribute_Name"="Text*"
and select them

<Call Method="SearchNodes">
    <SearchString>"InstanceName"="K005*"</SearchString>
    <SelectionMode>Select</SelectionMode>
</Call>

Result: Only matching Nodes are selected


Search for Nodes name beginning with string "test"
and add theme to selectio

<Call Method="SearchNodes">
    <SearchString>Name="test*"</SearchString>
    <SelectionMode>AddtoSelection</SelectionMode>
</Call>

Result: Mathching Nodes added to the current selection, can be used to combine serach results


Search for NodeId's by name contains string "test"

<Call Method="SearchNodes">
    <SearchString>Name="*test*"</SearchString>
</Call>

Search for NodeId's by exact node name

<Call Method="SearchNodes">
    <SearchString>Name="SCREW"</SearchString>
</Call>


Result: Matching NodeId's

<Response Method="SearchNodes" Error="SUCCESS">
         <NodeId>2764</NodeId>
         <NodeId>3008</NodeId>
</Response>

SelectionMode

Select
Hide
Delete
Ghost
Neighbourhood
Color
Instance
PMIReference
Face
None

SelectionModifier

Isolate
Show
Hide
Ghost
UnGhost
Delete
ResetTransformation
ExtractFaces
Focus
Deselect
Invert
Copy
Cut
PasteToSelection
PasteAbove
PasteBelow
CreateChildNodes
ComputePhysicalProperties
ComputeWorldBoundingBox
ComputePartBoundingBox
ComputeMinimalBoundingBox
ComputeMinimalBoundingBoxFast
ComputeMinimalBoundingBoxPrecise
ComputeHullGeometry
DeleteOffsetLines
ResetColors
SearchByColor
ShowNoInherit
HideNoInherit
MergeObjects
MergeObjectsHierarchically

SettingsXML

Please read the seperate settings documentation.

Settings-Documentation.html


string

A text string.

TransformMatrix

4x4 row major matrix of floating point values

1 0 0 0 0 1 0 0 0 0 1 0 21.96 28.84 -36.01 1

UINT

A 32bit unsigned integer.
Number between 0 and 4,294,967,295.

UpDown

A boolean enumeration type used for IncrementValue, defining step-up or step-down.

Up
Down

VSXML

Please read the separate VSXML documentation.

VSXML-Documentation.html

English Version German Version Japanese Version Italian Version French Version Spanish Version Chinese Version English Version German Version Japanese Version Italian Version French Version Spanish Version Chinese Version English Version German Version Japanese Version Italian Version French Version Spanish Version Chinese Version English Version German Version Japanese Version Italian Version French Version Spanish Version Chinese Version English Version German Version Japanese Version Italian Version French Version Spanish Version Chinese Version English Version German Version Japanese Version Italian Version French Version Spanish Version Chinese Version English Version German Version Japanese Version Italian Version French Version Spanish Version Chinese Version German Version English Version Japanese Version Italian Version French Version Spanish Version Chinese Version German Version English Version Japanese Version Italian Version French Version Spanish Version Chinese Version German Version English Version Japanese Version Italian Version French Version Spanish Version Chinese Version Tutorial File Format list-PDF Admin-PDF Release Notes-PDF Sys requ-PDF Function list-PDF