/// <summary> /// Initializes a new instance of the <see cref="DesignerMetal{T}"/> class. /// </summary> /// <param name="app">The application.</param> /// <param name="groups">The groups.</param> /// <param name="loadCombinations">The load combinations.</param> /// <param name="loadCases">The load cases.</param> /// <param name="apiObject">The API object.</param> protected DesignerMetal( ApiCSiApplication app, Groups groups, LoadCombinations loadCombinations, LoadCases loadCases, T apiObject) : base(app, groups, loadCombinations, apiObject) { _loadCases = loadCases; _apiComboDeflection = apiObject; _apiTargetPeriod = apiObject; _apiTargetDisplacement = apiObject; }
/// <summary> /// Retrieves lateral displacement targets for steel design. /// </summary> /// <exception cref="CSiException"><see cref="CSiApiBase.API_DEFAULT_ERROR_CODE" /></exception> protected void getTargetDisplacements(ITargetDisplacement app) { app.GetTargetDisplacement( out var loadCase, out var namePoint, out var displacementTargets, out var allSpecifiedTargetsActive); TargetDisplacements.Clear(); AllSpecifiedDisplacementTargetsActive = allSpecifiedTargetsActive; for (int i = 0; i < loadCase.Length; i++) { TargetDisplacement targetDisplacement = new TargetDisplacement() { PointName = namePoint[i], Value = displacementTargets[i] }; TargetDisplacements.Add(targetDisplacement); } }
/// <summary> /// Sets the target displacements. /// </summary> /// <param name="allSpecifiedTargetsActive">True: All specified targets are active. /// False: They are inactive.</param> protected void setTargetDisplacements(ITargetDisplacement app, bool allSpecifiedTargetsActive) { string[] loadCases = new string[TargetDisplacements.Count]; for (int i = 0; i < TargetPeriods.Count; i++) { loadCases[i] = TargetDisplacements[i].LoadCase; } string[] namePoints = new string[TargetDisplacements.Count]; for (int i = 0; i < TargetPeriods.Count; i++) { namePoints[i] = TargetDisplacements[i].PointName; } double[] displacementTargets = new double[TargetDisplacements.Count]; for (int i = 0; i < TargetPeriods.Count; i++) { displacementTargets[i] = TargetDisplacements[i].Value; } app.SetTargetDisplacement(loadCases, namePoints, displacementTargets, allSpecifiedTargetsActive); AllSpecifiedDisplacementTargetsActive = allSpecifiedTargetsActive; }
/// <summary> /// Initializes a new instance of the <see cref="TargetDisplacements"/> class. /// </summary> /// <param name="apiTargetDisplacement">The API target displacement.</param> public TargetDisplacements(ITargetDisplacement apiTargetDisplacement) { _apiTargetDisplacement = apiTargetDisplacement; }