Files
wwtools/aot/reference/ConfigtimeBase.md
T
Joseph Doherty 32f26272ae Initial commit: Wonderware / System Platform tools and reference
Five tools under one repo, all docs organized per DOCS-GUIDE.md:

- aalogcli: .NET 4.8 / x86 CliFx CLI for reading System Platform binary
  logs (*.aaLGX) for LLM debugging, built on aaOpenSource/aaLog. Commands:
  last, tail, range, unread, fields. Stable JSON envelope under --llm-json.
  Build template under lib/build/ for rebuilding aaLogReader.dll.

- aot: ArchestrA Object Toolkit 2014 v4.0 reference material. Dev guide
  (Markdown converted from CHM), API reference for the ArchestrA.Toolkit
  namespace, and the Monitor / Watchdog VS sample solutions.

- graccesscli: .NET 4.8 / x86 CliFx CLI that automates Galaxy
  configuration via the ArchestrA GRAccess COM interop. Includes session
  daemon, IPC protocol, and llm-json envelope contract.

- grdb: SQL/DDL exploration of the Galaxy Repository database. DDL
  captures, reusable queries, hierarchy / contained-name <-> tag-name
  translation notes.

- histdb: LLM-oriented reference for AVEVA Historian retrieval. INSQL
  linked-server, extension tables, every wwXxx time-domain extension,
  every retrieval mode, alarm/event SQL recipes, REST API. Distilled
  from the 243-page Historian Retrieval Guide.

Root contains:
- CLAUDE.md: thin index pointing into each tool's README.
- DOCS-GUIDE.md: doctrine for organizing docs for LLM consumption.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 18:22:20 -04:00

22 KiB

ConfigtimeBase Class

Namespace: ArchestrA.Toolkit

This class provides functionality such as Configtime events handling, Migrate, Dumpload, Primitive wrappers(for Input,Output, and InputOutput primitives), Virtual primitives and Dynamic attributes management.

Syntax

public class ConfigtimeBase : AObjectBase, IObjectEvent2, IObjectEvent, IMigratePrimitive, IPrimitivePackage, IValueSupport

Remarks

ConfigtimeBase class is derived from AObjectBase class which is part of the ArchestrA.Toolkit namespace.

ConfigtimeBase Properties

AutoRecoverySupported Property

Provides indication of support for recovery of Dynamic Attributes and Virtual Primitives during dump/load.

Syntax

public bool AutoRecoverySupported { get; }

Returns

bool

IsTemplate Property

Provides indication that a template or an instance is executing the code.

Syntax

public bool IsTemplate { get; }

Returns

bool

true if template is executing the code.

false if instance is executing the code.

ParentPrimitive Property

Provides access to the parent Primitive ID.

Syntax

public short ParentPrimitive { get; }

Returns

short

Site Property

Provides access to the ConfigtimeSite.

Syntax

public IPrimitivePackageSite5 Site { get; }

Returns

IPrimitivePackageSite5

Remarks

The toolkit provides wrappers for most of the commonly used functions such as AddAttribute and so on.

An advanced user can access additional functions from IPrimitivePackageSite5 using the Site Property.

Example to access a primitive's execution order from configtime code:

Site.GetPrimitivesExecutionOrder(sPrimitiveId, out pExecutionOrderInfo);

ThisPrimitive Property

Provides access to the current Primitive ID.

Syntax

public short ThisPrimitive { get; }

Returns

short

ConfigtimeBase Methods

AddAttribute Method (string, MxAttributeCategory, MxDataType, bool, bool)

Provides a method to add a Dynamic Attribute. Use this function if you are adding a non-array attribute.

Syntax

public bool AddAttribute(
string name,
MxAttributeCategory category,
MxDataType type,
bool cfgSetHandler,
bool rtSetHandler
);

Parameters

Refer to the section AddAttribute Method Parameters and Return Value.

Returns

Refer to the section AddAttribute Method Parameters and Return Value.

AddAttribute Method (string, MxAttributeCategory, MxDataType, int, bool, bool)

Provides a method to add a Dynamic Attribute Array.

Syntax

public bool AddAttribute(
string name,
MxAttributeCategory category,
MxDataType type,
int length,
bool cfgSetHandler,
bool rtSetHandler
);

