# Structural Analysis Detection from BIM

Within the Geometry Gym tool kit is an engine for automated structural analysis detection which allows for the conversion of BIM models to Structural Analysis. and also IFC allows for automated **structural analysis detection,** which \*\*\*\*allows for the conversion of a IFC model into a structural analysis model.

Geometry Gyms Structural Detection engine aims to solve 2 problems:

1. Where no analytical model exists within an IFC export **create an analytical model**.
2. Once an analytical model does exist, perform snapping operations to ensure a well **connected** model.

If an analytical model exists within the .ifc file you can choose to either choose to use it or create a new one from the BIM elements.

#### Direct Revit Export to Structural Analysis

We do provide tools for Revit which automate the process of Revit directly to Structural Analysis programs. The primary process is explained below, but for Revit specifics please see page below:

{% content-ref url="/pages/-LfyT0H1s8EOloKKJr55" %}
[Revit to Structural Analysis](/revit/export-to-struct-analysis.md)
{% endcontent-ref %}

## Analytical Model

The .ifc file type allows for a structural analysis model definition to exist within an IFC file. This is similar to say the analytical model in Revit if you are familiar.

A lot of authoring programs such as Revit, Tekla, etc do not include the Structural/Analytical model when exporting an IFC file and also provide fairly primitive tools to control it and ensure a well linked model. Typically because a lot of the time it is also not the purpose of the model itself, it may be for documentation or shop detailing purposes.

### Analysis Snapping Process

The Geometry analysis model snapping process completes a series of operations in order to provide the user with a well linked structural analysis model.

The snapping process performs the following steps in order:

1. Inclusion/Exclusion Element Filters
2. Member Aggregation
3. Column Placement, Splitting and Snapping
4. Member Placement, Splitting and Snapping
5. Assigning of Restraints (if Applicable)

{% hint style="warning" %}
You may never get a 100% snapped model but the more you can improve this process the less time spent manually adjusting models down stream.
{% endhint %}

### 1. Inclusion/Exclusion Element Filters

Depending on the nature of the IFC

When exporting directly from Revit you can easily select whether a member should be included in the structural analysis output by deselecting.

### Member Aggregation

To enhance the snapping procedure and allow greater user input we define an element aggregation procedure prior to the conversion taking place. Currently this is not exposed to the user (i.e the user cannot explicitly select how a member can be aggregated) and we do this automatically for the following member types.

* Brace
* Column
* Primary Member
* Secondary Member
* Purlin

We currently separate the elements by some defining features apparent in the IFC. For example, it is checking whether 'brace' or 'bracing' is defined in the either the instance name or type name. The best way to ensure your members are aggregated correctly is to ensure that authoring of member TYPE designations (i.e IfcMember.BRACE).

For exporting with Revit. You can learn more about this [here](http://help.autodesk.com/view/RVT/2019/ENU/?guid=GUID-7119A8C3-A0EE-4568-8C35-750410D867C9%20).

## Detection Options

### Detection Tolerances

#### Plan Node Seek

Currently the **plan node seek** value is used in a couple of instances throughout the snapping process. In the first instance it is used to determine whether a **node** should be snapped to one of the projection planes and also guides some of the calculations for intermediate node creation along members when selected. Secondly, it is used to check whether an element end point is within the distance of a node in the model. In this instance it is not a true 'plan' node seek but a 'proximity' node seek. This applies to all members except for column elements.

If the element has been defined as a **Brace element** then this value is overridden with the inputted brace value.

#### Vertical Node Seek

#### Brace Node Seek

#### Flex Tolerance

#### Opening Size

### Projection and Snapping

#### Split

#### Project

#### HorizPlanes

#### ProjectionPlanes

#### RestraintPlanes

### Class Filters

You can include

#### Include Ifc Class Filter

#### Exclude Ifc Class Filter

### Material and Profile Mapping

#### MatMapPath

\*\*\*\*\*

#### ProfMapPath

**\*\*\*\*\***


---

# Agent Instructions: 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:

```
GET https://technical.geometrygym.com/rhino-grasshopper/structuralanalysis/geometry-gym-model/structural-model/converting-analysis-models/structural-analysis-detection.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
