# Physical Member functions | OpenStaad Python

> Groups several analytical beams into one physical member, so a continuous column split by intermediate nodes is designed as a single unit.

Source: https://www.openstaad.com/docs/physical-member

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

## Create

### CreatePhysicalMember

**Description**
Creates a physical member from specified analytical members.  

**Parameters**
- member_list (list): List of analytical member IDs (array of type int) that form the physical member.

**Returns**
None

**Example**
To use this function see the following example:
```python
from openstaad import ops

# Connect to the running STAAD.Pro session
s = ops.connect()
 
#Execute the function from geometry module
s.CreatePhysicalMember([5, 9])
```

## Get

### GetAnalyticalMemberCountForPhysicalMember

**Description**
Get the count of analytical members associated with a given physical member.

**Parameters**
- p_member (int): The physical member number.

**Returns**
int: Count of associated analytical members.

**Example**
To use this function see the following example:
```python
from openstaad import ops

# Connect to the running STAAD.Pro session
s = ops.connect()
 
#Execute the function from geometry module
am_count = s.GetAnalyticalMemberCountForPhysicalMember(5)

print(am_count)
```

### GetAnalyticalMembersForPhysicalMember

**Description**
Retrieve the list of analytical member IDs associated with a given physical member.  

**Parameters**
- p_member (int): The physical member number.

**Returns**
list: List of analytical member IDs associated with the given physical member.

**Example**
To use this function see the following example:
```python
from openstaad import ops

# Connect to the running STAAD.Pro session
s = ops.connect()
 
#Execute the function from geometry module
am_list = s.GetAnalyticalMembersForPhysicalMember(5)

print(am_list)
```

### GetLastPhysicalMemberNo

**Description**
Get the number of the last physical member in the model.

**Parameters**
- None

**Returns**
int: Last physical member number.

**Example**
To use this function see the following example:
```python
from openstaad import ops

# Connect to the running STAAD.Pro session
s = ops.connect()
 
#Execute the function from geometry module
last_pm = s.GetLastPhysicalMemberNo()

print(last_pm)
```

### GetNoOfSelectedPhysicalMembers

**Description**
Get the number of selected physical members in the model.

**Parameters**
- None

**Returns**
int: Number of selected physical members.

**Example**
To use this function see the following example:
```python
from openstaad import ops

# Connect to the running STAAD.Pro session
s = ops.connect()
 
#Execute the function from geometry module
selected_count = s.GetNoOfSelectedPhysicalMembers()

print(selected_count)
```

### GetPhysicalMemberCount

**Description**
Get the total count of physical members in the model.

**Parameters**
- None

**Returns**
int: Total number of physical members.

**Example**
To use this function see the following example:
```python
from openstaad import ops

# Connect to the running STAAD.Pro session
s = ops.connect()
 
#Execute the function from geometry module
pm_count = s.GetPhysicalMemberCount()

print(pm_count)
```

### GetPhysicalMemberList

**Description**
Retrieve a list of all physical member numbers in the model.

**Parameters**
- None

**Returns**
list: List of physical member numbers.

**Example**
To use this function see the following example:
```python
from openstaad import ops

# Connect to the running STAAD.Pro session
s = ops.connect()
 
#Execute the function from geometry module
pm_list = s.GetPhysicalMemberList()

print(pm_list)
```

### GetPhysicalMemberUniqueID

**Description**
Get the unique identifier for a given physical member.

**Parameters**
- p_member (int): The physical member number.

**Returns**
int: Unique ID associated with the physical member.

**Example**
To use this function see the following example:
```python
from openstaad import ops

# Connect to the running STAAD.Pro session
s = ops.connect()
 
#Execute the function from geometry module
unique_id = s.GetPhysicalMemberUniqueID(1)

print(unique_id)
```

### GetSelectedPhysicalMembers

**Description**

Returns the selected physical members.

**Parameters**

None.

**Returns**

list: A list of integers.

**Example**

```python
from openstaad import ops

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

## Set/Assign

### SetPhysicalMemberUniqueID

Sets the unique string ID (GUID) for the specified physical member.

> **Nota:** Este método no es compatible con modelos físicos.

##### Parameters

- **nPhyMembNo**: Long variable for holding the physical member number ID for which the GUID is intended to be set.
- **szGUID**: String variable for holding the GUID to be set.

##### Return values

- Returns nothing. The GUID is set for the specified physical member.

##### Example

```python
from openstaad import ops

# Instanciar el módulo Geometry
s = ops.connect()

# Asignar un GUID al miembro físico número 10
s.SetPhysicalMemberUniqueID(10, "123e4567-e89b-12d3-a456-426614174000")
```

## Delete

### DeletePhysicalMember

**Description**
Delete a physical member given its number.

**Parameters**
- p_member (int): The physical member number to delete.

**Returns**
None

**Example**
To use this function see the following example:
```python
from openstaad import ops

# Connect to the running STAAD.Pro session
s = ops.connect()
 
#Execute the function from geometry module
s.DeletePhysicalMember(1)
```

## Select

### ClearPhysicalMemberSelection

**Description**

Clears the physical member selection.

**Parameters**

None.

**Returns**

None: This function does not return a value.

**Example**

```python
from openstaad import ops

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

### SelectMultiplePhysicalMembers

Selects multiple physical members in the current model.

This function allows you to select several physical members at once by specifying their numbers. The selection can be used for further operations or queries within the model.

##### Parameters

- **PhysicalMemberNosArray**: Array of physical member numbers to select. If the array is null or empty, no members will be selected. (Long)

##### Return values

- Returns nothing. The specified physical members are selected in the current model context.

##### Example

```python
from openstaad import ops

# Instanciar el módulo Geometry
s = ops.connect()

# Seleccionar múltiples miembros físicos con los números 1, 2 y 3
s.SelectMultiplePhysicalMembers([1, 2, 3])
```

### SelectPhysicalMember

Highlights the specified physical member in the current model.

This function resalta (selecciona) el miembro físico especificado por su número, permitiendo realizar operaciones o consultas posteriores sobre él.

##### Parameters

- **nPhyMembNo**: The physical member number to highlight/select.

##### Return values

- Returns nothing. The specified physical member is highlighted in the model context.

##### Example

```python
from openstaad import ops

# Instanciar el módulo Geometry
s = ops.connect()

# Resaltar el miembro físico número 5
s.SelectPhysicalMember(5)
```
