In order to evaluate the performance of a design, design goals or objectives need to be determined. If they are measurable then it is possible to implement computations, simulations, or analyses connected to the parametric design model that evaluate the model’s performance in real time or near real time. It may be necessary to perform additional computations on the analysis results, especially considering that the Optimizer will attempt to minimize or maximize the objective values, respectively, depending on whether objective values are wired to the MinimzationObjectives or the MaximizationObjectives. Note that before CONNECT Edition Update 2, if an objective was to maximize usable floor area, then it was necessary to compute the inverse of the floor area as objective value, so that with increasing usable floor area the objective value decreases. However, with CONNECT Edition Update 2, this inversion is no longer required because an objective for maximization like floor area can now be wired to the MaximizationObjective input property of the Optimizer node.
Objective values can be of any number type, i.e. double or integer values, and could come from any source producing such output, e.g. FunctionCall.Value, Expression.Value, or directly from output properties, e.g. Line.Length, or Polygon.Area, etc. Theoretically, this could be also lists or replicated values. Because objective values are expected by the Optimizer node type as a flat list, it may be necessary to use the Flatten( ) function on the list of objectives to ensure the input property list’s flatness.
The number of objectives determines the dimensionality of the solution space. The more objectives, the higher the dimensionality of the solution space and the more difficult its exploration.