Parameters

Refer to the section AddAttribute Method Parameters and Return Value.

Returns

Refer to the section AddAttribute Method Parameters and Return Value.

AddAttribute Method (string, MxAttributeCategory, MxDataType, MxPropertyLockedEnum, MxSecurityClassification, bool, bool, bool, short)

Provides a detailed method to add a Dynamic Attribute. Use this function to add a non-array attribute that you want to exclude from Dump/Load.

Syntax

public bool AddAttribute(
string name,
MxAttributeCategory category,
MxDataType type,
MxPropertyLockedEnum lockType,
MxSecurityClassification security,
bool cfgSetHandler,
bool rtSetHandler,
bool excludeFromDumpLoad,
out short id
);

Parameters

Refer to the section AddAttribute Method Parameters and Return Value.

Returns

Refer to the section AddAttribute Method Parameters and Return Value.

AddAttribute Method (string, MxAttributeCategory, MxDataType, MxPropertyLockedEnum, MxSecurityClassification, int, bool, bool, bool, short)

Provides a detailed method to add a Dynamic Attribute Array. Use this function to add a array attribute that you want to exclude from Dump/Load.

Syntax

public bool AddAttribute(
string name,
MxAttributeCategory category,
MxDataType type,
MxPropertyLockedEnum lockType,
MxSecurityClassification security,
int length,
bool cfgSetHandler,
bool rtSetHandler,
bool excludeFromDumpLoad,
out short id
);

Parameters

Refer to the section AddAttribute Method Parameters and Return Value.

Returns

Refer to the section AddAttribute Method Parameters and Return Value.

AddPrimitive Method (string, string, string)

Provides a method to add a Virtual Primitive instance from a Virtual Primitive using the Primitives Internal Name.

This method can be used to add a virtual instance of child primitive, reusable primitive and utility (Input/Output) primitives.

Syntax

public bool AddPrimitive(
string virtualPrimitiveName,
string internalName,
string externalName
);

Parameters

virtualPrimitiveName

Name of the virtual primitive.

internalName

New internal name of the instance.

externalName

New External name of the instance.

Returns

true if the Primitive instance addition is successful.

false if the user tries to add a primitive with the same name of an existing primitive or if the user tries to create an instance of the non-virtual primitive.

AddPrimitive Method (string, string, string, bool, short)

Detailed method to add a virtual primitive instance at configtime.This method can be used to add a virtual instance of child primitive, reusable primitive and Input/Output primitives.

Use this function in case if the ID of the newly created primitive is required and/or you need to exclude the primitive from Dump/Load.

Syntax

public bool AddPrimitive(
string virtualPrimitiveName,
string internalName,
string externalName,
bool excludeFromDumpLoad,
out short id
);

Parameters

virtualPrimitiveName

Name of the virtual primitive.

internalName

New internal name of the instance.

externalName

New External name of the instance.

excludeFromDumpLoad

true excludes the virtual Primitive from Dumpload.

id

fills the out parameter with the primitive ID of newly created virtual primitive.

Returns

bool

true if the Primitive instance addition is successful.

false if the Primitive instance addition fails.

DeleteAttribute Method

Provides a method to delete a dynamic attribute by name.

Syntax

public bool DeleteAttribute(string name);

Parameters

name

Name of the dynamic attribute.

Returns

bool

true if the dynamic attribute deletion is successful.

false if the user tries to delete a non-existing dynamic attribute.

DeletePrimitive Method

Provides a method to delete a Virtual Primitive instance by the Primitives Internal Name.

Syntax

public bool DeletePrimitive(string internalName);

Parameters

internalName

Internal name of the virtual primitive instance.

Returns

bool

true if Primitive instance deletion is successful.

false if the user tries to delete a non-existing primitive instance or the user tries to delete a non-virtual primitive.

GetHeirarchialName Method

Provides a method to get the Hierarchical Name of the primitive.

Syntax

public string GetHeirarchialName(short primitiveId);

Parameters

primitiveId

Primitive Id.

Returns

string

Remarks

For an object, the method returns null.

GetVirtualPrimitiveIdByInternalName Method

