/// <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;
 }
Exemple #2
0
        /// <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);
            }
        }
Exemple #3
0
        /// <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;
 }