Skip to main content

Component Plug-In SDK 2026 R1

Class AbstractModelBasedBuilderUI<RUNNER, MODEL>

Last update: 19.06.2026

Namespace: Phoenix.ComponentPlugInSDK
Assembly: Phoenix.ComponentPlugInSDK.dll

This abstract base class extends upon Phoenix.ComponentPlugInSDK.AbstractBuilderUI1` with the ability to load and save from a model object. Typically used by plug-ins that want to use MVVM or similar pattern.

There are two ways that derived classes can interject code into the save/load process. The MODEL itself will get a chance to save first. Then, the abstract function Phoenix.ComponentPlugInSDK.AbstractModelBasedBuilderUI2.SaveToPaczAsync(Phoenix.PaczAPI.IExtractedPacz)orPhoenix.ComponentPlugInSDK.AbstractModelBasedBuilderUI2.LoadFromPaczAsync(Phoenix.PaczAPI.IExtractedPacz) will be called. The Model is typically used by classes such as Phoenix.ComponentPlugInSDK.AbstractScriptBasedBuilderUI2andPhoenix.ComponentPlugInSDK.AbstractVariableBasedBuilderUI2 to provide overarching capabilities. Phoenix.ComponentPlugInSDK.AbstractModelBasedBuilderUI2.SaveToPaczAsync(Phoenix.PaczAPI.IExtractedPacz)andPhoenix.ComponentPlugInSDK.AbstractModelBasedBuilderUI2.LoadFromPaczAsync(Phoenix.PaczAPI.IExtractedPacz) are typically left abstract until the actual implementation class as a quick way for them to add on additional save/load operations without needing to implement their own Model.

public abstract class AbstractModelBasedBuilderUI<RUNNER, MODEL> : AbstractBuilderUI<RUNNER>, IHarnessBuilderUI<RUNNER>, IHarnessBuilderUIBase, IDisposable where RUNNER : IHarnessRunner where MODEL : IBuilderUIModel, new()

Type Parameters

RUNNER

The type of IHarnessRunner that this builder edits.

MODEL

Type type of model object that this class will contain. It must have a no-argument constructor and implement Phoenix.ComponentPlugInSDK.Models.IBuilderUIModel.

Inheritance

object ← AbstractDisposable ← AbstractBuilderUI<RUNNER> ← AbstractModelBasedBuilderUI<RUNNER, MODEL>

Implements

IHarnessBuilderUI<RUNNER>, IHarnessBuilderUIBase, IDisposable

Inherited Members

AbstractBuilderUI<RUNNER>._window, AbstractBuilderUI<RUNNER>.Dispose(bool), AbstractBuilderUI<RUNNER>.ComponentName, AbstractBuilderUI<RUNNER>.ComponentIcon, AbstractBuilderUI<RUNNER>.CreateWindow(), AbstractBuilderUI<RUNNER>.AddMenuItem(ItemsControl, string, RoutedEventHandler), AbstractBuilderUI<RUNNER>.AddAsyncMenuItem(ItemsControl, string, AbstractBuilderUI<RUNNER>.RoutedEventHandlerAsync), AbstractBuilderUI<RUNNER>.AddMenuItem(ItemsControl, string, ImageType, bool, RoutedEventHandler), AbstractBuilderUI<RUNNER>.AddAsyncMenuItem(ItemsControl, string, ImageType, bool, AbstractBuilderUI<RUNNER>.RoutedEventHandlerAsync), AbstractBuilderUI<RUNNER>.AddMenuItem(ItemsControl, string, ImageSource, bool, RoutedEventHandler), AbstractBuilderUI<RUNNER>.AddAsyncMenuItem(ItemsControl, string, ImageSource, bool, AbstractBuilderUI<RUNNER>.RoutedEventHandlerAsync), AbstractBuilderUI<RUNNER>.SelectVariables(IEnumerable<IRuntimeVariable>, IEnumerable<IRuntimeVariable>, IPlugInViewModel, string, string, string), AbstractBuilderUI<RUNNER>.SelectVariables(AbstractVariableProvider, IPlugInViewModel, string), AbstractBuilderUI<RUNNER>.SetPaczIcon(Uri, string), AbstractBuilderUI<RUNNER>.HarnessType, AbstractBuilderUI<RUNNER>.WindowClosed, AbstractBuilderUI<RUNNER>.Host, AbstractBuilderUI<RUNNER>.ConstructAsync(IHarnessBuilderUIHost<RUNNER>), AbstractBuilderUI<RUNNER>.ShowAsync(), AbstractBuilderUI<RUNNER>.TrySaveAsync(), AbstractBuilderUI<RUNNER>.DisplayException(Exception), AbstractDisposable.disposed, AbstractDisposable.Dispose(), AbstractDisposable.IsDisposed, AbstractDisposable.Dispose(bool), object.ToString(), object.Equals(object), object.Equals(object, object), object.ReferenceEquals(object, object), object.GetHashCode(), object.GetType(), object.MemberwiseClone()

Properties

Model

The actual model for this instance.

Methods

ConstructAsync(IHarnessBuilderUIHost<RUNNER>)

Derived classes typically do not need to override this behavior as they can interject code in the Model and in Phoenix.ComponentPlugInSDK.AbstractModelBasedBuilderUI2.LoadFromPaczAsync(Phoenix.PaczAPI.IExtractedPacz)`.

Dispose(bool)

Standard disposal.

LoadFromPaczAsync(IExtractedPacz)

Performs any necessary initialization of the Component Builder

SaveToPaczAsync(IExtractedPacz)

Allows derived classes to save their data to the pacz

_saveAsync(IBuilderUIModel)

Causes the model to be properly saved, and the host notified of the save. Not called automatically, it is up to derived classes to hook this up at the appropriate moments.

Connect with Ansys