Provides a method to get the ID of a child Virtual Primitive using the Primitives Internal Name. If more than one child primitive is found the first one is returned.

Syntax

public short GetVirtualPrimitiveIdByInternalName(string internalName);

Parameters

internalName

internal name of the virtual primitive instance.

Returns

short

Returns the primitive ID of the virtual primitive.

Remarks

This method finds child primitives.

IsDynamicPrimitive Method

Determines if the primitive is an instance of a virtual primitive.

Syntax

public bool IsDynamicPrimitive(short id);

Parameters

id

Primitive ID.

Returns

bool

true if the primitive is of type dynamic otherwise false.

IsStaticPrimitive Method

Determines if the primitive is static.

Syntax

public bool IsStaticPrimitive(short id);

Parameters

id

Primitive ID.

Returns

bool

true if the primitive is of type static otherwise false.

IsVirtualPrimitive Method

Determines if the primitive is virtual.

Syntax

public bool IsVirtualPrimitive(short id);

Parameters

id

Primitive ID.

Returns

bool

true if the primitive is of type virtual, otherwise false.

RecoverAttributes Method

Provides a method to recreate dynamic attributes and Virtual Primitives Instances from information stored in the value.This is not typically used by the Object Developer and is added in auto-generated code by the toolkit when Dump/Load Support option is enabled.

An automatically inserted Set Handler associated with the CMxInternalDumpLoadData Attribute calls the RecoverAttributes method. The Set Handler executes during Galaxy Load.The Set Handler is inserted by the toolkit for all Attributes of type CMxInternalDumpLoadData. RecoverAttributes recreates the Dynamic Attributes and Primitives stored in the CMxInternalDumpLoadData Attribute. The values associated with the Dynamic Attributes are recovered from the Dump/Load CSV file.

Syntax

public void RecoverAttributes(CMxValue value);

Parameters

value

The value contains the stored Attribute information (Name/DataType) for the Attributes.

RenamePrimtive Method

Provides a method to rename a Virtual Primitive instance using the Primitives Internal Name.

Syntax

public bool RenamePrimtive(
string primitiveInternalName,
string newInternalName,
string newExternalName
);

Parameters

primitiveInternalName

Internal name of the virtual primitive instance.

newInternalName

New Internal name of the virtual primitive instance.

newExternalName

New External name of the virtual primitive instance.

Returns

bool

true if the primitive internal and external names are renamed.

Remarks

The user can rename an instance of a Virtual Primitive at Configtime and check the result using PrimitiveResult.message and PrimitiveResult.status.

UpdateRecoveryData Method

Provides a method to update dynamic attributes name, category, security, type, cfgSetHandler, and runtime SetHandler information for Dump/Load. Also updates Child Primitives external and internal names for Dump/Load.

The user should call this method each time a dynamic attribute's shape (name, category, security, type, cfgSetHandler and runtime SetHandler information) is changed.

Syntax

public void UpdateRecoveryData();

Remarks

Example of the usage of UpdateRecoveryData in configtime code:

Set("DynamicAttributeName", EATTRIBUTEPROPERTY.idxAttribPropSecurityClassification, MxSecurityClassification.MxSecurityTune);
UpdateRecoveryData();

CanRenamePrimtive Method

Provides a method to check if a virtual primitive instance can be renamed.

Syntax

public bool CanRenamePrimtive(string primitiveInternalName, string newExternalName)

Parameters

primitiveInternalName

Internal name of the virtual primitive instance.

newExternalName

New External name of the virtual primitive instance.

Returns

bool

true if the primitive instance can be renamed with the External name.

CanDeletePrimitive Method

Provides a method to check if a virtual primitive instance can be deleted.

Syntax

public bool CanDeletePrimitive(string internalName)

Parameters

internalName

Internal name of the virtual primitive instance.

Returns

bool

true if the primitive instance can be deleted with the Internal name.

CanAddPrimitive Method

Provides a method to check if a virtual primitive instance can be added.

Syntax

public bool CanAddPrimitive(string virtualPrimitiveName, string internalName, string externalName)

Parameters

virtualPrimitiveName

Internal name of the virtual primitive.

internalName

