Summary of changes made to the Scripting API since the last version, organized by the version they were made in.
-
Breaking Changes
-
Additions and Enhancements
(Breaking Change) Temperature Profiles
Going forward, Temperature Profiles are replacing Design Load Temperature Overrides. To reflect this, the following changes have been made to the Scripting API.
-
New Classes
-
DesignLoadTemperatureProfile -
DesignLoadTemperatureProfileCol
-
-
Method and Properties REMOVED from
ZoneDesignLoadOverride-
double? Temperature.get -
void Temperature.set -
void ZoneDesignLoadOverride(int zoneId, string designLoad, double? limitFactor, double? ultimateFactor, double? helpFactor, double? hurtFactor, double? temperature)
-
-
Methods/Properties Added by class
-
DesignLoadSubcaseTemperature-
SimpleStatus SetTemperatureProfile(DesignLoadTemperatureProfile profile) -
DesignLoadTemperatureProfile TemperatureProfile.get
-
-
Project-
DesignLoadTemperatureProfileCol DesignLoadTemperatureProfiles.get
-
-
ZoneDesignLoadOverride-
void ZoneDesignLoadOverride(int zoneId, string designLoad, double? limitFactor, double? ultimateFactor, double? helpFactor, double? hurtFactor)
-
-
(Breaking Change) Changes to Packages included in Project Bundles
Individual Packages can now be selected for inclusion/exclusion when bundling Projects and the Scripting API has been updated to reflect the changes. A new enum BundlePackageInclusionMode and the following method replacement occurred in the Project class.
-
REMOVED -
SimpleStatus PackageProject(string destinationFilePath, bool includeFemInputFiles, bool includeFemOutputFiles, bool includeWorkingFolder, bool includeLoadFiles, bool includePluginPackages, bool removeAllOtherProjects, bool deleteUnusedPropertiesAndMaterials, bool mapFemFilesToRelativePaths, IEnumerable<string> additionalFiles) -
Added -
SimpleStatus PackageProject(string destinationFilePath, bool includeFemInputFiles, bool includeFemOutputFiles, bool includeWorkingFolder, bool includeLoadFiles, bool includePluginPackages, bool removeAllOtherProjects, bool deleteUnusedPropertiesAndMaterials, bool mapFemFilesToRelativePaths, IEnumerable<string> additionalFiles, BundlePackageInclusionMode bundlePackageInclusionMode)
(Breaking Change for HyperFEA) Improvements Related to Project Runner
With the introduction of the Project Runner, various improvements were made to Analysis/Sizing and HyperFEA methods in the Scripting API.
HyperFEA History/Reset, Cancelling, and Solver Support
HyperFEA now has a way to determine if there is any iteration history and a way to reset that history. The following method replacements and additions have been made to the HyperFea class.
-
REMOVED
-
void RunIterations(int numberOfIterations, bool startWithSizing, StressReportFormat? stressReportFormat)
-
-
Added
-
void RunIterations(int numberOfIterations, bool startWithSizing, StressReportFormat? stressReportFormat, bool useHyperXSolver) -
void Cancel() -
bool HasHistory() -
SimpleStatus Reset()
-
Cancel Analysis/Sizing Runs
Analysis/Sizing runs have been updated to internally manage cancellation tokens and a CancelAnalysis method added to the Project class. This gives any user the ability to start an Sizing/Analysis run and later stop it cleanly.
-
Added to
Project-void CancelAnalysis()
(Breaking Changes) Scripting API Optimizations
General API clean-up and various performance improvements have been made including the following method removals and additions:
-
Additions/Replacements to the
Projectclass-
TernaryStatus AnalyzeZones() -
TernaryStatus AnalyzeZones(IEnumerable<ZoneBase> zones) -
TernaryStatus SizeZones() -
TernaryStatus SizeZones(IEnumerable<ZoneBase> zones)
-
-
REMOVED
-
From class
AutomatedConstraintCol-
void AutomatedConstraintCol(Application application, Func<IEnumerable<AutomatedConstraint>> items)
-
-
From class
DesignProperty-
void DesignProperty(Application application, int id, string name, FamilyCategory familyCategory)
-
-
From class
DiscreteField-
void DiscreteField(Application application, int id, string name) -
override void UpdateNameInDatabase(string name) -
override bool ValidateName(string name)
-
-
From class
DiscreteFieldCol-
void DiscreteFieldCol(Application application, Func<IEnumerable<DiscreteField>> items)
-
-
From class
LaminateFamilyCol-
void LaminateFamilyCol(Func<IEnumerable<LaminateFamily>> items)
-
-
From class
Project-
TernaryStatus AnalyzeZones(IEnumerable<ZoneBase> zones = null) -
SizeZones(IEnumerable<HyperX.Scripting.ZoneBase> zones = null)
-
-
From class
SectionCutCol-
SectionCutCol(Application application, Func<IEnumerable<SectionCut>> itemsFunc)
-
-
From class
StiffenerLaminateLayer-
void StiffenerLaminateLayer(Application application, int parentId, HashSet<HyperX.Types.StiffenerLaminateLayerLocation> allowedChargeLocations)
-
-
From class
Zone-
void Zone(Application application, int id, string name, ComponentCategory componentCategory)
-
-
From class
ZoneBase-
HS.Model.Zone _modelRepoZone -
HS.Model.Zone _thisZone.get -
bool IsBeam.get -
void UpdateZone(bool mechanicalChanged = false) -
void ZoneBase(Application application, int id, string name) -
override PropertyAssignmentStatus AssignAnalysisPropertyToEntity(int id) -
override PropertyAssignmentStatus AssignDesignPropertyToEntity(HS.Types.Design design) -
override PropertyAssignmentStatus AssignLoadPropertyToEntity(int id) -
override void UpdateNameInDatabase(string name) -
override bool ValidateName(string name) -
readonly IComponentCreator _componentCreator -
readonly IComponentRepo _componentRepo -
readonly IFamilyRepo _familyRepo -
readonly ILoadPropertyService _loadPropertyService -
readonly IModelRepository _modelRepo -
readonly IRunSetRepo _runSetRepo
-
-
From class
LaminateBase-
readonly Application _application -
readonly IMaterialFamilyRepo _materialFamilyRepo -
readonly IMaterialRepo _materialRepo -
readonly IMaterialService _materialService -
readonly IPlyRepo _plyRepo
-
-
(Breaking Change) Solver API Boundary
-
REMOVED from
ZoneAnalysisSolverResult-
void ZoneAnalysisSolverResult(LimitUltimate limitUltimate, int loadCaseId, int? scenarioId, Margin margin, AnalysisDefinition analysisDefinition, Enum analysisObjectTag, int analysisObjectIndex, AnalysisDetailCol analysisDetails)
-
Add Support for FEM Reimport
New method added to the Project class to reimport a FEM.
Signature SimpleStatus ReimportFem(bool updateFemInStructures, bool archiveProject, HyperX.Types.FemMappingType femMappingType)
Add/Remove Failure Modes To/From Analysis Properties
New methods added to AnalysisProperty to add/remove Failure Modes by name or FailureMode object.
Signatures:
-
void AddFailureMode(string name) -
void AddFailureMode(IEnumerable<string> names) -
void AddFailureMode(FailureMode failureMode) -
void AddFailureMode(IEnumerable<FailureMode> failureModes) -
void RemoveFailureMode(string name) -
void RemoveFailureMode(IEnumerable<string> names) -
void RemoveFailureMode(FailureMode failureMode) -
void RemoveFailureMode(IEnumerable<FailureMode> failureModes)
Get/Set "Backdoor" Settings (Advanced Settings)
A new BackdoorSetting class has been added to support interactions with Advanced Settings for a Database/Project (aka "Backdoor" Settings). A new property was added to the Application class to use these:
-
Dictionary<BackdoorFlagId, BackdoorSetting> BackdoorSettings.get
The BackdoorSetting class provides access to "Global" settings, which apply to all Projects in a Database, and "Project" settings that only apply to the current Project. You can reset "Project" settings to the "Global" value and "Global" settings to the default with the following methods:
-
void ResetGlobalValueToDefaultValue() -
void ResetProjectValueToGlobalValue()
Package Management
Many classes have been added to enable Package management via the Scripting API. The new classes are:
-
Package -
PackageCol -
PackageDependency -
PackageFileSystemSource -
PackageFileSystemSourceCol -
PackageManager -
PackageVersion -
PackageVersionCol
Design Load Case Improvements
Various improvements and fixes have been made to the Scripting API's handling of Design Load Cases to enable editing, bulk creation, Design Load Override caching, and more.
New Classes Add
-
DesignLoadBulkUpdater -
DesignLoadSubcaseCol -
ZoneDesignLoadKey -
ZoneDesignLoadOverride -
DesignLoadDefinition
New Methods Added
-
DesignLoadCol-
DesignLoad Create(string name, string description, List<HyperX.Scripting.DesignLoadSubcase> designLoadSubcases) -
DesignLoad Create(string name, string description, List<HyperX.Scripting.DesignLoadSubcase> designLoadSubcases, double limitFactor, double ultimateFactor, double multiplier) -
DesignLoad Create(string name, string description, List<HyperX.Scripting.DesignLoadSubcase> designLoadSubcases, double limitFactor, double ultimateFactor, double multiplier, double analysisTemperature) -
DesignLoad Create(string name, string description, List<HyperX.Scripting.DesignLoadSubcase> designLoadSubcases, double limitFactor, double ultimateFactor, double multiplier, double analysisTemperature, HyperX.Types.LoadCaseType loadCaseType) -
List<DesignLoad> Create(IEnumerable<DesignLoadDefinition> designLoads) -
SimpleStatus Delete(int designLoadId) -
SimpleStatus Delete(string designLoadName) -
void ClearOverrides() -
List<ZoneDesignLoadOverride> GetOverridesForDesignLoads(HashSet<string> designLoads) -
List<ZoneDesignLoadOverride> GetOverridesForZoneDesignLoadKeys(HashSet<ZoneDesignLoadKey> keys) -
List<ZoneDesignLoadOverride> GetOverridesForZones(HashSet<int> zoneIds) -
void ReplaceOverrides(<ZoneDesignLoadOverride> overrides) -
void SetOverrides(List<ZoneDesignLoadOverride> overrides)
-
-
DesignLoadSubcaseMultiplierCol-
DesignLoadSubcaseMultiplier Add(DesignLoadSubcase subcase, float limitFactor, float ultimateFactor, float value) -
SimpleStatus Remove(HyperX.Scripting.DesignLoadSubcase subcase)
-
-
DesignLoadSubcaseTemperature-
SimpleStatus SetChoiceToAnalysis() -
SimpleStatus SetSubcase(DesignLoadSubcase subcase) -
SimpleStatus SetValue(float temperature)
-
HyperLoads
With the introduction of HyperLoads, a new method has been added to the Project class to support interaction:
-
SimpleStatus GenerateCae(string outputFile, int designPropertyId, int analysisPropertyId, int loadPropertyId, double zoneSpanX, double zoneSpanY, bool isCurved, double? curvatureRadius, ZoneBucklingMode zoneBucklingMode) -
Dictionary<int, HyperX.Scripting.AnalysisResultCol<HyperX.Scripting.AnalysisResult>> GetControllingResultsPerCriterion()
Bulk Updater Improvements
Bulk Updaters can now be accessed by collection classes (e.g. db.ActiveProject.Zones.GetBulkUpdater()) in addition to the existing static methods (e.g. hx.ZoneBulkUpdater(db, db.ActiveProject.Zones)).
Added methods by class:
-
DesignLoadCol-
DesignLoadBulkUpdater GetBulkUpdater()
-
-
ElementCol-
PlateElementBulkUpdater GetPlateElementBulkUpdater()
-
-
Various Load Property Classes
-
LoadPropertyUserFeaBeamRow-LoadPropertyUserFeaBeamRowBulkUpdater GetBulkUpdater() -
LoadPropertyUserFeaJointRowCol-LoadPropertyUserFeaJointRowColBulkUpdater GetBulkUpdater() -
LoadPropertyUserFeaPanelRowCol-LoadPropertyUserFeaPanelRowColBulkUpdater GetBulkUpdater() -
LoadPropertyUserGeneralBeamRowCol-
LoadPropertyUserGeneralBeamRowBulkUpdater GetMechanicalAndThermalBulkUpdater() -
LoadPropertyUserGeneralBeamRowBulkUpdater GetMechanicalBulkUpdater() -
LoadPropertyUserGeneralBeamRowBulkUpdater GetThermalBulkUpdater() -
LoadPropertyUserGeneralPanelRowBulkUpdater GetMechanicalAndThermalBulkUpdater() -
LoadPropertyUserGeneralPanelRowBulkUpdater GetMechanicalBulkUpdater() -
LoadPropertyUserGeneralPanelRowBulkUpdater GetThermalBulkUpdater()
-
-
-
PanelSegmentCol-
PanelSegmentBulkUpdater GetBulkUpdater()
-
-
ZoneCol-
BeamBulkUpdate GetBeamBulkUpdater() -
ZoneBulkUpdater GetBulkUpdater() -
PanelBulkUpdater GetPanelBulkUpdater()
-
Solver Support Improvements
-
API Solver Settings - Added ability to modify Solver settings with the Scripting API. Also, reduced Solver output data size. Added new class
SolverSettingsand new property to theProjectclass to access it:-
SolverSettings SolverSettings.get
-
-
Add Advanced Setting to prevent rotating loads - Added a new Advanced Setting to prevent Solver from rotating loads into entity coordinates ("Solver rotate element loads into zone coordinates" - Default = true). The Scripting API required the following additions to the
Panelclass:-
bool SuperImposeLocalPressure.get -
void SuperImposeLocalPressure.set
-
Miscellaneous
-
Get and Set Exclude Elements - Methods added to
Projectclass:-
HashSet<int> GetExcludedElements() -
void SetExcludedElements(HashSet<int> excludedElements)
-
-
Expose
MaterialModeonZoneDesignProperty:-
MaterialMode MaterialMode.get
-
-
"Zero FEA Moments" renamed to "Zero Curvature" - Properties added to
ZoneBase:-
bool IsZeroOutCurvature.get -
void IsZeroOutCurvature.set
-
-
Scripting API Version Checks - Methods added to
Environmentclass:-
bool IsApiVersionAvailable(int major, int minor, int build) -
bool IsApiVersionAvailable(string version)
-
-
Add Non-Reduced Stiffness Fields and Analysis Methods - Properties added to
Panelclass:-
double? D11AutoReduced.get -
double? D11ReducedRequired.get -
void D11ReducedRequired.set -
double? D22AutoReduced.get -
double? D22ReducedRequired.get -
double? D22ReducedRequired.set -
double? D33AutoReduced.get -
double? D33ReducedRequired.get -
double? D33ReducedRequired.set
-
-
Beam End Load Processing Setting - Properties added to
LoadPropertyFea:-
EndAbMomentMode EndAbMomentMode.get -
void EndAbMomentMode.set
-
-
Breaking Changes
-
Additions and Enhancements
-
Various properties on class
LoadPropertyFeahave been added/marked obsolete. -
New property
int SelectedCandidatewas added to classZoneDesignResultCol. -
AnalysisDefinitionnow exposes globally unique identifier (GUID) viaGuid UIDproperty. -
Update
FailureCriterion's IDs.-
Property
int Idon classFailureCriterionhas been marked obsolete and will be removed in a future version of HyperX. Developers should use propertystring Identifierinstead. -
New method
GetByIdentifier(string identifier)was added to classFailureCriterionCol.
-
-
Property
DiscreteTechnique? DiscreteStiffenerTechniqueadded to classZoneDesignProperty. -
New property
string ApiVersionadded to classEnvironment. -
New property string
MaterialNameadded to classPlyand classSizingMaterial.
Breaking Changes (Python Only) - Various Application Properties Changed to Class Methods
Property string CompilationDate on class Application was changed from a property to a class method to reflect static nature of C# property.
Property string Version on class Application was changed from a property to a class method to reflect static nature of C# property.
-
Old:
version = application.Version-
NEW:
version = hx.Application.Version()
-
Property string InstallLocation on class Application was changed from a property to a class method to reflect static nature of C# property.
-
Old:
env = environment.InstallLocation-
NEW:
environment = hx.Environment.InstallLocation()
-
Add Batch Run Support for HyperFEA
New overload for method SetupSolver on class HyperFea was added to allow user to specify whether to run HyperFEA with a custom batch file or the standard solver executable.
Signature: SimpleStatus SetupSolver(string solverPath, string arguments, bool isBatchRun)
Add HyperXpert Support
New classes HyperXpertPoint and RunSet were added to support interaction with HyperXpert via the Scripting API. New methods were added to Project and Application to make use of these.
New methods added to class Project:
-
List<HyperXpertPoint> CreateHyperXpertPoints(HashSet<int> runsets, DoePlotMode plotMode, DoePointType pointType, bool generateVariablityForLinked, bool filterNonGeometry) -
List<RunSet> GetRunSets()
New methods added to class Application:
-
List<HyperXpertPoint> CreateHyperXpertPoints(HashSet<RunSetSpecifier> runSetSpecifiers, DoePlotMode plotMode, DoePointType pointType, bool generateVariabilityForLinked, bool filterNonGeometry) -
Dictionary<int, List<RunSet>> GetRunSetsByProject()
Allow Viewing and Editing Material Direction
New class PlateElement was added. It is a subclass of Element and contains property Vector3d MaterialDirection. This property has a getter (for viewing the material direction) and a setter (for editing the material direction).
Properties PlateIds and PlateElements were added to class ElementCol to enable script developers to quickly select only plate elements in an element collection.
Class PlateElementBulkUpdater added to support bulk operations on PlateElements.
Updated Properties on LoadPropertyFea
Various properties on class LoadPropertyFea have been added and others marked obsolete.
Properties Added:
-
HasM2a- Property now editable. -
HasM2b- Property now editable. -
HasV1- Property now editable. -
HasV2- Property now editable. -
HasTorque- Property now editable.
Properties Made Obsolete:
-
M2a- UseHasM2ainstead. -
V1- UseHasV1instead. -
V2- UseHasV2instead. -
Axial- UseHasAxialinstead. -
Torque- UseHasTorqueinstead.
Updates to DesignVariable and SizingMaterialCol
Some DesignVariable methods have been made obsolete and new methods have been added to SizingMaterialCol to replace them. New property SizingMaterialCol SizingMaterials added to class DesignVariable to facilitate these calls.
New methods added to class SizingMaterialCol:
-
TernaryStatus AddSizingMaterialsByName(IEnumerable<string> materialNames, bool ignoreMissingMaterials = false) -
TernaryStatus AddSizingMaterialsById(IEnumerable<int> materialIds, bool ignoreMissingMaterials = false) -
TernaryStatus RemoveSizingMaterialsById(IEnumerable<int> materialIds, bool ignoreMissingMaterials = false) -
TernaryStatus RemoveSizingMaterialsByName(IEnumerable<string> materialNames, bool ignoreMissingMaterials = false) -
void RemoveAllSizingMaterials()
The following methods on DesignVariable have been marked obsolete. The corresponding replacement method is indicated.
-
Obsolete:
void AddMaterials(HashSet<int>materialIds)-
REPLACEMENT:
TernaryStatus DesignVariable.SizingMaterials.AddSizingMaterialsById(IEnumerable<int> materialIds, bool ignoreMissingMaterials = false)
-
-
Obsolete:
void AddMaterials(HashSet<string> materialNames)-
REPLACEMENT:
TernaryStatus DesignVariable.SizingMaterials.AddSizingMaterialsById(IEnumerable<int> materialIds, bool ignoreMissingMaterials = false)
-
-
Obsolete:
List<int> GetSizingMaterials()-
REPLACEMENT:
DesignVariable.SizingMaterials
-
-
Obsolete:
void RemoveSizingMaterials(IEnumerable<int> materialIds = null)-
REPLACEMENT:
TernaryStatus DesignVariable.SizingMaterials.RemoveSizingMaterialsById(IEnumerable<int> materialIds, bool ignoreMissingMaterials = false)
-
-
Obsolete:
int? GetAnalysisMaterial()-
REPLACEMENT:
DesignVariable.AnalysisMaterial
-
Add Copying Results to Overrides to Projects
Add methods to Project class to allow copying results to overrides.
-
Projecthas new methodSimpleStatus CopyResultsToOverrides(bool forceDeletePlies, IEnumerable<int> zoneIds). -
Projecthas new methodSimpleStatus CopyResultsToOverrides(bool forceDeletePlies, IEnumerable<ZoneBase> zones).
The major release for this version was 2024.2.13.67 and there were three minor releases.
-
Minor Versions
-
Minor Release (2024.2.13.82) - Allow automatically assign designs to Structures when adding properties/elements from the FEM.
-
Minor Release (2024.2.13.85) - Expose Fabrication Criteria.
-
Minor Release (2024.2.13.90) - Allow activating/deactivating Design Loads and viewing/editing design loads overrides.
-
-
Major Version (2024.2.13.67)
-
Additions
-
Enhancements
-
Minor Version 2024.13.90 - Various Design Loads changes and Expose HeightSizingVariable
Exposed ability to set Design Loads active/inactive via the bool isActive property setter on class DesignLoad.
Added class DesignLoadOverride to allow the reading/modification of Design Load Overrides. New properties/methods were added to classes ZoneBase and DesignLoadCol to enable interaction with Design Load Overrides.
-
ZoneBase:-
Property
IEnumerable<string> IncludedDesignLoads(has both get and set methods) -
Property
Dictionary<string,DesignLoadOverride> DesignLoadOverrides -
Method
void IncludeAllDesignLoads()
-
-
DesignLoadCol:-
Property
DesignLoadFilteringOptions FilterOptions(has both get and set methods) -
Method
SimpleStatus SetIsActiveById(HashSet<int> designLoads, bool isActive) -
Method
SimpleStatus SetIsActiveByName(HashSet<string> designLoads, bool isActive)
-
Exposed the height Sizing variable via a property with a getter and setter on class ZoneDesignProperty.
-
Property
HeightSizingVariable HeightSizingVariable
Minor Version 2024.2.13.85 - Expose Fabrication Criteria
Two new classes were created to expose Fabrication Criteria via the Scripting API.
-
Class
FabricationCriterionRatio- Represents a single Fabrication Criterion ratio and exposes the ability to activate and deactivate the given ratio via the setter on thebool Checkproperty. -
Class
FabricationCriterionRatioCol- Represents a collection of Fabrication Criterion ratios.
New properties were added to class ZoneDesignProperty to expose these Fabrication Criterion ratios:
-
bool HasFabricationCriteria -
FabricationCrtierionRatioCol FabricationCriterionRatios
Minor Version 2024.2.13.82 - Allow Automatic Design Assignment to Structures when Adding Properties/Elements from FEM
Add methods to Structure class to allow assigning designs at the same time as adding properties or elements.
-
Structurehas new methodSimpleStatus AddElementsAndAssignDesigns(IEnumerable<int> elementIds, bool overrideMetalDesigns = false, bool overrideLaminateDesigns = false). -
Structurehas new methodSimpleStatus AddPfemPropertiesAndAssignDesigns(IEnumerable<int> pfemPropertyIds, bool overrideMetalDesigns = false, bool overrideLaminateDesigns = false).
Adds Property Assignment to Zones and Joints in Bulk
Added methods to assign Load Properties, Analysis Properties, and Design Properties to many Zones or Joints in one operation.
Additions
-
AnalysisPropertyhas new methodPropertyAssignmentStatus AssignTo(IEnumerable<int> entityIds). -
LoadPropertyhas new methodPropertyAssignmentStatus AssignTo(IEnumerable<int> entityIds, FamilyCategory category). -
DesignPropertyhas new methodPropertyAssignementStatus AssignTo(IEnumerable<int> entityIds).
Add Tree Folders for Structures, Sets, and Section Cuts
Added support for Structure, Set, and Section Cut tree folders. Folders are organized in a tree structure with a reference to their parent folder, child folders, and child items.
Additions
-
New class
Folder<Entity>whereEntityisStructure,Set, orSectionCut. -
New class
FolderCol<Entity>whereEntityisStructure,Set, orSectionCut. -
StructureColhas new propertyFoldersof typeFolderCol<Structure>. -
Structurehas new propertyParentFolderof typeFolder<Structure>. Note that it is null if the Structure is not placed in a folder. -
SetColhas new propertyFoldersof typeFolderCol<Set>. -
Sethas new propertyParentFolderof typeFolder<Set>. Note that it is null if the Set is not placed in a folder. -
SectionCutColhas new propertyFoldersof typeFolderCol<SectionCut>. -
SectionCuthas new propertyParentFolderof typeFolder<SectionCut>. Note that it is null if the Section Cut is not placed in a folder.
Add Solver Support
-
Added support for Solver results in the API.
-
Solver results are exposed using the same methods as Legacy results.
-
The results will automatically return for Solver or Legacy depending on which was used to size the Zone.
-
Solver analysis details may be in a tree-like structure which can be traversed using the
AnalysisDetailsproperty on eachAnalysisDetail.
Additions
-
New class
ZoneAnalysisSolverResultextendsZoneAnalysisResultfor Solver results.-
A collection of this is returned by any method that gets results if Solver was used to Size the Zone.
-
Adds
AnalysisObjectTagproperty of typeEnum.
-
Add Project Bundling
Added methods to expose Project Bundling and Unbundling to the API.
Additions
-
Method addition on
Application:UnpackageProject() -
Method addition on
Project:PackageProject()
Add Database Compare and Discrete Field Setting
-
Added access to Database Compare HTML report in API.
-
Added methods to set Discrete Fields values in bulk.
Additions
-
Method additions on Application:
-
Added
CompareDatabases(string outputPath, string originalDatabasePath, string modifiedDatabasePath, string originalProject = null, string modifiedProject = null, bool compareAssignableProperties = true, bool compareMaterialsFastenersAndRivets = true, compareProjectSetup = false).
-
-
Method additions on Discrete Field:
-
Added
SetNumericValues(IReadOnlyDictionary<int, IEnumerable<double>> valuesByEntityId). -
Added
SetNumericValues(IReadOnlyDictionary<Vector3, IEnumerable<double>> valuesByPoint). -
Added
SetStringValues(IReadOnlyDictionary<int, IEnumerable<string>>valuesByEntityId). -
Added
SetStringValues(IReadOnlyDictionary<Vector3, IEnumerable<string>>valuesByPoint).
-
Added Miscellaneous Methods and Properties
-
Added methods to
OrthotropicsCol:-
GenerateEffectiveLaminates(...) -
GenerateEffectiveLaminate(...)
-
-
Added method to
Project:-
ImportMaterialsFromExcel(string filePath)
-
-
Added property to
ZoneDesignResultCol:-
Weight
-
Added Analysis Details
Added Analysis Details to the API.
Additions:
-
Method changes on
ZoneJointEntity:-
Added
GetControllingResultPerCriterion()to replace existingGetAllResults()method. -
Made
GetAllResults()obselete.
-
-
Method addition on
ZoneBase:-
Added
GetResults()method which gets all results (not just controlling results) for each criterion.
-
-
Added
AnalysisDetailclass:-
string Name -
List<string> Path(allows for nested details) -
Type DataType -
object ValueAnalysisDetailCol AnalysisDetails(nested details) -
T GetValue<T>()
-
-
Added
AnalysisDetailColclass:-
Get(string name) -
Get(IEnumerable<string> path) -
C# only:
TryGetValue(string name, out AnalysisDetail detail) -
C# only:
TryGetValue(IEnumerable<string> path, out AnalysisDetail detail)
-
-
Added
AnalysisDetailsproperty of typeAnalysisDetailColonAnalysisResultclass.
These changes have been made since version 2023.2.7.
-
Breaking Changes
Simplified HyperFEA Method Signature
Removed parameter from HyperFEA run method to simplify signature. Previously, it required the user to send in a bool that determined if existing Element Optimization plies were deleted, or if the method would just return immediately. Now it always automatically deletes Element Optimization plies.
Breaking Changes
Old: HyperFea.RunIterations(int numberOfIterations, bool startWithSizing, bool deleteElementOptimizationPlies)
-
NEW:
HyperFea.RunIterations(int numberOfIterations, bool startWithSizing)
SizeJoints Return Type
The return type for SizeJoints has been refactored to be more consistent with those of SizeZones and AnalyzeZones - it now returns a SimpleStatus.
Breaking Changes
Old: public (bool success, string status, HashSet<int> jointsWithoutResults) SizeJoints(List<Joint> joints = null)
-
NEW:
public SimpleStatus SizeJoints(List<Joint> joints = null)
Note
The list of joint IDs representing Joints without results previously returned by SizeJoints has now been moved to a new, standalone method on the project: public HashSet<int> GetJointsWithoutResults(List<Joint> joints = null)
Warning
Note on Performance: If the list of Joints provided to GetJointsWithoutResults do not match the subset of Joints, a new Sizing operation will be run to determine the Joints without results.
Zone and Joint Results Access Methods Improvement
Obsolete and outdated methods to retrieve Zone and Joint Analysis results on the Project class have been removed, in favor of methods with cleaner return types.
Breaking Changes
-
Old:
Project.GetConceptName(int zoneId)removed.-
NEW:
ZoneBase.GetConceptName()added.
-
-
Old:
Project.GetObjectName(int zoneId, int objectId)removed.-
NEW:
ZoneBase.GetObjectName(int objectId)added.
-
-
Old:
Project.GetJointAnalysisResults(List<Joint> joints = null, AnalysisResultToReturn analysisResultType = AnalysisResultToReturn.Minimum)removed.-
NEW: API users should now view Joint Analysis results by calling
Joint.GetAllResults()on the specific Joint of interest.
-
-
Old:
GetZoneConceptAnalysisResults(List<Zone> zones = null, AnalysisResultToReturn analysisResultType = AnalysisResultToReturn.Minimum)removed.-
NEW: API users should now view Zone concept Analysis results by calling
ZoneBase.GetAllResults()on the specific Zone of interest and viewing those results of typeZoneAnalysisConceptResult.
-
-
Old:
GetZoneObjectAnalysisResults(List<Zone> zones = null, AnalysisResultToReturn analysisResultType = AnalysisResultToReturn.Minimum)removed.-
NEW: API users should now view Zone object Analysis results by calling
ZoneBase.GetAllResults()on the specific Zone of interest and viewing those results of typeZoneAnalysisObjectResult.
-
Structure Deletion Signature Change
Structure deletion signature changes
Breaking Changes
StructureCol
-
Old:
CollectionModificationStatus DeleteStructure(*)-
NEW:
bool DeleteStructure(*)
-
Materials Classes Id Property Removal
Removed Id property from Materials classes.
Breaking Changes
Removed Id property from Orthotropic, Isotropic, Honeycomb, and Foam
SimpleStatus Return Type
A SimpleStatus record with fields bool Success and string Message is returned instead of a tuple with the same members.
Breaking Changes
Project
-
Old:
(bool success, string errorMessage) AnalyzeZones(List<Zone> zones = null)-
NEW:
SimpleStatus AnalyzeZones(List<Zone> zones = null)
-
-
Old:
(bool success, string errorMessage) AnalyzeZones(List<int> zoneIds)-
NEW:
SimpleStatus AnalyzeZones(List<int> zoneIds)
-
-
Old:
(bool success, string errorMessage) SizeZones(List<Zone> zones = null)-
NEW:
SimpleStatus AnalyzeZones(List<Zone> zones = null)
-
-
Old:
(bool success, string errorMessage) SizeZones(List<int> zoneIds)-
NEW:
SimpleStatus AnalyzeZones(List<int> zoneIds)
-
StructureCol
-
Old:
CollectionModificationStatus DeleteStructure(*)-
NEW:
bool DeleteStructure(*)
-
Creation Methods Return Type Improvements
Creation methods now return the Object created instead of:
-
A status
-
An ID
-
A boolean
-
Nothing
Breaking Changes
-
SectionCutCol
Old:
void Create(string name, Vector3d origin, Vector3d normal, Vector3d horizontal)-
NEW:
SectionCut Create(Vector3d origin, Vector3d normal, Vector3d horizontal, string name = null)
-
-
SetCol
Old:
bool Create(string name)-
NEW:
Set Create(string name = null)
-
-
Structure
Old:
int CreatePanelSegment(*)-
NEW:
PanelSegment CreatePanelSegmenet(*)
-
-
Application
-
CreateAnalysisProperty()moved toAnalysisPropertyCol -
Old:
void DeleteAnalysisProperty(int id)-
NEW: Method moved to
AnalysisPropertyColand return type changedbool DeleteAnalysisProperty(int id)
-
-
CreateFailureModemoved toFailureModeCol -
Old:
CreateDatabaseStatus CreateDatabaseFromTemplate(*)-
NEW:
void CreateDatabaseFromTemplate(*)
-
-
Old:
ProjectCreationStatus CreateProject(string projectName)-
NEW:
ProjectInfo CreateProject(string projectName = null)
-
-
-
DesignProperty
Old:
int Copy(string newName)-
NEW:
DesignProperty Copy(string newName = null)
-
-
DesignPropertyCol
Old:
int? CreateDesignProperty(string name, FamilyCategory familyCategory, BeamPanelFamily beamPanelFamily, List<int> conceptIds)-
NEW:
DesignProperty CreateDesignProperty(FamilyConceptUID familyConcept, MaterialMode materialMode = MaterialMode.Any, string name = null)
-
-
LoadPropertyCol
Old:
void CreateLoad(string name, LoadPropertyType type, FamilyCategory category)-
NEW:
LoadProperty CreateLoadProperty(LoadPropertyType type, FamilyCategory category, string name = null)
-
-
LoadPropertyUserGeneralDoubleRow
Old:
IReadOnlyList<LoadPropertyUserRow> Rows-
NEW: Two separate row objects:
LoadPropertyUserRow MechanicalRowandLoadPropertyUserRow ThermalRow.
-
-
DiscreteFieldCol
Old:
int Create(string name, DiscreteFieldPhysicalEntityType entityType, DiscreteFieldDataType dataType)-
NEW:
DiscreteField Create(DiscreteFieldPhysicalEntityType entityType, DiscreteFieldDataType dataType, string name = null)
-
-
FailureModeCol
Old: From
Application:int CreateFailureMode(string name, int failureModeCategoryId)-
NEW:
FailureMode CreateFailureMode(int failureModeCategoryId, string name = null)
-
-
FoamCol
-
Old:
MaterialCreationStatus Create(string newMaterialName, string materialFamilyName, float density, int femId = 0)-
NEW:
Foam Create(string materialFamilyName, float density, string newMaterialName = null, int femId = 0)
-
-
Old:
MaterialCreationStatus Copy(string fmToCopyName, string newMaterialName, int femId = 0)-
NEW:
Foam Copy(string fmToCopyName, string newMaterialName = null, int femId = 0)
-
-
-
HoneycombCol
-
Old:
MaterialCreationStatus Create(string newMaterialName, string materialFamilyName, float density, int femId = 0)-
NEW:
Honeycomb Create(string materialFamilyName, float density, string newMaterialName = null, int femId = 0)
-
-
Old:
MaterialCreationStatus Copy(string honeyToCopyName, string newMaterialName, int femId = 0)-
NEW:
Honeycomb Copy(string honeyToCopyName, string newMaterialName = null, int femId = 0)
-
-
-
IsotropicCol
-
Old:
MaterialCreationStatus Create(string newMaterialName, string materialFamilyName, float density, int femId = 0)-
NEW:
Isotropic Create(string materialFamilyName, float density, string newMaterialName = null, int femId = 0)
-
-
Old:
MaterialCreationStatus Copy(string isoToCopyName, string newMaterialName, int femId = 0)-
NEW:
Isotropic Copy(string isoToCopyName, string newMaterialName = null, int femId = 0)
-
-
-
OrthotropicCol
-
Old:
MaterialCreationStatus Create(string newMaterialName, string materialFamilyName, float density, int femId = 0)-
NEW:
Orthotropic Create(string materialFamilyName, float density, string newMaterialName = null, int femId = 0)
-
-
Old:
MaterialCreationStatus Copy(string isoToCopyName, string newMaterialName, int femId = 0)-
NEW:
Orthotropic Copy(string isoToCopyName, string newMaterialName = null, int femId = 0)
-
-
-
Project
Old:
Zone CreateNonFeaZone(string name, FamilyCategory category)-
NEW:
Zone CreateNonFeaZone(FamilyCategory category, string name = null)
-
-
RundeckCol
Old:
RundeckCreationStatus AddRundeck(*)-
NEW:
Rundeck AddRundeck(*)
-
-
DesignVariable
Old:
void AddMaterials(List<int> materialIds)-
NEW:
void AddMaterials(HashSet<int> materialIds)
-
* Indicates that the parameters are the same as before.