# Query Gurobi attributes of JuMP model

**URL:** <https://discourse.julialang.org/t/query-gurobi-attributes-of-jump-model/94113>\
**Category:** Optimization (Mathematical)\
**Tags:** jump, gurobi\
**Created:** [February 6, 2023, 12:54am UTC](https://discourse.julialang.org/t/query-gurobi-attributes-of-jump-model/94113 "2023-02-06T00:54:16Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![jacob-roth](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jacob-roth/32/1862_2.png) [@jacob-roth](https://discourse.julialang.org/u/jacob-roth)\
**Post date:** [February 6, 2023, 12:54am UTC](https://discourse.julialang.org/t/query-gurobi-attributes-of-jump-model/94113/1 "2023-02-06T00:54:16Z")

</div>

I am interested in obtaining particular solution attributes (e.g., [`DualVio`](https://www.gurobi.com/documentation/current/refman/dualvio.html)) of my Gurobi model constructed by JuMP. Can I use the Gurobi.jl C interface to query a solved JuMP model to obtain [solution quality attributes](https://www.gurobi.com/documentation/current/refman/quality_attributes.html)?

---

<div class="post-metadata">

**Author:** ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)\
**Post date:** [February 6, 2023, 1:04am UTC](https://discourse.julialang.org/t/query-gurobi-attributes-of-jump-model/94113/2 "2023-02-06T01:04:53Z")

</div>

See [GitHub - jump-dev/Gurobi.jl: Julia interface for Gurobi Optimizer](https://github.com/jump-dev/Gurobi.jl#accessing-gurobi-specific-attributes-via-jump)

```plaintext
using JuMP, Gurobi
model = direct_model(Gurobi.Optimizer())
@variable(model, 0 <= x[1:10] <= 1)
@constraint(model, rand(10)' * x <= 3)
@objective(model, Max, rand(10)' * x)
optimize!(model)
MOI.get(model, Gurobi.ModelAttribute("DualVio"))

```

You can also use the C API:

```julia
using JuMP, Gurobi
model = Model(Gurobi.Optimizer)
@variable(model, 0 <= x[1:10] <= 1)
@constraint(model, rand(10)' * x <= 3)
@objective(model, Max, rand(10)' * x)
optimize!(model)
grb = unsafe_backend(model)
attrP = Ref{Cdouble}()
GRBgetdblattr(grb, "DualVio", attrP)
attrP[]

```

---

<div class="post-metadata">

**Author:** ![jacob-roth](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jacob-roth/32/1862_2.png) [@jacob-roth](https://discourse.julialang.org/u/jacob-roth)\
**Post date:** [February 6, 2023, 2:15am UTC](https://discourse.julialang.org/t/query-gurobi-attributes-of-jump-model/94113/3 "2023-02-06T02:15:33Z")

</div>

Thanks! Sorry, I missed that in the readme!