New Internal name of the virtual primitive instance.

externalName

New External name of the virtual primitive instance.

Returns

bool

true if the primitive instance can be added with the Internal and External names.

ConfigtimeBase Attributes

AttributeResult Attribute

Holds the result of the last Attribute Action.

Syntax

public ConfigtimeBase.AttrOpStatus AttributeResult;

Remarks

AttributeResult.status.bstrReason, AttributeResult.status.eResult will give the information on last Attribute Action.

PrimitiveResult Attribute

Holds the result of the last Primitive Action.

Syntax

public ConfigtimeBase.PrimOpStatus PrimitiveResult;

Remarks

PrimitiveResult.message, PrimitiveResult.status will give the information on last Primitive Action.

ConfigtimeBase Events

ConfigtimeDynamic Event

This event fires when the value of a dynamic attribute is changed at configtime.

The toolkit automatically generates code to register the delegate Configtime_ConfigtimeDynamic for this event.

Add a separate case to implement set handler code for each your dynamic attributes in this delegate.

Syntax

public event ConfigtimeDynamicSetHandlerDelegate ConfigtimeDynamic;

Remarks

This is a common set handler for all the configtime dynamic attributes. Object developer has to handle code separately for each dynamic attribute as required.

ConfigtimeInitialize Event

This event fires at the time of Object Initialization.

The toolkit automatically generates code to register the delegate Configtime_ConfigtimeInitialize for this event.

Any custom initialization can be done here, including caching of attribute values, primitive IDs and so on.

Syntax

public event ConfigtimeInitializeDelegate ConfigtimeInitialize;

ConfigtimeMigrate Event

ConfigtimeMigrate event is fired when importing a template into a Galaxy that contains a previous version of the template. The template of the previous version must be derived or instantiated for migrate to execute.

The toolkit automatically generates code to register the delegate Configtime_ConfigtimeMigrate for this event.

Using the MigrateHandler parameter, user can access the previous version's attribute information in this delegate.

Syntax

public event MigrateDelegate ConfigtimeMigrate;

ConfigtimeValidate Event

ConfigtimeValidate event is fired when the Object is validated.

Validate sets the warning or error text for the object. It is used to check conditions that would not be checked using a SetHandler, such as reporting that an object was not configured, or that combinations of attributes are illegal.

The toolkit automatically generates code to register the delegate Configtime_ConfigtimeValidate for this event.

Syntax

public event ConfigtimeValidateDelegate ConfigtimeValidate;

PostAssign Event

PostAssign event will be fired for a child object after it is assigned to a parent node. The Child node has to be configured to support the PostAssign event.

The toolkit automatically generates code to register the delegate Configtime_PostAssign for this event.

Syntax

public event GeneralDelegate PostAssign;

PostAssignTo Event

PostAssignTo event will be fired for a parent object after a child node is assigned to it. The Parent node has to be configured to support the PostAssignTo event.

The toolkit automatically generates code to register the delegate Configtime_PostAssignTo for this event.

Syntax

public event GeneralDelegate PostAssignTo;

PostCheckIn Event

PostCheckIn event is fired after an Object is checked-in.

The toolkit automatically generates code to register the delegate Configtime_PostCheckIn for this event.

Syntax

public event SupportEventDelegate PostCheckIn;

PostCreate Event

PostCreate event is fired after an object (or derived template) is created.

The toolkit automatically generates code to register the delegate Configtime_PostCreate for this event.

One purpose for implementing this method is to ensure that the initial state of the primitive is valid.

Syntax

public event ObjectEventDelegate PostCreate;

PostDelete Event

PostDelete event is fired after the object is deleted.

The toolkit automatically generates code to register the delegate Configtime_PostDelete for this event.

Syntax

public event SupportEventDelegate PostDelete;

PostDeploy Event

PostDeploy event is fired after the object is deployed.

The toolkit automatically generates code to register the delegate Configtime_PostDeploy for this event.

Syntax

public event SupportEventDelegate PostDeploy;

PostRename Event

PostRename event is fired after the object is renamed.

The toolkit automatically generates code to register the delegate Configtime_PostRename for this event.

Syntax

public event RenameDelegate PostRename;

PostUnassign Event

