# Solid (3D) functions | OpenStaad Python

> Eight-node solid (brick) elements — geometry, material, and stress results. Loads on solids are applied through the load domains.

Source: https://www.openstaad.com/docs/solid-3d

Every function is a method of the session `s = ops.connect()` (`from openstaad import ops`).

## Create

### CreateSolid

**Description**

Creates the solid.

**Parameters**

- `solidNo` (int): solid no.
- `nodeA` (int): node a.
- `nodeB` (int): node b.
- `nodeC` (int): node c.
- `nodeD` (int): node d.
- `nodeE` (int): node e.
- `nodeF` (int): node f.
- `nodeG` (int, optional (default `0`)): node g.
- `nodeH` (int, optional (default `0`)): node h.

**Returns**

None: This function does not return a value.

**Example**

```python
from openstaad import ops

s = ops.connect()
s.CreateSolid(1, 1, 1, 1, 1, 1, 1, 1, 1)
```

## Add

### AddMultipleSolids

**Description**

Adds multiple the solids.

**Parameters**

- `incidences` (list): incidences.

**Returns**

raw: The raw return value from the underlying OpenSTAAD COM call. Refer to the official Bentley OpenSTAAD API reference for this method's exact return semantics.

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.AddMultipleSolids([1, 2])
print(result)
```

### AddSolid

**Description**

Adds the solid.

**Parameters**

- `nodeA` (int): node a.
- `nodeB` (int): node b.
- `nodeC` (int): node c.
- `nodeD` (int): node d.
- `nodeE` (int): node e.
- `nodeF` (int): node f.
- `nodeG` (int, optional (default `0`)): node g.
- `nodeH` (int, optional (default `0`)): node h.

**Returns**

raw: The raw return value from the underlying OpenSTAAD COM call. Refer to the official Bentley OpenSTAAD API reference for this method's exact return semantics.

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.AddSolid(1, 1, 1, 1, 1, 1, 1, 1)
print(result)
```

## Get

### GetAllSolidNormalStresses

**Description**

Returns the all solid normal stresses.

**Parameters**

- `nSolidNo` (int): n solid no.
- `nCorner` (int): n corner.
- `loadCaseNo` (int): load case no.

**Returns**

list: A list of numbers (floats).

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.GetAllSolidNormalStresses(1, 1, 1)
print(result)
```

### GetAllSolidPrincipalStresses

**Description**

Returns the all solid principal stresses.

**Parameters**

- `nSolidNo` (int): n solid no.
- `nCorner` (int): n corner.
- `loadCaseNo` (int): load case no.

**Returns**

list: A list of numbers (floats).

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.GetAllSolidPrincipalStresses(1, 1, 1)
print(result)
```

### GetAllSolidShearStresses

**Description**

Returns the all solid shear stresses.

**Parameters**

- `nSolidNo` (int): n solid no.
- `nCorner` (int): n corner.
- `loadCaseNo` (int): load case no.

**Returns**

list: A list of numbers (floats).

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.GetAllSolidShearStresses(1, 1, 1)
print(result)
```

### GetAllSolidVonMisesStresses

**Description**

Returns the all solid von mises stresses.

**Parameters**

- `nSolidNo` (int): n solid no.
- `nCorner` (int): n corner.
- `loadCaseNo` (int): load case no.

**Returns**

float: A numeric value returned by STAAD.Pro for this call.

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.GetAllSolidVonMisesStresses(1, 1, 1)
print(result)
```

### GetIsotropicMaterialAssignedSolidCount

**Description**

Returns the isotropic material assigned solid count.

**Parameters**

- `material_name` (str): material name.

**Returns**

raw: The raw return value from the underlying OpenSTAAD COM call. Refer to the official Bentley OpenSTAAD API reference for this method's exact return semantics.

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.GetIsotropicMaterialAssignedSolidCount("value")
print(result)
```

### GetIsotropicMaterialAssignedSolidList

**Description**

Returns the isotropic material assigned solid list.

**Parameters**

- `material_name` (str): material name.

**Returns**

list: A list of integers.

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.GetIsotropicMaterialAssignedSolidList("value")
print(result)
```

### GetLastSolidNo

**Description**

Returns the last the solid no.

**Parameters**

None.

**Returns**

int: An integer value returned by STAAD.Pro for this call.

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.GetLastSolidNo()
print(result)
```

### GetNoOfSelectedSolids

**Description**

Returns the number of the selected solids.

**Parameters**

None.

**Returns**

int: An integer value returned by STAAD.Pro for this call.

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.GetNoOfSelectedSolids()
print(result)
```

### GetSelectedSolids

