A PortSet contains none, one or more than one Group sections. A Group contains zero, one, or more port definitions. If the body of a port definition is empty, you can omit the braces ({}) and terminate the line with a semicolon (;). The PortSet section does not apply to shaders.
The purpose of a portset is to categorise the type of entities to which an operator port can be connected. Basically, it goes from more generic to more specialized Major->Minor->Interface->Component.
PortSet portset_name
{
Group portgroup_name
{
Origin = Select | Pick | Create;
PickMessage = string
Input | Output portname
{
Major = guid;
Minor = guid;
Component | Interface = guid;
Attributes = integer_expression;
}
}
}
![]()
|
In a scripted operator, if you selected a property or a primitive from the Explorer window, the Interface description appears in the SPDL file; if you selected a parameter, the Component description appears. |
Major
Specifies the type of entity to which you want to connect.
|
GUID |
Description |
|
{E80A1590-CA13-11CF-91B9-00AA00624C2D} |
A primitive (all primitives or cluster) |
|
{9E04FCEE-10F3-11d0-943A-00AA006D3165} |
A property (all properties,materials, and cluster properties) |
Minor
Specifies a specialisation of the Major type (non existent if its a cluster))
If you inspect the object you're connecting too(local kine state, primitive), right-click the tab header bar and choose Edit. The Minor GUID is the GUID at the top of the spdl file.
There's a handful of different specialisation here, basically when this is specified it means your connecting to the full object rather than a specific parameter.
|
GUID |
Description |
|
{00000000-0000-0000-C000-000000000046} |
Properties |
|
{CDEA6775-415B-11d0-AA40-00A0243E34C4} |
Primitive |
|
{A244F0D0-1E1D-11D0-AA2E-00A0243E34C4} |
Cluster |
This is used when connecting to a parameter. This value corresponds to the parameter-specific GUID that you'll find in the spdl of the target entity.