Skip to main content

IProject Interface

Namespace: NextDesign.Core

Description​

Provides a means to access project information.

Area​

NameDescription
Workspace ProjectA set of APIs to access the application's workspace and projects open in the application.

Inherit Base​

NameDescription
IModelProvides a means to access NextDesign's design model information.

Property​

NameDescription
AutoLoadStatusGets the current progress of background autoloading.
CanRedoChecks if a redo operation is possible.
CanUndoChecks if an undo operation is possible.
DesignModelDesign model root (root model of the model navigator)
EditingCapabilityProviderRegistryEditing support function registry
IsProductLineSupportedWhether product line development is supported in this project
OutputModelPathsWhether to output the path of the referenced model when persisting
PathProject path
This will be null for newly created projects.
ProductLineModelProduct Line Development Support Model
ProfileProfile Used in the Project
UnitManagerProject Unit Information Manager

Method​

NameDescription
AddNewRootModel(IPackage,string,bool)Adds a new model of the specified class to the project.
The specified class is identified from under the package specified in the scope.
Even if the specified class is an abstract class, instantiation is allowed and it is added as the last element of the corresponding field.
The added model is held as an element under the project node (directly under the project) displayed on the model navigator.
Note that when using fuzzy matching, if there are multiple matching classes, the first type-compatible class found will be added.
Also, it can be added even if the "Can be placed directly under the project?" check for the specified class is not checked.
AddNewRootModel(string,bool)Adds a new model of the specified class to the project.
Even if the specified class is an abstract class, instantiation is allowed and it will be added as the last element of the corresponding field.
The added model will be kept as an element under the project node (directly under the project) displayed on the model navigator.
Note that when using fuzzy matching, if there are multiple matching classes, the first type-compatible class found will be added.
Also, it can be added even if the "Can be placed directly under the project?" check for the specified class is not checked.
BeginUndoTransactionStarts editing and generates an undo transaction.
Edits made within an undo transaction are subject to a single undo/redo operation.
CreateModelAccessPolicyCreates a model access policy.
Access to the model performed within the scope of the policy will be subject to the policy's settings.
CreateProductLineModelCreates a product line development support model in this project, making product line development possible.
Creating a product line development support model generates the following models:
- Product line development support model
- Empty feature model
- Empty configuration model

If this project already supports product line development, this method call is ignored.
GetModelByIdRetrieves the model with the specified identifier from this project.
Returns null if the specified model is not found.
Note that relationships cannot be retrieved with this call. To retrieve relationships, use GetRelationshipById().

This call also targets models that have been deleted after the project was loaded.
Evaluate whether the retrieved model has been deleted using IModel.IsDeleted.
GetModelByPath(string,string)Retrieves the model at the specified relative path from the model with the identifier of the specified base element.
Returns null if the model at the specified model hierarchy path does not exist.

Note that if there are multiple matching model hierarchy paths, it returns the first model found.
GetModelByPath(string)Retrieves the model for the specified model hierarchy path from this project.
Returns null if the model for the specified model hierarchy path does not exist.

Note that if there are multiple matching model hierarchy paths, it returns the first model found.
Also, the model hierarchy path to be specified can be a string defined in IModel's ModelPath.
GetRelationshipByIdRetrieves the relationship for the specified identifier from this project.
Returns null if the specified relationship is not found.

This call also targets relationships that have been deleted after the project was loaded.
To check if the retrieved relationship has been deleted, evaluate IRelationship.IsDeleted.
GetUndoSuspendScopeGets the scope for which undo is suspended.
Edit operations performed within the scope in which this scope is valid will not be recorded to the undo stack.
HasUnsavedChangesChecks if there are any unsaved changes.
Unlike IsDirty, it returns False if the changes are not intended to be saved, even if the project is in a dirty state.
ImportProfileImports the profile from the specified path.
RealizeAllLoads field values ​​for all unloaded models in the project, bringing them to a complete model state.
If some field value loading fails, failure information can be obtained from the returned value IRealizeResult.
RedoRe-executes the most recently undone edit.
Does nothing if no recently undone edits were performed.
UndoUndoes the most recently undone edit.
Does nothing if no recently undone edits were performed.

Extension Methods​

NameDescription
GetRootChildrenRetrieves a list of children of the design model root (the root model in the Model Navigator).