**Description**

Returns the selected solids.

**Parameters**

- `isSorted` (bool, optional (default `False`)): is sorted.

**Returns**

list: A list of integers.

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.GetSelectedSolids(True)
print(result)
```

### GetSolidCount

**Description**

Returns the solid count.

**Parameters**

None.

**Returns**

int: An integer value returned by STAAD.Pro for this call.

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.GetSolidCount()
print(result)
```

### GetSolidIncidence

**Description**

Returns the solid incidence.

**Parameters**

- `solidNo` (int): solid no.

**Returns**

tuple: A tuple of `int` values, one per output slot.

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.GetSolidIncidence(1)
print(result)
```

### GetSolidIncidence_CIS2

**Description**

Returns the solid incidence CIS 2.

**Parameters**

- `solidId` (int): solid Id.

**Returns**

tuple: A tuple of `(str, raw)`.

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.GetSolidIncidence_CIS2(1)
print(result)
```

### GetSolidList

**Description**

Returns the solid list.

**Parameters**

None.

**Returns**

list: A list of integers.

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.GetSolidList()
print(result)
```

### GetSolidMaterialName

**Description**

Returns the solid material name.

**Parameters**

- `solid_id` (int): solid id.

**Returns**

raw: The raw return value from the underlying OpenSTAAD COM call. Refer to the official Bentley OpenSTAAD API reference for this method's exact return semantics.

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.GetSolidMaterialName(1)
print(result)
```

### GetSolidUniqueID

**Description**

Returns the solid unique ID.

**Parameters**

- `solidNo` (int): solid no.

**Returns**

raw: The raw return value from the underlying OpenSTAAD COM call. Refer to the official Bentley OpenSTAAD API reference for this method's exact return semantics.

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.GetSolidUniqueID(1)
print(result)
```

## Set/Assign

### AssignMaterialToSolid

**Description**

Assigns the material to solid.

**Parameters**

- `material_name` (str): material name.
- `solid_ids` (list): solid ids.

**Returns**

raw: The raw return value from the underlying OpenSTAAD COM call. Refer to the official Bentley OpenSTAAD API reference for this method's exact return semantics.

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.AssignMaterialToSolid("value", [1, 2])
print(result)
```

### SetSolidUniqueID

**Description**

Sets the solid unique ID.

**Parameters**

- `solidNo` (int): solid no.
- `uniqueID` (str): unique ID.

**Returns**

None: This function does not return a value.

**Example**

```python
from openstaad import ops

s = ops.connect()
s.SetSolidUniqueID(1, "value")
```

## Remove

### RemoveMaterialFromSolid

**Description**

Removes the material from solid.

**Parameters**

- `solid_id_list` (list): solid id list.

**Returns**

raw: The raw return value from the underlying OpenSTAAD COM call. Refer to the official Bentley OpenSTAAD API reference for this method's exact return semantics.

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.RemoveMaterialFromSolid([1, 2])
print(result)
```

## Delete

### DeleteSolid

**Description**

Deletes the solid.

**Parameters**

- `solidID` (int): solid ID.

**Returns**

None: This function does not return a value.

**Example**

```python
from openstaad import ops

s = ops.connect()
s.DeleteSolid(1)
```

## Select

### ClearSolidSelection

**Description**

Clears the solid selection.

**Parameters**

None.

**Returns**

None: This function does not return a value.

**Example**

```python
from openstaad import ops

s = ops.connect()
s.ClearSolidSelection()
```

### SelectEntitiesConnectedToSolid

**Description**

Selects the entities connected to solid.

**Parameters**

- `entityType` (int): entity type.
- `solidNo` (int): solid no.

**Returns**

None: This function does not return a value.

**Example**

```python
from openstaad import ops

s = ops.connect()
s.SelectEntitiesConnectedToSolid(1, 1)
```

### SelectMultipleSolids

**Description**

Selects multiple the solids.

**Parameters**

- `solids` (list): solids.

**Returns**

bool: `True` if the call succeeded, `False` otherwise.

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.SelectMultipleSolids([1, 2])
print(result)
```

### SelectSolid

**Description**

Selects the solid.

**Parameters**

- `solidID` (int): solid ID.

**Returns**

bool: `True` if the call succeeded, `False` otherwise.

**Example**

```python
from openstaad import ops

s = ops.connect()
result = s.SelectSolid(1)
print(result)
```

## View

### HideSolid

**Description**

Hides the solid.

**Parameters**

- `nSolid` (int): n solid.

**Returns**

None: This function does not return a value.

**Example**

```python
from openstaad import ops

s = ops.connect()
s.HideSolid(1)
```
