> For the complete documentation index, see [llms.txt](https://technical.geometrygym.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://technical.geometrygym.com/rhino-grasshopper/ifc/ifc-grasshopper/create-ifc/material-profiles.md).

# Material Profiles

## Create a Material Profile Library

You can create a material profile library to use within your project. You may have a number of standard profile shapes that are described in an excel file or a other text file in which you would like to use or convert into your .ifc project.

Grasshopper is typically a good way to generate these profile libraries which can then be imported into other programs for typical use. Also, in this case to be able to be selected from within the standard GeometryGym Catalogue rather than having to regenerate. The following steps outline how to generate a user defined .ifc profile library in Grasshopper.

1. First generate the profiles in which you would like to include in the library. You can either define these by the provided components for creating standard shapes (i.e. I Shape profile) or by generating a Profile Def from a referenced polyline curve.
2. In the image below we have generated a series of Polygons and generated a list of IfcProfileDefs using the **ggIFC Profile Def** component.
3. In order to store the profiles correctly we need to reference them to a defined Library Reference. We will define two library references using the **ggIFC LibraryReference** component. We call the first reference *myShapes* and the second *Samplesections.* This will allow us to nest the profiles in groups encase we want to add additional groups of profiles to this library in the future.
4. Assign the list of profiles to the Library Reference by creating an reference relationship between the profiles and the library reference using the **ggIFC ExternalReferenceRelationship** component.
5. Then assign the myShapes profiles to the upper level library using another **ggIFC ExternalReferenceRelationship**.

![Creating a user Profile Library](/files/gFDBjwAjrX9iUEnetprD)

Once the profiles have been defined within the library you can use the **ggIFC BakeToFile** component to bake the library to your computer. In order to access the profiles within the catologue component the file must be save to the following folder: C:\Users\\\[*User*]\AppData\Roaming\GeometryGym\UserProfiles

{% hint style="warning" %}
You may need to create the UserProfiles folder in the directory first prior to baking.
{% endhint %}

Once the profile file is saved in the correct location close Rhino and Grasshopper and reopen. The sections should now be available both within the **ggIFC CatalogueProfileDef** and **ggCatalogueProfile** (BullAnt) components.

![Viewing User Defined Profile Catalogue](/files/rP3T47h6tjOb7nifkZCz)


---

# 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://technical.geometrygym.com/rhino-grasshopper/ifc/ifc-grasshopper/create-ifc/material-profiles.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.
