> For the complete documentation index, see [llms.txt](https://docs.paragontruss.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.paragontruss.com/api/design-api-overview.md).

# Design API Overview

## Creating Trusses

Projects are the top-level containers for layouts and trusses, which means you need to create a project before you can start creating layouts or trusses.

Once you create a project there are three ways to start designing trusses:

* Layout
  * Define a 3D layout (roof and/or floor) and place trusses within the layout
  * Tutorials
    * ["Create layout" tutorial](/api/tutorials/layout-sample-app.md)
  * Samples
    * [LayoutConsoleApp](https://github.com/ParagonTruss/ParagonApiDotnetSamples/tree/main/LayoutConsoleApp) (.NET)
    * [create-gable-roof](https://github.com/ParagonTruss/paragon-api-node-samples/blob/main/create-gable-roof.ts) (Node.js)
    * [create-cross-gable-roof](https://github.com/ParagonTruss/paragon-api-node-samples/blob/main/create-cross-gable-roof.ts) (Node.js)
  * Reference
    * [Layouts](https://designserver.paragontruss.com/api-docs/#tag/layouts)
* Single component insertion
  * Generate a truss based its 2D profile (for pitched chord roof trusses) or its features (for parallel chord trusses)
  * Tutorials
    * [Getting Started with .NET](/api/quickstarts/getting-started-with-.net.md)
    * [Getting Started with REST](/api/quickstarts/getting-started-with-rest.md)
  * Samples
    * [create-profile-trusses](https://github.com/ParagonTruss/paragon-api-node-samples/blob/main/create-profile-trusses.ts) (Node.js)
  * Reference
    * [POST /projects/{guid}/createProfileTruss](https://designserver.paragontruss.com/api-docs/#tag/projects/POST/api/public/projects/{projectGuid}/createProfileTruss)
* File upload
  * Accepts common truss industry files
  * Reference
    * [POST /proejcts/{guid}/uploadFiles](https://designserver.paragontruss.com/api-docs/#tag/projects/POST/api/public/projects/{projectGuid}/uploadFiles)

### Analyzing Trusses

Once you've created a truss using one of the methods above, you're ready to analyze it. There are two options when analyzing trusses:

* Analyze
  * This will analyze the truss without making any modifications to the truss. This will not succeed on a newly created truss from layout or single component insertion, since plates are not added during creation of the truss. You will need to Upgrade and Analyze the truss in order to add plates.
  * Reference
    * [POST /trusses/{guid}/analyze](https://designserver.paragontruss.com/api-docs/#tag/trusses/POST/api/public/trusses/{guid}/analyze)
* Upgrade and Analyze
  * This will analyze the truss and make changes to the lumber material and plates in order to get the truss to pass.
  * Reference
    * [POST /trusses/{guid}/upgradeAndAnalyze](https://designserver.paragontruss.com/api-docs/#tag/trusses/POST/api/public/trusses/{guid}/upgradeAndAnalyze)

If successful, these routes will return an [AnalysisSet](https://designserver.paragontruss.com/api-docs/#model/analysisset) which contains information about the analysis of the truss.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.paragontruss.com/api/design-api-overview.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
