To solve this optimization problem, we first need to define the decision variables and the objective function. Let's denote the number of standing desks as \(x\) and the number of office chairs as \(y\).

The objective is to minimize the total cost of producing these items. The cost for producing a standing desk is $500, and for an office chair, it is $230. Therefore, the objective function can be written as:
\[ \text{Minimize:} \quad 500x + 230y \]

There are constraints based on the time required to produce each item and the minimum number of items that must be produced. Each standing desk takes 60 minutes, and each office chair takes 35 minutes. The machine must operate for at least 2000 minutes per week. This gives us the constraint:
\[ 60x + 35y \geq 2000 \]

Additionally, the factory must produce a minimum of 100 items in total, leading to another constraint:
\[ x + y \geq 100 \]

Since we cannot produce negative numbers of desks or chairs, we also have non-negativity constraints:
\[ x \geq 0 \]
\[ y \geq 0 \]

Now, let's translate these into Gurobi code in Python:

```python
from gurobipy import *

# Create a new model
m = Model("Factory_Optimization")

# Define the decision variables
x = m.addVar(vtype=GRB.CONTINUOUS, name="standing_desks")
y = m.addVar(vtype=GRB.CONTINUOUS, name="office_chairs")

# Set the objective function to minimize costs
m.setObjective(500*x + 230*y, GRB.MINIMIZE)

# Add constraints: minimum operation time and total items
m.addConstr(60*x + 35*y >= 2000, "minimum_operation_time")
m.addConstr(x + y >= 100, "total_items")

# Optimize the model
m.optimize()

# Print the results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Standing Desks: {x.x}")
    print(f"Office Chairs: {y.x}")
    print(f"Total Cost: ${500*x.x + 230*y.x:.2f}")
else:
    print("No optimal solution found")

```