PostUnassign event will be fired on the child object after it is unassigned from its parent.

The toolkit automatically generates code to register the delegate Configtime_PostUnassign for this event.

Syntax

public event GeneralDelegate PostUnassign;

PostUnassignFrom Event

PostUnassignFrom event will be fired on the parent object after a child object is unassigned from it.

The toolkit automatically generates code to register the delegate Configtime_PostUnassignFrom for this event.

Syntax

public event GeneralDelegate PostUnassignFrom;

PostUndeploy Event

PostUndeploy will be fired after the object is undeployed.

The toolkit automatically generates code to register the delegate Configtime_PostUndeploy for this event.

Syntax

public event SupportEventDelegate PostUndeploy;

PreAssignTo Event

PreAssignTo will be fired on a parent object before the child object is assigned to it.

The toolkit automatically generates code to register the delegate Configtime_PreAssignTo for this event.

Syntax

public event GeneralDelegate PreAssignTo;

PreCheckIn Event

PreCheckIn event will be fired before the object is checked-in.

The toolkit automatically generates code to register the delegate Configtime_PreCheckIn for this event.

Syntax

public event SupportEventDelegate PreCheckIn;

PreDelete Event

PreDelete event is fired before the object is deleted.

The toolkit automatically generates code to register the delegate Configtime_PreDelete for this event.

Syntax

public event SupportEventDelegate PreDelete;

PreDeploy Event

PreDeploy event is fired before the object is deployed.

The toolkit automatically generates code to register the delegate Configtime_PreDeploy for this event.

Syntax

public event DeployDelegate PreDeploy;

PreRename Event

PreRename event is fired before the object is renamed.

The toolkit automatically generates code to register the delegate Configtime_PreRename for this event.

Syntax

public event RenameDelegate PreRename;

PreUnassign Event

PreUnassign event is fired before the object is unassigned.

The toolkit automatically generates code to register the delegate Configtime_PreUnassign for this event.

Syntax

public event GeneralDelegate PreUnassign;

PreUndeploy Event

PreUndeploy event is fired before the object is undeployed.

The toolkit automatically generates code to register the delegate Configtime_PreUndeploy for this event.

Syntax

public event ConfigtimeValidateDelegate ConfigtimeValidate;

PreValidate Event

PreValidate event is fired before the object is validated.

The toolkit automatically generates code to register the delegate Configtime_PreValidate for this event.

Syntax

public event ObjectEventDelegate PreValidate;

Nested Type: InputOutputPrimitive Class

This class provides a wrapper for InputOutput Primitive.

Syntax

public class InputOutputPrimitive : ConfigtimeBase.PrimitiveWrapper

InputOutputPrimitive Properties

InputOutputPrimitive Constructor

InputOutputPrimitive Methods

Nested Type: InputPrimitive Class

This class provides a wrapper for Input Primitive.

Syntax

public class InputPrimitive : ConfigtimeBase.PrimitiveWrapper

InputPrimitive Properties

InputPrimitive Constructor

InputPrimitive Methods

Nested Type: OutputPrimitive Class

This class provides a wrapper for Output Primitive.

Syntax

public class OutputPrimitive : ConfigtimeBase.PrimitiveWrapper

OutputPrimitive Properties

OutputPrimitive Constructor

OutputPrimitive Methods

Nested Type: PrimitiveWrapper Class

Base class of all IO Wrappers.

Syntax

public class PrimitiveWrapper

PrimitiveWrapper Property

PrimitiveWrapper Constructor

PrimitiveWrapper Methods

Nested Type: AttrOpStatus Struct

Provides access to the result value associated with the following Attribute operations.

  • AddAttribute
  • DeleteAttribute

Syntax

public struct AttrOpStatus

AttrOpStatus Attributes

Nested Type: PrimOpStatus Struct

Provides access to the result value associated with the following Primitive operations to remove the need to add message parameters for each operation.

  • AddPrimitive
  • CanAddPrimitive
  • CanRenamePrimitive
  • GetVirtualPrimitiveIdByInternalName
  • DeletePrimitive
  • RenamePrimitive

Syntax

public struct PrimOpStatus

PrimOpStatus Attributes