#### [DiGi\.Analytical\.Building](DiGi.Analytical.Building.Overview.md 'DiGi\.Analytical\.Building\.Overview')
## DiGi\.Analytical\.Building\.Classes Namespace
### Classes
## AbstractComponent Class
Represents an abstract base class for all analytical building components, providing core functionality and implementing the [DiGi\.Analytical\.Building\.Interfaces\.IComponent](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.icomponent 'DiGi\.Analytical\.Building\.Interfaces\.IComponent') interface\.
```csharp
public abstract class AbstractComponent : DiGi.Analytical.Building.Classes.Component, DiGi.Analytical.Building.Interfaces.IComponent, DiGi.Analytical.Building.Interfaces.IBuildingBoundable3D, DiGi.Analytical.Building.Interfaces.IBuildingGeometry3DObject, DiGi.Analytical.Building.Interfaces.IBuildingGeometryObject, DiGi.Analytical.Building.Interfaces.IBuildingGuidObject, DiGi.Analytical.Building.Interfaces.IBuildingSerializableObject, DiGi.Analytical.Building.Interfaces.IBuildingObject, DiGi.Analytical.Interfaces.IAnalyticalObject, DiGi.Core.Interfaces.IObject, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Analytical.Interfaces.IAnalyticalGuidObject, DiGi.Analytical.Interfaces.IAnalyticalUniqueObject, DiGi.Core.Interfaces.IUniqueObject, DiGi.Core.Interfaces.IGuidObject, DiGi.Geometry.Object.Core.Interfaces.IGeometryObject, DiGi.Geometry.Object.Spatial.Interfaces.IGeometry3DObject, DiGi.Analytical.Building.Interfaces.IConstructable
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → [DiGi\.Core\.Parameter\.Classes\.ParametrizedObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.parameter.classes.parametrizedobject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject') → [DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.parameter.classes.parametrizedguidobject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject') → [BuildingObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingObject 'DiGi\.Analytical\.Building\.Classes\.BuildingObject') → [BuildingGeometry3DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject') → [Component](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Component 'DiGi\.Analytical\.Building\.Classes\.Component') → AbstractComponent
Derived
↳ [AbstractComponent<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_ 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\')
Implements [DiGi\.Analytical\.Building\.Interfaces\.IComponent](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.icomponent 'DiGi\.Analytical\.Building\.Interfaces\.IComponent'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingBoundable3D](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingboundable3d 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingBoundable3D'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry3DObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometry3dobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry3DObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometryobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingguidobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingSerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingserializableobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingSerializableObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticalobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticalguidobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalGuidObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalUniqueObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticaluniqueobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalUniqueObject'), [DiGi\.Core\.Interfaces\.IUniqueObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniqueobject 'DiGi\.Core\.Interfaces\.IUniqueObject'), [DiGi\.Core\.Interfaces\.IGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iguidobject 'DiGi\.Core\.Interfaces\.IGuidObject'), [DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.core.interfaces.igeometryobject 'DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject'), [DiGi\.Geometry\.Object\.Spatial\.Interfaces\.IGeometry3DObject](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.spatial.interfaces.igeometry3dobject 'DiGi\.Geometry\.Object\.Spatial\.Interfaces\.IGeometry3DObject'), [DiGi\.Analytical\.Building\.Interfaces\.IConstructable](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iconstructable 'DiGi\.Analytical\.Building\.Interfaces\.IConstructable')
### Constructors
## AbstractComponent\(\) Constructor
Initializes a new instance of the [AbstractComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent') class\.
```csharp
public AbstractComponent();
```
## AbstractComponent\(AbstractComponent\) Constructor
Initializes a new instance of the [AbstractComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent') class using an existing [AbstractComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent') instance\.
```csharp
public AbstractComponent(DiGi.Analytical.Building.Classes.AbstractComponent? abstractComponent);
```
#### Parameters
`abstractComponent` [AbstractComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent')
The source component to copy data from\.
## AbstractComponent\(Guid\) Constructor
Initializes a new instance of the [AbstractComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent') class using the specified unique identifier\.
```csharp
public AbstractComponent(System.Guid guid);
```
#### Parameters
`guid` [System\.Guid](https://learn.microsoft.com/en-us/dotnet/api/system.guid 'System\.Guid')
The unique identifier for the component\.
## AbstractComponent\(Guid, AbstractComponent\) Constructor
Initializes a new instance of the [AbstractComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent') class using a specified unique identifier and an optional existing component\.
```csharp
public AbstractComponent(System.Guid guid, DiGi.Analytical.Building.Classes.AbstractComponent? abstractComponent);
```
#### Parameters
`guid` [System\.Guid](https://learn.microsoft.com/en-us/dotnet/api/system.guid 'System\.Guid')
The unique global identifier for the component\.
`abstractComponent` [AbstractComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent')
An optional [AbstractComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent') to initialize from\.
## AbstractComponent\(JsonObject\) Constructor
Initializes a new instance of the [AbstractComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent') class using the specified JSON object\.
```csharp
public AbstractComponent(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object containing the data to initialize the component\.
### Properties
## AbstractComponent\.StructurePosition Property
Gets or sets the structure position of the component\.
```csharp
public DiGi.Analytical.Building.Enums.StructurePosition StructurePosition { get; set; }
```
#### Property Value
[StructurePosition](DiGi.Analytical.Building.Enums.md#DiGi.Analytical.Building.Enums.StructurePosition 'DiGi\.Analytical\.Building\.Enums\.StructurePosition')
## AbstractComponent\ Class
Provides a base implementation for components that incorporate 3D geometry\.
```csharp
public abstract class AbstractComponent : DiGi.Analytical.Building.Classes.AbstractComponent, DiGi.Analytical.Building.Interfaces.IAbstractComponent, DiGi.Analytical.Building.Interfaces.IAbstractComponent, DiGi.Analytical.Building.Interfaces.IComponent, DiGi.Analytical.Building.Interfaces.IBuildingBoundable3D, DiGi.Analytical.Building.Interfaces.IBuildingGeometry3DObject, DiGi.Analytical.Building.Interfaces.IBuildingGeometryObject, DiGi.Analytical.Building.Interfaces.IBuildingGuidObject, DiGi.Analytical.Building.Interfaces.IBuildingSerializableObject, DiGi.Analytical.Building.Interfaces.IBuildingObject, DiGi.Analytical.Interfaces.IAnalyticalObject, DiGi.Core.Interfaces.IObject, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Analytical.Interfaces.IAnalyticalGuidObject, DiGi.Analytical.Interfaces.IAnalyticalUniqueObject, DiGi.Core.Interfaces.IUniqueObject, DiGi.Core.Interfaces.IGuidObject, DiGi.Geometry.Object.Core.Interfaces.IGeometryObject, DiGi.Geometry.Object.Spatial.Interfaces.IGeometry3DObject, DiGi.Analytical.Building.Interfaces.IConstructable, DiGi.Analytical.Building.Interfaces.IBuildingGeometryObject, DiGi.Geometry.Object.Core.Interfaces.IGeometryObject
where T : DiGi.Geometry.Spatial.Interfaces.IGeometry3D
```
#### Type parameters
`T`
The type of the 3D geometry, which must implement [DiGi\.Geometry\.Spatial\.Interfaces\.IGeometry3D](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.spatial.interfaces.igeometry3d 'DiGi\.Geometry\.Spatial\.Interfaces\.IGeometry3D')\.
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → [DiGi\.Core\.Parameter\.Classes\.ParametrizedObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.parameter.classes.parametrizedobject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject') → [DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.parameter.classes.parametrizedguidobject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject') → [BuildingObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingObject 'DiGi\.Analytical\.Building\.Classes\.BuildingObject') → [BuildingGeometry3DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject') → [Component](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Component 'DiGi\.Analytical\.Building\.Classes\.Component') → [AbstractComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent') → AbstractComponent\
Derived
↳ [Air<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_ 'DiGi\.Analytical\.Building\.Classes\.Air\')
Implements [DiGi\.Analytical\.Building\.Interfaces\.IAbstractComponent<](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iabstractcomponent-1 'DiGi\.Analytical\.Building\.Interfaces\.IAbstractComponent\`1')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_.T 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\\.T')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iabstractcomponent-1 'DiGi\.Analytical\.Building\.Interfaces\.IAbstractComponent\`1'), [DiGi\.Analytical\.Building\.Interfaces\.IAbstractComponent](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iabstractcomponent 'DiGi\.Analytical\.Building\.Interfaces\.IAbstractComponent'), [DiGi\.Analytical\.Building\.Interfaces\.IComponent](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.icomponent 'DiGi\.Analytical\.Building\.Interfaces\.IComponent'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingBoundable3D](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingboundable3d 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingBoundable3D'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry3DObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometry3dobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry3DObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometryobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingguidobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingSerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingserializableobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingSerializableObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticalobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticalguidobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalGuidObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalUniqueObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticaluniqueobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalUniqueObject'), [DiGi\.Core\.Interfaces\.IUniqueObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniqueobject 'DiGi\.Core\.Interfaces\.IUniqueObject'), [DiGi\.Core\.Interfaces\.IGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iguidobject 'DiGi\.Core\.Interfaces\.IGuidObject'), [DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.core.interfaces.igeometryobject 'DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject'), [DiGi\.Geometry\.Object\.Spatial\.Interfaces\.IGeometry3DObject](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.spatial.interfaces.igeometry3dobject 'DiGi\.Geometry\.Object\.Spatial\.Interfaces\.IGeometry3DObject'), [DiGi\.Analytical\.Building\.Interfaces\.IConstructable](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iconstructable 'DiGi\.Analytical\.Building\.Interfaces\.IConstructable'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometryobject-1 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject\`1')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_.T 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\\.T')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometryobject-1 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject\`1'), [DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.core.interfaces.igeometryobject-1 'DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject\`1')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_.T 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\\.T')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.core.interfaces.igeometryobject-1 'DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject\`1')
### Constructors
## AbstractComponent\(AbstractComponent, T\) Constructor
Initializes a new instance of the [AbstractComponent<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_ 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\') class using an existing abstract component and a specific geometry\.
```csharp
public AbstractComponent(DiGi.Analytical.Building.Classes.AbstractComponent? abstractComponent, T? geometry);
```
#### Parameters
`abstractComponent` [AbstractComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent')
The source abstract component from which to copy base properties\.
`geometry` [T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_.T 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\\.T')
The geometry object to be assigned to this component\.
## AbstractComponent\(AbstractComponent\\) Constructor
Initializes a new instance of the [AbstractComponent<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_ 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\') class using an existing component as a source for cloning\.
```csharp
public AbstractComponent(DiGi.Analytical.Building.Classes.AbstractComponent? abstractComponent);
```
#### Parameters
`abstractComponent` [DiGi\.Analytical\.Building\.Classes\.AbstractComponent<](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_ 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_.T 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\\.T')[>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_ 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\')
The source [AbstractComponent<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_ 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\') instance to copy data from\. This value can be null\.
## AbstractComponent\(Guid, AbstractComponent\\) Constructor
Initializes a new instance of the [AbstractComponent<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_ 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\') class using the specified unique identifier and an optional source component\.
```csharp
public AbstractComponent(System.Guid guid, DiGi.Analytical.Building.Classes.AbstractComponent? abstractComponent);
```
#### Parameters
`guid` [System\.Guid](https://learn.microsoft.com/en-us/dotnet/api/system.guid 'System\.Guid')
The globally unique identifier for the component\.
`abstractComponent` [DiGi\.Analytical\.Building\.Classes\.AbstractComponent<](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_ 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_.T 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\\.T')[>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_ 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\')
An optional source [AbstractComponent<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_ 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\') instance to copy properties from\.
## AbstractComponent\(Guid, T\) Constructor
Initializes a new instance of the [AbstractComponent<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_ 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\') class with the specified unique identifier and geometry\.
```csharp
public AbstractComponent(System.Guid guid, T? geometry);
```
#### Parameters
`guid` [System\.Guid](https://learn.microsoft.com/en-us/dotnet/api/system.guid 'System\.Guid')
The unique identifier for the component\.
`geometry` [T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_.T 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\\.T')
The geometry associated with the component\.
## AbstractComponent\(JsonObject\) Constructor
Initializes a new instance of the [AbstractComponent<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_ 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\') class using the specified JSON object\.
```csharp
public AbstractComponent(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object used to initialize the component\.
## AbstractComponent\(T\) Constructor
Initializes a new instance of the [AbstractComponent<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_ 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\') class with the specified geometry\.
```csharp
public AbstractComponent(T? geometry);
```
#### Parameters
`geometry` [T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_.T 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\\.T')
The geometry object to associate with this component\. This value can be null\.
### Properties
## AbstractComponent\\.Geometry Property
```csharp
public T? Geometry { get; }
```
Implements [Geometry](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.core.interfaces.igeometryobject-1.geometry 'DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject\`1\.Geometry')
#### Property Value
[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_.T 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\\.T')
## Air\ Class
Represents an abstract base class for air components within a building analytical model\.
```csharp
public abstract class Air : DiGi.Analytical.Building.Classes.AbstractComponent, DiGi.Analytical.Building.Interfaces.IAir, DiGi.Analytical.Building.Interfaces.IAbstractComponent, DiGi.Analytical.Building.Interfaces.IAbstractComponent, DiGi.Analytical.Building.Interfaces.IComponent, DiGi.Analytical.Building.Interfaces.IBuildingBoundable3D, DiGi.Analytical.Building.Interfaces.IBuildingGeometry3DObject, DiGi.Analytical.Building.Interfaces.IBuildingGeometryObject, DiGi.Analytical.Building.Interfaces.IBuildingGuidObject, DiGi.Analytical.Building.Interfaces.IBuildingSerializableObject, DiGi.Analytical.Building.Interfaces.IBuildingObject, DiGi.Analytical.Interfaces.IAnalyticalObject, DiGi.Core.Interfaces.IObject, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Analytical.Interfaces.IAnalyticalGuidObject, DiGi.Analytical.Interfaces.IAnalyticalUniqueObject, DiGi.Core.Interfaces.IUniqueObject, DiGi.Core.Interfaces.IGuidObject, DiGi.Geometry.Object.Core.Interfaces.IGeometryObject, DiGi.Geometry.Object.Spatial.Interfaces.IGeometry3DObject, DiGi.Analytical.Building.Interfaces.IConstructable, DiGi.Analytical.Building.Interfaces.IBuildingGeometryObject, DiGi.Geometry.Object.Core.Interfaces.IGeometryObject
where T : DiGi.Geometry.Spatial.Interfaces.IGeometry3D
```
#### Type parameters
`T`
The type of 3D geometry associated with the air component, which must implement [DiGi\.Geometry\.Spatial\.Interfaces\.IGeometry3D](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.spatial.interfaces.igeometry3d 'DiGi\.Geometry\.Spatial\.Interfaces\.IGeometry3D')\.
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → [DiGi\.Core\.Parameter\.Classes\.ParametrizedObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.parameter.classes.parametrizedobject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject') → [DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.parameter.classes.parametrizedguidobject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject') → [BuildingObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingObject 'DiGi\.Analytical\.Building\.Classes\.BuildingObject') → [BuildingGeometry3DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject') → [Component](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Component 'DiGi\.Analytical\.Building\.Classes\.Component') → [AbstractComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent') → [DiGi\.Analytical\.Building\.Classes\.AbstractComponent<](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_ 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_.T 'DiGi\.Analytical\.Building\.Classes\.Air\\.T')[>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.AbstractComponent_T_ 'DiGi\.Analytical\.Building\.Classes\.AbstractComponent\') → Air\
Derived
↳ [SurfaceAir](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.SurfaceAir 'DiGi\.Analytical\.Building\.Classes\.SurfaceAir')
Implements [DiGi\.Analytical\.Building\.Interfaces\.IAir<](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iair-1 'DiGi\.Analytical\.Building\.Interfaces\.IAir\`1')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_.T 'DiGi\.Analytical\.Building\.Classes\.Air\\.T')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iair-1 'DiGi\.Analytical\.Building\.Interfaces\.IAir\`1'), [DiGi\.Analytical\.Building\.Interfaces\.IAbstractComponent<](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iabstractcomponent-1 'DiGi\.Analytical\.Building\.Interfaces\.IAbstractComponent\`1')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_.T 'DiGi\.Analytical\.Building\.Classes\.Air\\.T')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iabstractcomponent-1 'DiGi\.Analytical\.Building\.Interfaces\.IAbstractComponent\`1'), [DiGi\.Analytical\.Building\.Interfaces\.IAbstractComponent](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iabstractcomponent 'DiGi\.Analytical\.Building\.Interfaces\.IAbstractComponent'), [DiGi\.Analytical\.Building\.Interfaces\.IComponent](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.icomponent 'DiGi\.Analytical\.Building\.Interfaces\.IComponent'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingBoundable3D](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingboundable3d 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingBoundable3D'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry3DObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometry3dobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry3DObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometryobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingguidobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingSerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingserializableobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingSerializableObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticalobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticalguidobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalGuidObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalUniqueObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticaluniqueobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalUniqueObject'), [DiGi\.Core\.Interfaces\.IUniqueObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniqueobject 'DiGi\.Core\.Interfaces\.IUniqueObject'), [DiGi\.Core\.Interfaces\.IGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iguidobject 'DiGi\.Core\.Interfaces\.IGuidObject'), [DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.core.interfaces.igeometryobject 'DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject'), [DiGi\.Geometry\.Object\.Spatial\.Interfaces\.IGeometry3DObject](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.spatial.interfaces.igeometry3dobject 'DiGi\.Geometry\.Object\.Spatial\.Interfaces\.IGeometry3DObject'), [DiGi\.Analytical\.Building\.Interfaces\.IConstructable](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iconstructable 'DiGi\.Analytical\.Building\.Interfaces\.IConstructable'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometryobject-1 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject\`1')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_.T 'DiGi\.Analytical\.Building\.Classes\.Air\\.T')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometryobject-1 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject\`1'), [DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.core.interfaces.igeometryobject-1 'DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject\`1')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_.T 'DiGi\.Analytical\.Building\.Classes\.Air\\.T')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.core.interfaces.igeometryobject-1 'DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject\`1')
### Constructors
## Air\(Air\\) Constructor
Initializes a new instance of the [Air<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_ 'DiGi\.Analytical\.Building\.Classes\.Air\') class using an existing air component\.
```csharp
public Air(DiGi.Analytical.Building.Classes.Air? air);
```
#### Parameters
`air` [DiGi\.Analytical\.Building\.Classes\.Air<](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_ 'DiGi\.Analytical\.Building\.Classes\.Air\')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_.T 'DiGi\.Analytical\.Building\.Classes\.Air\\.T')[>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_ 'DiGi\.Analytical\.Building\.Classes\.Air\')
The source [Air<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_ 'DiGi\.Analytical\.Building\.Classes\.Air\') instance to copy from\.
## Air\(IAir, T\) Constructor
Initializes a new instance of the [Air<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_ 'DiGi\.Analytical\.Building\.Classes\.Air\') class using an existing air component and a specified geometry\.
```csharp
public Air(DiGi.Analytical.Building.Interfaces.IAir? air, T? geometry);
```
#### Parameters
`air` [DiGi\.Analytical\.Building\.Interfaces\.IAir](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iair 'DiGi\.Analytical\.Building\.Interfaces\.IAir')
The source air component from which properties are copied\.
`geometry` [T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_.T 'DiGi\.Analytical\.Building\.Classes\.Air\\.T')
The geometry associated with this air component\.
## Air\(Guid, Air\\) Constructor
Initializes a new instance of the [Air<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_ 'DiGi\.Analytical\.Building\.Classes\.Air\') class using a specified unique identifier and an existing air object\.
```csharp
public Air(System.Guid guid, DiGi.Analytical.Building.Classes.Air? air);
```
#### Parameters
`guid` [System\.Guid](https://learn.microsoft.com/en-us/dotnet/api/system.guid 'System\.Guid')
The unique identifier for the air component\.
`air` [DiGi\.Analytical\.Building\.Classes\.Air<](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_ 'DiGi\.Analytical\.Building\.Classes\.Air\')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_.T 'DiGi\.Analytical\.Building\.Classes\.Air\\.T')[>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_ 'DiGi\.Analytical\.Building\.Classes\.Air\')
An optional existing air object to initialize from\.
## Air\(Guid, T\) Constructor
Initializes a new instance of the [Air<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_ 'DiGi\.Analytical\.Building\.Classes\.Air\') class using the specified unique identifier and geometry\.
```csharp
public Air(System.Guid guid, T? geometry);
```
#### Parameters
`guid` [System\.Guid](https://learn.microsoft.com/en-us/dotnet/api/system.guid 'System\.Guid')
The unique identifier for the object\.
`geometry` [T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_.T 'DiGi\.Analytical\.Building\.Classes\.Air\\.T')
The 3D geometry associated with the air component\.
## Air\(JsonObject\) Constructor
Initializes a new instance of the [Air<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_ 'DiGi\.Analytical\.Building\.Classes\.Air\') class using the specified JSON object\.
```csharp
public Air(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object containing the data to initialize the instance\.
## Air\(T\) Constructor
Initializes a new instance of the [Air<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_ 'DiGi\.Analytical\.Building\.Classes\.Air\') class using the specified geometry\.
```csharp
public Air(T? geometry);
```
#### Parameters
`geometry` [T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Air_T_.T 'DiGi\.Analytical\.Building\.Classes\.Air\\.T')
The geometry to be associated with this air component\.
## BuildingGeometry2DObject Class
Represents an abstract base class for two\-dimensional geometric objects within a building's analytical model\.
```csharp
public abstract class BuildingGeometry2DObject : DiGi.Analytical.Building.Classes.BuildingObject, DiGi.Analytical.Building.Interfaces.IBuildingGeometry2DObject, DiGi.Analytical.Building.Interfaces.IBuildingGeometryObject, DiGi.Analytical.Building.Interfaces.IBuildingGuidObject, DiGi.Analytical.Building.Interfaces.IBuildingSerializableObject, DiGi.Analytical.Building.Interfaces.IBuildingObject, DiGi.Analytical.Interfaces.IAnalyticalObject, DiGi.Core.Interfaces.IObject, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Analytical.Interfaces.IAnalyticalGuidObject, DiGi.Analytical.Interfaces.IAnalyticalUniqueObject, DiGi.Core.Interfaces.IUniqueObject, DiGi.Core.Interfaces.IGuidObject, DiGi.Geometry.Object.Core.Interfaces.IGeometryObject, DiGi.Geometry.Object.Planar.Interfaces.IGeometry2DObject
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → [DiGi\.Core\.Parameter\.Classes\.ParametrizedObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.parameter.classes.parametrizedobject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject') → [DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.parameter.classes.parametrizedguidobject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject') → [BuildingObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingObject 'DiGi\.Analytical\.Building\.Classes\.BuildingObject') → BuildingGeometry2DObject
Derived
↳ [BuildingGeometry2DObject<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject_T_ 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject\')
Implements [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry2DObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometry2dobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry2DObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometryobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingguidobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingSerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingserializableobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingSerializableObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticalobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticalguidobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalGuidObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalUniqueObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticaluniqueobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalUniqueObject'), [DiGi\.Core\.Interfaces\.IUniqueObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniqueobject 'DiGi\.Core\.Interfaces\.IUniqueObject'), [DiGi\.Core\.Interfaces\.IGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iguidobject 'DiGi\.Core\.Interfaces\.IGuidObject'), [DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.core.interfaces.igeometryobject 'DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject'), [DiGi\.Geometry\.Object\.Planar\.Interfaces\.IGeometry2DObject](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.planar.interfaces.igeometry2dobject 'DiGi\.Geometry\.Object\.Planar\.Interfaces\.IGeometry2DObject')
### Constructors
## BuildingGeometry2DObject\(\) Constructor
Initializes a new instance of the [BuildingGeometry2DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject') class\.
```csharp
public BuildingGeometry2DObject();
```
## BuildingGeometry2DObject\(BuildingGeometry2DObject\) Constructor
Initializes a new instance of the [BuildingGeometry2DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject') class based on an existing [BuildingGeometry2DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject') object\.
```csharp
public BuildingGeometry2DObject(DiGi.Analytical.Building.Classes.BuildingGeometry2DObject? buildingGeometry2DObject);
```
#### Parameters
`buildingGeometry2DObject` [BuildingGeometry2DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject')
The [BuildingGeometry2DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject') object to copy from\.
## BuildingGeometry2DObject\(Guid\) Constructor
Initializes a new instance of the [BuildingGeometry2DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject') class using the specified unique identifier\.
```csharp
public BuildingGeometry2DObject(System.Guid guid);
```
#### Parameters
`guid` [System\.Guid](https://learn.microsoft.com/en-us/dotnet/api/system.guid 'System\.Guid')
The unique global identifier for the object\.
## BuildingGeometry2DObject\(Guid, BuildingGeometry2DObject\) Constructor
Initializes a new instance of the [BuildingGeometry2DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject') class with a specified unique identifier and an optional source object\.
```csharp
public BuildingGeometry2DObject(System.Guid guid, DiGi.Analytical.Building.Classes.BuildingGeometry2DObject? buildingGeometry2DObject);
```
#### Parameters
`guid` [System\.Guid](https://learn.microsoft.com/en-us/dotnet/api/system.guid 'System\.Guid')
The unique global identifier for the building geometry 2D object\.
`buildingGeometry2DObject` [BuildingGeometry2DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject')
An optional existing [BuildingGeometry2DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject') instance used to initialize the current instance\.
## BuildingGeometry2DObject\(JsonObject\) Constructor
Initializes a new instance of the [BuildingGeometry2DObject<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject_T_ 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject\') class from the specified JSON object\.
```csharp
public BuildingGeometry2DObject(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object used to initialize the building geometry 2D object\.
## BuildingGeometry2DObject\ Class
Represents an abstract base class for objects that possess two\-dimensional building geometry\.
```csharp
public abstract class BuildingGeometry2DObject : DiGi.Analytical.Building.Classes.BuildingGeometry2DObject, DiGi.Analytical.Building.Interfaces.IBuildingGeometry2DObject, DiGi.Analytical.Building.Interfaces.IBuildingGeometryObject, DiGi.Analytical.Building.Interfaces.IBuildingGeometry3DObject, DiGi.Analytical.Building.Interfaces.IBuildingGeometryObject, DiGi.Analytical.Building.Interfaces.IBuildingGuidObject, DiGi.Analytical.Building.Interfaces.IBuildingSerializableObject, DiGi.Analytical.Building.Interfaces.IBuildingObject, DiGi.Analytical.Interfaces.IAnalyticalObject, DiGi.Core.Interfaces.IObject, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Analytical.Interfaces.IAnalyticalGuidObject, DiGi.Analytical.Interfaces.IAnalyticalUniqueObject, DiGi.Core.Interfaces.IUniqueObject, DiGi.Core.Interfaces.IGuidObject, DiGi.Geometry.Object.Core.Interfaces.IGeometryObject, DiGi.Geometry.Object.Spatial.Interfaces.IGeometry3DObject, DiGi.Geometry.Object.Core.Interfaces.IGeometryObject, DiGi.Analytical.Building.Interfaces.IBuildingGeometry2DObject, DiGi.Geometry.Object.Planar.Interfaces.IGeometry2DObject, DiGi.Geometry.Object.Planar.Interfaces.IGeometry2DObject
where T : DiGi.Geometry.Planar.Interfaces.IGeometry2D
```
#### Type parameters
`T`
The type of the 2D geometry\.
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → [DiGi\.Core\.Parameter\.Classes\.ParametrizedObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.parameter.classes.parametrizedobject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject') → [DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.parameter.classes.parametrizedguidobject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject') → [BuildingObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingObject 'DiGi\.Analytical\.Building\.Classes\.BuildingObject') → [BuildingGeometry2DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject') → BuildingGeometry2DObject\
Derived
↳ [OpeningConstruction](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.OpeningConstruction 'DiGi\.Analytical\.Building\.Classes\.OpeningConstruction')
Implements [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry2DObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometry2dobject-1 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry2DObject\`1')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject_T_.T 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject\\.T')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometry2dobject-1 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry2DObject\`1'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometryobject-1 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject\`1')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject_T_.T 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject\\.T')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometryobject-1 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject\`1'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry3DObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometry3dobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry3DObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometryobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingguidobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingSerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingserializableobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingSerializableObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticalobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticalguidobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalGuidObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalUniqueObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticaluniqueobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalUniqueObject'), [DiGi\.Core\.Interfaces\.IUniqueObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniqueobject 'DiGi\.Core\.Interfaces\.IUniqueObject'), [DiGi\.Core\.Interfaces\.IGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iguidobject 'DiGi\.Core\.Interfaces\.IGuidObject'), [DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.core.interfaces.igeometryobject 'DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject'), [DiGi\.Geometry\.Object\.Spatial\.Interfaces\.IGeometry3DObject](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.spatial.interfaces.igeometry3dobject 'DiGi\.Geometry\.Object\.Spatial\.Interfaces\.IGeometry3DObject'), [DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.core.interfaces.igeometryobject-1 'DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject\`1')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject_T_.T 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject\\.T')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.core.interfaces.igeometryobject-1 'DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject\`1'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry2DObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometry2dobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry2DObject'), [DiGi\.Geometry\.Object\.Planar\.Interfaces\.IGeometry2DObject](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.planar.interfaces.igeometry2dobject 'DiGi\.Geometry\.Object\.Planar\.Interfaces\.IGeometry2DObject'), [DiGi\.Geometry\.Object\.Planar\.Interfaces\.IGeometry2DObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.planar.interfaces.igeometry2dobject-1 'DiGi\.Geometry\.Object\.Planar\.Interfaces\.IGeometry2DObject\`1')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject_T_.T 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject\\.T')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.planar.interfaces.igeometry2dobject-1 'DiGi\.Geometry\.Object\.Planar\.Interfaces\.IGeometry2DObject\`1')
### Constructors
## BuildingGeometry2DObject\(BuildingGeometry2DObject\\) Constructor
Initializes a new instance of the [BuildingGeometry2DObject<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject_T_ 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject\') class by copying an existing building geometry 2D object\.
```csharp
public BuildingGeometry2DObject(DiGi.Analytical.Building.Classes.BuildingGeometry2DObject? buildingGeometry2DObject);
```
#### Parameters
`buildingGeometry2DObject` [DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject<](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject_T_ 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject\')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject_T_.T 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject\\.T')[>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject_T_ 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject\')
The source [BuildingGeometry2DObject<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject_T_ 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject\') object to copy from\.
## BuildingGeometry2DObject\(Guid, BuildingGeometry2DObject\\) Constructor
Initializes a new instance of the [BuildingGeometry2DObject<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject_T_ 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject\') class using the specified unique identifier and an existing building geometry object\.
```csharp
public BuildingGeometry2DObject(System.Guid guid, DiGi.Analytical.Building.Classes.BuildingGeometry2DObject? buildingGeometry2DObject);
```
#### Parameters
`guid` [System\.Guid](https://learn.microsoft.com/en-us/dotnet/api/system.guid 'System\.Guid')
The unique identifier for the object\.
`buildingGeometry2DObject` [DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject<](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject_T_ 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject\')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject_T_.T 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject\\.T')[>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject_T_ 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject\')
The source building geometry object from which to clone properties and geometry\.
## BuildingGeometry2DObject\(JsonObject\) Constructor
Initializes a new instance of the [BuildingGeometry2DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject') class using the specified JSON object\.
```csharp
public BuildingGeometry2DObject(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object containing the data to initialize the building geometry 2D object\.
## BuildingGeometry2DObject\(T\) Constructor
Initializes a new instance of the [BuildingGeometry2DObject<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject_T_ 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject\') class with the specified geometry\.
```csharp
public BuildingGeometry2DObject(T? geometry);
```
#### Parameters
`geometry` [T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject_T_.T 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject\\.T')
The geometry to assign to the object; can be null\.
### Properties
## BuildingGeometry2DObject\\.Geometry Property
Gets the two\-dimensional geometry of the building object\.
```csharp
public T? Geometry { get; }
```
Implements [Geometry](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.core.interfaces.igeometryobject-1.geometry 'DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject\`1\.Geometry')
#### Property Value
[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry2DObject_T_.T 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry2DObject\\.T')
## BuildingGeometry3DObject Class
Represents an abstract base class for all three\-dimensional geometric objects within a building's analytical model\.
```csharp
public abstract class BuildingGeometry3DObject : DiGi.Analytical.Building.Classes.BuildingObject, DiGi.Analytical.Building.Interfaces.IBuildingGeometry3DObject, DiGi.Analytical.Building.Interfaces.IBuildingGeometryObject, DiGi.Analytical.Building.Interfaces.IBuildingGuidObject, DiGi.Analytical.Building.Interfaces.IBuildingSerializableObject, DiGi.Analytical.Building.Interfaces.IBuildingObject, DiGi.Analytical.Interfaces.IAnalyticalObject, DiGi.Core.Interfaces.IObject, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Analytical.Interfaces.IAnalyticalGuidObject, DiGi.Analytical.Interfaces.IAnalyticalUniqueObject, DiGi.Core.Interfaces.IUniqueObject, DiGi.Core.Interfaces.IGuidObject, DiGi.Geometry.Object.Core.Interfaces.IGeometryObject, DiGi.Geometry.Object.Spatial.Interfaces.IGeometry3DObject
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → [DiGi\.Core\.Parameter\.Classes\.ParametrizedObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.parameter.classes.parametrizedobject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject') → [DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.parameter.classes.parametrizedguidobject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject') → [BuildingObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingObject 'DiGi\.Analytical\.Building\.Classes\.BuildingObject') → BuildingGeometry3DObject
Derived
↳ [BuildingGeometry3DObject<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject_T_ 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject\')
↳ [Component](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Component 'DiGi\.Analytical\.Building\.Classes\.Component')
Implements [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry3DObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometry3dobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry3DObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometryobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingguidobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingSerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingserializableobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingSerializableObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticalobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticalguidobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalGuidObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalUniqueObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticaluniqueobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalUniqueObject'), [DiGi\.Core\.Interfaces\.IUniqueObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniqueobject 'DiGi\.Core\.Interfaces\.IUniqueObject'), [DiGi\.Core\.Interfaces\.IGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iguidobject 'DiGi\.Core\.Interfaces\.IGuidObject'), [DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.core.interfaces.igeometryobject 'DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject'), [DiGi\.Geometry\.Object\.Spatial\.Interfaces\.IGeometry3DObject](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.spatial.interfaces.igeometry3dobject 'DiGi\.Geometry\.Object\.Spatial\.Interfaces\.IGeometry3DObject')
### Constructors
## BuildingGeometry3DObject\(\) Constructor
Initializes a new instance of the [BuildingGeometry3DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject') class\.
```csharp
public BuildingGeometry3DObject();
```
## BuildingGeometry3DObject\(BuildingGeometry3DObject\) Constructor
Initializes a new instance of the [BuildingGeometry3DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject') class using the specified object\.
```csharp
public BuildingGeometry3DObject(DiGi.Analytical.Building.Classes.BuildingGeometry3DObject? buildingGeometry3DObject);
```
#### Parameters
`buildingGeometry3DObject` [BuildingGeometry3DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject')
The [BuildingGeometry3DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject') object to copy from or use for initialization\.
## BuildingGeometry3DObject\(Guid\) Constructor
Initializes a new instance of the [BuildingGeometry3DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject') class with the specified unique identifier\.
```csharp
public BuildingGeometry3DObject(System.Guid guid);
```
#### Parameters
`guid` [System\.Guid](https://learn.microsoft.com/en-us/dotnet/api/system.guid 'System\.Guid')
The unique global identifier for the building geometry 3D object\.
## BuildingGeometry3DObject\(Guid, BuildingGeometry3DObject\) Constructor
Initializes a new instance of the [BuildingGeometry3DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject') class with a specified unique identifier and an optional existing object\.
```csharp
public BuildingGeometry3DObject(System.Guid guid, DiGi.Analytical.Building.Classes.BuildingGeometry3DObject? buildingGeometry3DObject);
```
#### Parameters
`guid` [System\.Guid](https://learn.microsoft.com/en-us/dotnet/api/system.guid 'System\.Guid')
The unique global identifier for the building geometry 3D object\.
`buildingGeometry3DObject` [BuildingGeometry3DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject')
An optional [BuildingGeometry3DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject') instance to initialize from\.
## BuildingGeometry3DObject\(JsonObject\) Constructor
Initializes a new instance of the [BuildingGeometry3DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject') class using the specified JSON object\.
```csharp
public BuildingGeometry3DObject(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object used to initialize the building geometry 3D object\.
## BuildingGeometry3DObject\ Class
Represents an abstract base class for 3D building geometry objects that encapsulate a specific type of 3D geometry\.
```csharp
public abstract class BuildingGeometry3DObject : DiGi.Analytical.Building.Classes.BuildingGeometry3DObject, DiGi.Analytical.Building.Interfaces.IBuildingGeometry3DObject, DiGi.Analytical.Building.Interfaces.IBuildingGeometryObject, DiGi.Analytical.Building.Interfaces.IBuildingGeometry3DObject, DiGi.Analytical.Building.Interfaces.IBuildingGeometryObject, DiGi.Analytical.Building.Interfaces.IBuildingGuidObject, DiGi.Analytical.Building.Interfaces.IBuildingSerializableObject, DiGi.Analytical.Building.Interfaces.IBuildingObject, DiGi.Analytical.Interfaces.IAnalyticalObject, DiGi.Core.Interfaces.IObject, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Analytical.Interfaces.IAnalyticalGuidObject, DiGi.Analytical.Interfaces.IAnalyticalUniqueObject, DiGi.Core.Interfaces.IUniqueObject, DiGi.Core.Interfaces.IGuidObject, DiGi.Geometry.Object.Core.Interfaces.IGeometryObject, DiGi.Geometry.Object.Spatial.Interfaces.IGeometry3DObject, DiGi.Geometry.Object.Core.Interfaces.IGeometryObject, DiGi.Geometry.Object.Spatial.Interfaces.IGeometry3DObject
where T : DiGi.Geometry.Spatial.Interfaces.IGeometry3D
```
#### Type parameters
`T`
The type of the 3D geometry, which must implement [DiGi\.Geometry\.Spatial\.Interfaces\.IGeometry3D](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.spatial.interfaces.igeometry3d 'DiGi\.Geometry\.Spatial\.Interfaces\.IGeometry3D')\.
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → [DiGi\.Core\.Parameter\.Classes\.ParametrizedObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.parameter.classes.parametrizedobject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject') → [DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.parameter.classes.parametrizedguidobject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject') → [BuildingObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingObject 'DiGi\.Analytical\.Building\.Classes\.BuildingObject') → [BuildingGeometry3DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject') → BuildingGeometry3DObject\
Derived
↳ [Shade<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Shade_T_ 'DiGi\.Analytical\.Building\.Classes\.Shade\')
↳ [Space](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.Space 'DiGi\.Analytical\.Building\.Classes\.Space')
Implements [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry3DObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometry3dobject-1 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry3DObject\`1')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject_T_.T 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject\\.T')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometry3dobject-1 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry3DObject\`1'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometryobject-1 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject\`1')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject_T_.T 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject\\.T')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometryobject-1 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject\`1'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry3DObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometry3dobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry3DObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometryobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingguidobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingSerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingserializableobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingSerializableObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticalobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticalguidobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalGuidObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalUniqueObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticaluniqueobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalUniqueObject'), [DiGi\.Core\.Interfaces\.IUniqueObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniqueobject 'DiGi\.Core\.Interfaces\.IUniqueObject'), [DiGi\.Core\.Interfaces\.IGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iguidobject 'DiGi\.Core\.Interfaces\.IGuidObject'), [DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.core.interfaces.igeometryobject 'DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject'), [DiGi\.Geometry\.Object\.Spatial\.Interfaces\.IGeometry3DObject](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.spatial.interfaces.igeometry3dobject 'DiGi\.Geometry\.Object\.Spatial\.Interfaces\.IGeometry3DObject'), [DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.core.interfaces.igeometryobject-1 'DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject\`1')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject_T_.T 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject\\.T')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.core.interfaces.igeometryobject-1 'DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject\`1'), [DiGi\.Geometry\.Object\.Spatial\.Interfaces\.IGeometry3DObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.spatial.interfaces.igeometry3dobject-1 'DiGi\.Geometry\.Object\.Spatial\.Interfaces\.IGeometry3DObject\`1')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject_T_.T 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject\\.T')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.spatial.interfaces.igeometry3dobject-1 'DiGi\.Geometry\.Object\.Spatial\.Interfaces\.IGeometry3DObject\`1')
### Constructors
## BuildingGeometry3DObject\(BuildingGeometry3DObject\\) Constructor
Initializes a new instance of the [BuildingGeometry3DObject<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject_T_ 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject\') class using an existing building geometry 3D object\.
```csharp
public BuildingGeometry3DObject(DiGi.Analytical.Building.Classes.BuildingGeometry3DObject? buildingGeometry3DObject);
```
#### Parameters
`buildingGeometry3DObject` [DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject<](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject_T_ 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject\')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject_T_.T 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject\\.T')[>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject_T_ 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject\')
The source building geometry 3D object to copy from\.
## BuildingGeometry3DObject\(Guid, BuildingGeometry3DObject\\) Constructor
Initializes a new instance of the [BuildingGeometry3DObject<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject_T_ 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject\') class with the specified unique identifier and an optional source building geometry 3D object\.
```csharp
public BuildingGeometry3DObject(System.Guid guid, DiGi.Analytical.Building.Classes.BuildingGeometry3DObject? buildingGeometry3DObject);
```
#### Parameters
`guid` [System\.Guid](https://learn.microsoft.com/en-us/dotnet/api/system.guid 'System\.Guid')
The unique identifier for the object\.
`buildingGeometry3DObject` [DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject<](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject_T_ 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject\')[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject_T_.T 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject\\.T')[>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject_T_ 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject\')
An optional existing building geometry 3D object to copy data from\.
## BuildingGeometry3DObject\(JsonObject\) Constructor
Initializes a new instance of the [BuildingGeometry3DObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject') class using the specified JSON object\.
```csharp
public BuildingGeometry3DObject(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject') containing the data to initialize the object\. This value can be null\.
## BuildingGeometry3DObject\(T\) Constructor
Initializes a new instance of the [BuildingGeometry3DObject<T>](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject_T_ 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject\') class with the specified 3D geometry\.
```csharp
public BuildingGeometry3DObject(T? geometry);
```
#### Parameters
`geometry` [T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject_T_.T 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject\\.T')
The 3D geometry to assign to this object\. The provided geometry is cloned if it is not null\.
### Properties
## BuildingGeometry3DObject\\.Geometry Property
```csharp
public T? Geometry { get; }
```
Implements [Geometry](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.core.interfaces.igeometryobject-1.geometry 'DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject\`1\.Geometry')
#### Property Value
[T](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingGeometry3DObject_T_.T 'DiGi\.Analytical\.Building\.Classes\.BuildingGeometry3DObject\\.T')
## BuildingInformation Class
Represents detailed information regarding a building, providing properties for its address, geographical coordinates, and UTC offset\.
```csharp
public class BuildingInformation : DiGi.Core.Classes.SerializableObject, DiGi.Analytical.Building.Interfaces.IBuildingObject, DiGi.Analytical.Interfaces.IAnalyticalObject, DiGi.Core.Interfaces.IObject
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → BuildingInformation
Implements [DiGi\.Analytical\.Building\.Interfaces\.IBuildingObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticalobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject')
### Constructors
## BuildingInformation\(\) Constructor
Initializes a new instance of the [BuildingInformation](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingInformation 'DiGi\.Analytical\.Building\.Classes\.BuildingInformation') class\.
```csharp
public BuildingInformation();
```
## BuildingInformation\(BuildingInformation\) Constructor
Initializes a new instance of the [BuildingInformation](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingInformation 'DiGi\.Analytical\.Building\.Classes\.BuildingInformation') class by copying the values from an existing [BuildingInformation](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingInformation 'DiGi\.Analytical\.Building\.Classes\.BuildingInformation') instance\.
```csharp
public BuildingInformation(DiGi.Analytical.Building.Classes.BuildingInformation? buildingInformation);
```
#### Parameters
`buildingInformation` [BuildingInformation](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingInformation 'DiGi\.Analytical\.Building\.Classes\.BuildingInformation')
The source [BuildingInformation](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingInformation 'DiGi\.Analytical\.Building\.Classes\.BuildingInformation') object to copy data from; can be null\.
## BuildingInformation\(JsonObject\) Constructor
Initializes a new instance of the [BuildingInformation](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingInformation 'DiGi\.Analytical\.Building\.Classes\.BuildingInformation') class using the specified JSON object\.
```csharp
public BuildingInformation(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object containing the building information data\.
### Properties
## BuildingInformation\.Address Property
Gets or sets the physical mailing address of the building\.
```csharp
public DiGi.Core.Classes.Address? Address { get; set; }
```
#### Property Value
[DiGi\.Core\.Classes\.Address](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.address 'DiGi\.Core\.Classes\.Address')
## BuildingInformation\.Coordinates Property
Gets or sets the geographic coordinates of the building\.
```csharp
public DiGi.Core.Classes.Coordinates? Coordinates { get; set; }
```
#### Property Value
[DiGi\.Core\.Classes\.Coordinates](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.coordinates 'DiGi\.Core\.Classes\.Coordinates')
## BuildingInformation\.UTC Property
Gets or sets the Coordinated Universal Time \(UTC\) time zone associated with the building information\.
```csharp
public DiGi.Core.Enums.UTC UTC { get; set; }
```
#### Property Value
[DiGi\.Core\.Enums\.UTC](https://learn.microsoft.com/en-us/dotnet/api/digi.core.enums.utc 'DiGi\.Core\.Enums\.UTC')
## BuildingModel Class
Represents an analytical building model that manages structural relations, building information, and spatial bounding properties\.
```csharp
public class BuildingModel : DiGi.Core.Parameter.Classes.ParametrizedGuidObject, DiGi.Analytical.Building.Interfaces.IBuildingGuidObject, DiGi.Analytical.Building.Interfaces.IBuildingSerializableObject, DiGi.Analytical.Building.Interfaces.IBuildingObject, DiGi.Analytical.Interfaces.IAnalyticalObject, DiGi.Core.Interfaces.IObject, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Analytical.Interfaces.IAnalyticalGuidObject, DiGi.Analytical.Interfaces.IAnalyticalUniqueObject, DiGi.Core.Interfaces.IUniqueObject, DiGi.Core.Interfaces.IGuidObject, DiGi.Core.Interfaces.IGuidModel, DiGi.Core.Interfaces.ISerializableModel, DiGi.Core.Interfaces.IModel, DiGi.Analytical.Building.Interfaces.IBuildingBoundable3D, DiGi.Analytical.Building.Interfaces.IBuildingGeometry3DObject, DiGi.Analytical.Building.Interfaces.IBuildingGeometryObject, DiGi.Geometry.Object.Core.Interfaces.IGeometryObject, DiGi.Geometry.Object.Spatial.Interfaces.IGeometry3DObject
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → [DiGi\.Core\.Parameter\.Classes\.ParametrizedObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.parameter.classes.parametrizedobject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedObject') → [DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.parameter.classes.parametrizedguidobject 'DiGi\.Core\.Parameter\.Classes\.ParametrizedGuidObject') → BuildingModel
Implements [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingguidobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingSerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingserializableobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingSerializableObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticalobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticalguidobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalGuidObject'), [DiGi\.Analytical\.Interfaces\.IAnalyticalUniqueObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.interfaces.ianalyticaluniqueobject 'DiGi\.Analytical\.Interfaces\.IAnalyticalUniqueObject'), [DiGi\.Core\.Interfaces\.IUniqueObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniqueobject 'DiGi\.Core\.Interfaces\.IUniqueObject'), [DiGi\.Core\.Interfaces\.IGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iguidobject 'DiGi\.Core\.Interfaces\.IGuidObject'), [DiGi\.Core\.Interfaces\.IGuidModel](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iguidmodel 'DiGi\.Core\.Interfaces\.IGuidModel'), [DiGi\.Core\.Interfaces\.ISerializableModel](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializablemodel 'DiGi\.Core\.Interfaces\.ISerializableModel'), [DiGi\.Core\.Interfaces\.IModel](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.imodel 'DiGi\.Core\.Interfaces\.IModel'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingBoundable3D](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingboundable3d 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingBoundable3D'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry3DObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometry3dobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometry3DObject'), [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildinggeometryobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGeometryObject'), [DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.core.interfaces.igeometryobject 'DiGi\.Geometry\.Object\.Core\.Interfaces\.IGeometryObject'), [DiGi\.Geometry\.Object\.Spatial\.Interfaces\.IGeometry3DObject](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.object.spatial.interfaces.igeometry3dobject 'DiGi\.Geometry\.Object\.Spatial\.Interfaces\.IGeometry3DObject')
### Constructors
## BuildingModel\(\) Constructor
Initializes a new instance of the [BuildingModel](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel 'DiGi\.Analytical\.Building\.Classes\.BuildingModel') class\.
```csharp
public BuildingModel();
```
## BuildingModel\(BuildingModel\) Constructor
Initializes a new instance of the [BuildingModel](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel 'DiGi\.Analytical\.Building\.Classes\.BuildingModel') class by cloning an existing building model\.
```csharp
public BuildingModel(DiGi.Analytical.Building.Classes.BuildingModel? buildingModel);
```
#### Parameters
`buildingModel` [BuildingModel](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel 'DiGi\.Analytical\.Building\.Classes\.BuildingModel')
The source [BuildingModel](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel 'DiGi\.Analytical\.Building\.Classes\.BuildingModel') instance to copy data from\. If null, a default instance is initialized\.
## BuildingModel\(JsonObject\) Constructor
Initializes a new instance of the [BuildingModel](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel 'DiGi\.Analytical\.Building\.Classes\.BuildingModel') class using the specified JSON object\.
```csharp
public BuildingModel(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject') containing the building model data, or [null](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/null 'https://docs\.microsoft\.com/en\-us/dotnet/csharp/language\-reference/keywords/null') if no data is provided\.
### Properties
## BuildingModel\.BuildingInformation Property
Gets or sets the building information associated with this building model\.
```csharp
public DiGi.Analytical.Building.Classes.BuildingInformation BuildingInformation { get; set; }
```
#### Property Value
[BuildingInformation](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingInformation 'DiGi\.Analytical\.Building\.Classes\.BuildingInformation')
### Methods
## BuildingModel\.Assign\(IComponent, ISpace, ISpace\) Method
Assigns a component to one or two spaces and establishes the corresponding relationship within the building model\.
```csharp
public bool Assign(DiGi.Analytical.Building.Interfaces.IComponent? component, DiGi.Analytical.Building.Interfaces.ISpace? space_1, DiGi.Analytical.Building.Interfaces.ISpace? space_2=null);
```
#### Parameters
`component` [DiGi\.Analytical\.Building\.Interfaces\.IComponent](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.icomponent 'DiGi\.Analytical\.Building\.Interfaces\.IComponent')
The component to be assigned\.
`space_1` [DiGi\.Analytical\.Building\.Interfaces\.ISpace](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ispace 'DiGi\.Analytical\.Building\.Interfaces\.ISpace')
The primary space associated with the component\.
`space_2` [DiGi\.Analytical\.Building\.Interfaces\.ISpace](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ispace 'DiGi\.Analytical\.Building\.Interfaces\.ISpace')
An optional secondary space associated with the component\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the component and spaces were successfully updated and the relationship was created; otherwise, false\.
## BuildingModel\.Assign\(IDoor, IDoorConstruction\) Method
Assigns a relationship between the specified door and its corresponding door construction within the building model\.
```csharp
public bool Assign(DiGi.Analytical.Building.Interfaces.IDoor? door, DiGi.Analytical.Building.Interfaces.IDoorConstruction? doorConstruction);
```
#### Parameters
`door` [DiGi\.Analytical\.Building\.Interfaces\.IDoor](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.idoor 'DiGi\.Analytical\.Building\.Interfaces\.IDoor')
The door object to be assigned\. This value can be null\.
`doorConstruction` [DiGi\.Analytical\.Building\.Interfaces\.IDoorConstruction](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.idoorconstruction 'DiGi\.Analytical\.Building\.Interfaces\.IDoorConstruction')
The door construction object to be assigned\. This value can be null\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the relationship was successfully established; otherwise, false\.
## BuildingModel\.Assign\(IFloor, IFloorConstruction\) Method
Assigns a floor construction to a specific floor within the building model\.
```csharp
public bool Assign(DiGi.Analytical.Building.Interfaces.IFloor? floor, DiGi.Analytical.Building.Interfaces.IFloorConstruction? floorConstruction);
```
#### Parameters
`floor` [DiGi\.Analytical\.Building\.Interfaces\.IFloor](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ifloor 'DiGi\.Analytical\.Building\.Interfaces\.IFloor')
The floor object to be assigned\.
`floorConstruction` [DiGi\.Analytical\.Building\.Interfaces\.IFloorConstruction](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ifloorconstruction 'DiGi\.Analytical\.Building\.Interfaces\.IFloorConstruction')
The floor construction object to be assigned\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the assignment was successful; otherwise, false\.
## BuildingModel\.Assign\(IRoof, IRoofConstruction\) Method
Assigns a relationship between the specified roof and its corresponding roof construction within the building model\.
```csharp
public bool Assign(DiGi.Analytical.Building.Interfaces.IRoof? roof, DiGi.Analytical.Building.Interfaces.IRoofConstruction? roofConstruction);
```
#### Parameters
`roof` [DiGi\.Analytical\.Building\.Interfaces\.IRoof](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iroof 'DiGi\.Analytical\.Building\.Interfaces\.IRoof')
The roof object to be assigned\. This value can be null\.
`roofConstruction` [DiGi\.Analytical\.Building\.Interfaces\.IRoofConstruction](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iroofconstruction 'DiGi\.Analytical\.Building\.Interfaces\.IRoofConstruction')
The roof construction object to be assigned\. This value can be null\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the assignment was successful and the relation was created; otherwise, false\.
## BuildingModel\.Assign\(ISpace, IInternalCondition, HourRange, string\) Method
Assigns an internal condition to a specific space within the building model\.
```csharp
public bool Assign(DiGi.Analytical.Building.Interfaces.ISpace? space, DiGi.Analytical.Building.Interfaces.IInternalCondition? internalCondition, DiGi.Analytical.Classes.HourRange? hourRange, string? id=null);
```
#### Parameters
`space` [DiGi\.Analytical\.Building\.Interfaces\.ISpace](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ispace 'DiGi\.Analytical\.Building\.Interfaces\.ISpace')
The space object to which the internal condition is assigned\.
`internalCondition` [DiGi\.Analytical\.Building\.Interfaces\.IInternalCondition](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iinternalcondition 'DiGi\.Analytical\.Building\.Interfaces\.IInternalCondition')
The internal condition object to be assigned to the space\.
`hourRange` [DiGi\.Analytical\.Classes\.HourRange](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.classes.hourrange 'DiGi\.Analytical\.Classes\.HourRange')
An optional hour range specifying when the internal condition applies\.
`id` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
An optional unique identifier for the assignment relation\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the internal condition was successfully assigned to the space; otherwise, false\.
## BuildingModel\.Assign\(IWall, IWallConstruction\) Method
Assigns a wall to its corresponding wall construction within the building model\.
```csharp
public bool Assign(DiGi.Analytical.Building.Interfaces.IWall? wall, DiGi.Analytical.Building.Interfaces.IWallConstruction? wallConstruction);
```
#### Parameters
`wall` [DiGi\.Analytical\.Building\.Interfaces\.IWall](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iwall 'DiGi\.Analytical\.Building\.Interfaces\.IWall')
The wall object to be assigned\.
`wallConstruction` [DiGi\.Analytical\.Building\.Interfaces\.IWallConstruction](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iwallconstruction 'DiGi\.Analytical\.Building\.Interfaces\.IWallConstruction')
The wall construction object to be associated with the wall\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the assignment was successful; otherwise, false\.
## BuildingModel\.Assign\(IWindow, IWindowConstruction\) Method
Assigns a window construction to the specified window within the building model\.
```csharp
public bool Assign(DiGi.Analytical.Building.Interfaces.IWindow? window, DiGi.Analytical.Building.Interfaces.IWindowConstruction? windowConstruction);
```
#### Parameters
`window` [DiGi\.Analytical\.Building\.Interfaces\.IWindow](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iwindow 'DiGi\.Analytical\.Building\.Interfaces\.IWindow')
The window instance to which the construction is assigned\. May be null\.
`windowConstruction` [DiGi\.Analytical\.Building\.Interfaces\.IWindowConstruction](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iwindowconstruction 'DiGi\.Analytical\.Building\.Interfaces\.IWindowConstruction')
The window construction instance to assign\. May be null\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the assignment was successfully created; otherwise, false\.
## BuildingModel\.Assign\(IZone, IEnumerable\\) Method
Assigns a collection of spaces to a specified zone within the building model\.
```csharp
public bool Assign(DiGi.Analytical.Building.Interfaces.IZone? zone, System.Collections.Generic.IEnumerable? spaces);
```
#### Parameters
`zone` [DiGi\.Analytical\.Building\.Interfaces\.IZone](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.izone 'DiGi\.Analytical\.Building\.Interfaces\.IZone')
The zone to which the spaces should be assigned\. May be null\.
`spaces` [System\.Collections\.Generic\.IEnumerable<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')[DiGi\.Analytical\.Building\.Interfaces\.ISpace](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ispace 'DiGi\.Analytical\.Building\.Interfaces\.ISpace')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')
The collection of spaces to associate with the zone\. May be null\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the assignment was successful and the relation was created; otherwise, false\.
## BuildingModel\.Assign\\(IEnumerable\, IInternalCondition, HourRange, string\) Method
Assigns a collection of spaces to an internal condition with an optional time range and identifier\.
```csharp
public bool Assign(System.Collections.Generic.IEnumerable? spaces, DiGi.Analytical.Building.Interfaces.IInternalCondition? internalCondition, DiGi.Analytical.Classes.HourRange? hourRange, string? id=null)
where TSpace : DiGi.Analytical.Building.Interfaces.ISpace;
```
#### Type parameters
`TSpace`
The type of the space objects, which must implement [DiGi\.Analytical\.Building\.Interfaces\.ISpace](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ispace 'DiGi\.Analytical\.Building\.Interfaces\.ISpace')\.
#### Parameters
`spaces` [System\.Collections\.Generic\.IEnumerable<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')[TSpace](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.Assign_TSpace_(System.Collections.Generic.IEnumerable_TSpace_,DiGi.Analytical.Building.Interfaces.IInternalCondition,DiGi.Analytical.Classes.HourRange,string).TSpace 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.Assign\\(System\.Collections\.Generic\.IEnumerable\, DiGi\.Analytical\.Building\.Interfaces\.IInternalCondition, DiGi\.Analytical\.Classes\.HourRange, string\)\.TSpace')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')
A collection of spaces to be assigned\.
`internalCondition` [DiGi\.Analytical\.Building\.Interfaces\.IInternalCondition](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iinternalcondition 'DiGi\.Analytical\.Building\.Interfaces\.IInternalCondition')
The internal condition to associate with the spaces\.
`hourRange` [DiGi\.Analytical\.Classes\.HourRange](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.classes.hourrange 'DiGi\.Analytical\.Classes\.HourRange')
An optional time range during which the assignment is valid\.
`id` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
An optional unique identifier for the relation\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
`true` if at least one space was successfully assigned; otherwise, `false`\.
## BuildingModel\.GetBoundingBox\(\) Method
Gets the axis\-aligned bounding box of the building model\.
```csharp
public DiGi.Geometry.Spatial.Classes.BoundingBox3D? GetBoundingBox();
```
Implements [GetBoundingBox\(\)](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingboundable3d.getboundingbox 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingBoundable3D\.GetBoundingBox')
#### Returns
[DiGi\.Geometry\.Spatial\.Classes\.BoundingBox3D](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.spatial.classes.boundingbox3d 'DiGi\.Geometry\.Spatial\.Classes\.BoundingBox3D')
The bounding box encompassing all components in the building model, or [null](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/null 'https://docs\.microsoft\.com/en\-us/dotnet/csharp/language\-reference/keywords/null') if it cannot be created\.
## BuildingModel\.GetComponent\\(IOpening\) Method
Retrieves a component of the specified type associated with the given opening\.
```csharp
public TComponent? GetComponent(DiGi.Analytical.Building.Interfaces.IOpening? opening)
where TComponent : DiGi.Analytical.Building.Interfaces.IComponent;
```
#### Type parameters
`TComponent`
The type of the component to retrieve, which must implement [DiGi\.Analytical\.Building\.Interfaces\.IComponent](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.icomponent 'DiGi\.Analytical\.Building\.Interfaces\.IComponent')\.
#### Parameters
`opening` [DiGi\.Analytical\.Building\.Interfaces\.IOpening](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iopening 'DiGi\.Analytical\.Building\.Interfaces\.IOpening')
The opening for which the associated component is being retrieved\. May be `null`\.
#### Returns
[TComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetComponent_TComponent_(DiGi.Analytical.Building.Interfaces.IOpening).TComponent 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetComponent\\(DiGi\.Analytical\.Building\.Interfaces\.IOpening\)\.TComponent')
A cloned instance of the requested component type if found and compatible; otherwise, `null`\.
## BuildingModel\.GetComponents\\(\) Method
Retrieves all components of the specified type from the building relation cluster\.
```csharp
public System.Collections.Generic.List? GetComponents()
where TComponent : DiGi.Analytical.Building.Interfaces.IComponent;
```
#### Type parameters
`TComponent`
The type of component to retrieve, which must implement [DiGi\.Analytical\.Building\.Interfaces\.IComponent](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.icomponent 'DiGi\.Analytical\.Building\.Interfaces\.IComponent')\.
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[TComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetComponents_TComponent_().TComponent 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetComponents\\(\)\.TComponent')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list of components of type [TComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetComponents_TComponent_().TComponent 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetComponents\\(\)\.TComponent'), or null if no such components are found\.
## BuildingModel\.GetComponents\\(IPhysicalComponentConstruction\) Method
Retrieves a list of components of the specified type associated with the given physical component construction\.
```csharp
public System.Collections.Generic.List? GetComponents(DiGi.Analytical.Building.Interfaces.IPhysicalComponentConstruction? physicalComponentConstruction)
where TComponent : DiGi.Analytical.Building.Interfaces.IComponent;
```
#### Type parameters
`TComponent`
The type of components to retrieve, which must implement [DiGi\.Analytical\.Building\.Interfaces\.IComponent](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.icomponent 'DiGi\.Analytical\.Building\.Interfaces\.IComponent')\.
#### Parameters
`physicalComponentConstruction` [DiGi\.Analytical\.Building\.Interfaces\.IPhysicalComponentConstruction](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iphysicalcomponentconstruction 'DiGi\.Analytical\.Building\.Interfaces\.IPhysicalComponentConstruction')
The physical component construction used to identify related components\.
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[TComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetComponents_TComponent_(DiGi.Analytical.Building.Interfaces.IPhysicalComponentConstruction).TComponent 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetComponents\\(DiGi\.Analytical\.Building\.Interfaces\.IPhysicalComponentConstruction\)\.TComponent')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list of components of type [TComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetComponents_TComponent_(DiGi.Analytical.Building.Interfaces.IPhysicalComponentConstruction).TComponent 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetComponents\\(DiGi\.Analytical\.Building\.Interfaces\.IPhysicalComponentConstruction\)\.TComponent') if found; otherwise, [null](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/null 'https://docs\.microsoft\.com/en\-us/dotnet/csharp/language\-reference/keywords/null')\.
## BuildingModel\.GetComponents\\(ISpace\) Method
Retrieves a list of components of the specified type associated with the given space\.
```csharp
public System.Collections.Generic.List? GetComponents(DiGi.Analytical.Building.Interfaces.ISpace? space)
where TComponent : DiGi.Analytical.Building.Interfaces.IComponent;
```
#### Type parameters
`TComponent`
The type of component to retrieve, which must implement [DiGi\.Analytical\.Building\.Interfaces\.IComponent](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.icomponent 'DiGi\.Analytical\.Building\.Interfaces\.IComponent')\.
#### Parameters
`space` [DiGi\.Analytical\.Building\.Interfaces\.ISpace](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ispace 'DiGi\.Analytical\.Building\.Interfaces\.ISpace')
The space for which to retrieve the associated components\. May be null\.
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[TComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetComponents_TComponent_(DiGi.Analytical.Building.Interfaces.ISpace).TComponent 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetComponents\\(DiGi\.Analytical\.Building\.Interfaces\.ISpace\)\.TComponent')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list of components of type [TComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetComponents_TComponent_(DiGi.Analytical.Building.Interfaces.ISpace).TComponent 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetComponents\\(DiGi\.Analytical\.Building\.Interfaces\.ISpace\)\.TComponent') if successful; otherwise, null\.
## BuildingModel\.GetComponents\\(ISpace, ISpace\) Method
Retrieves a list of components of the specified type that define the relationship between two spaces\.
```csharp
public System.Collections.Generic.List? GetComponents(DiGi.Analytical.Building.Interfaces.ISpace? space_1, DiGi.Analytical.Building.Interfaces.ISpace? space_2)
where TComponent : DiGi.Analytical.Building.Interfaces.IComponent;
```
#### Type parameters
`TComponent`
The type of component to retrieve, which must implement [DiGi\.Analytical\.Building\.Interfaces\.IComponent](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.icomponent 'DiGi\.Analytical\.Building\.Interfaces\.IComponent')\.
#### Parameters
`space_1` [DiGi\.Analytical\.Building\.Interfaces\.ISpace](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ispace 'DiGi\.Analytical\.Building\.Interfaces\.ISpace')
The first space involved in the relation\.
`space_2` [DiGi\.Analytical\.Building\.Interfaces\.ISpace](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ispace 'DiGi\.Analytical\.Building\.Interfaces\.ISpace')
The second space involved in the relation\.
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[TComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetComponents_TComponent_(DiGi.Analytical.Building.Interfaces.ISpace,DiGi.Analytical.Building.Interfaces.ISpace).TComponent 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetComponents\\(DiGi\.Analytical\.Building\.Interfaces\.ISpace, DiGi\.Analytical\.Building\.Interfaces\.ISpace\)\.TComponent')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list of components of type [TComponent](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetComponents_TComponent_(DiGi.Analytical.Building.Interfaces.ISpace,DiGi.Analytical.Building.Interfaces.ISpace).TComponent 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetComponents\\(DiGi\.Analytical\.Building\.Interfaces\.ISpace, DiGi\.Analytical\.Building\.Interfaces\.ISpace\)\.TComponent') if successful; otherwise, [null](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/null 'https://docs\.microsoft\.com/en\-us/dotnet/csharp/language\-reference/keywords/null')\.
## BuildingModel\.GetDoorConstruction\(IDoor\) Method
Retrieves the door construction associated with the specified door\.
```csharp
public DiGi.Analytical.Building.Interfaces.IDoorConstruction? GetDoorConstruction(DiGi.Analytical.Building.Interfaces.IDoor? door);
```
#### Parameters
`door` [DiGi\.Analytical\.Building\.Interfaces\.IDoor](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.idoor 'DiGi\.Analytical\.Building\.Interfaces\.IDoor')
The door for which to retrieve the construction\.
#### Returns
[DiGi\.Analytical\.Building\.Interfaces\.IDoorConstruction](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.idoorconstruction 'DiGi\.Analytical\.Building\.Interfaces\.IDoorConstruction')
The [DiGi\.Analytical\.Building\.Interfaces\.IDoorConstruction](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.idoorconstruction 'DiGi\.Analytical\.Building\.Interfaces\.IDoorConstruction') associated with the provided door, or `null` if no such construction is found or if the door is null\.
## BuildingModel\.GetFloorConstruction\(IFloor\) Method
Retrieves the floor construction associated with the specified floor\.
```csharp
public DiGi.Analytical.Building.Interfaces.IFloorConstruction? GetFloorConstruction(DiGi.Analytical.Building.Interfaces.IFloor? floor);
```
#### Parameters
`floor` [DiGi\.Analytical\.Building\.Interfaces\.IFloor](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ifloor 'DiGi\.Analytical\.Building\.Interfaces\.IFloor')
The floor for which to retrieve the construction\.
#### Returns
[DiGi\.Analytical\.Building\.Interfaces\.IFloorConstruction](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ifloorconstruction 'DiGi\.Analytical\.Building\.Interfaces\.IFloorConstruction')
The [DiGi\.Analytical\.Building\.Interfaces\.IFloorConstruction](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ifloorconstruction 'DiGi\.Analytical\.Building\.Interfaces\.IFloorConstruction') associated with the provided floor, or `null` if no such construction exists or the floor is null\.
## BuildingModel\.GetInternalConditions\\(ISpace\) Method
Retrieves the internal conditions associated with the specified space\.
```csharp
public System.Collections.Generic.List? GetInternalConditions(DiGi.Analytical.Building.Interfaces.ISpace? space)
where TInternalCondition : DiGi.Analytical.Building.Interfaces.IInternalCondition;
```
#### Type parameters
`TInternalCondition`
The type of internal condition to retrieve, which must implement [DiGi\.Analytical\.Building\.Interfaces\.IInternalCondition](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iinternalcondition 'DiGi\.Analytical\.Building\.Interfaces\.IInternalCondition')\.
#### Parameters
`space` [DiGi\.Analytical\.Building\.Interfaces\.ISpace](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ispace 'DiGi\.Analytical\.Building\.Interfaces\.ISpace')
The space for which to retrieve the internal conditions\.
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[TInternalCondition](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetInternalConditions_TInternalCondition_(DiGi.Analytical.Building.Interfaces.ISpace).TInternalCondition 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetInternalConditions\\(DiGi\.Analytical\.Building\.Interfaces\.ISpace\)\.TInternalCondition')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list of internal conditions of type [TInternalCondition](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetInternalConditions_TInternalCondition_(DiGi.Analytical.Building.Interfaces.ISpace).TInternalCondition 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetInternalConditions\\(DiGi\.Analytical\.Building\.Interfaces\.ISpace\)\.TInternalCondition') associated with the specified space, or null if no such conditions are found or if the input is null\.
## BuildingModel\.GetObject\\(IBuildingRelation\) Method
Retrieves a building object associated with the specified building relation\.
```csharp
public TBuildingGuidObject? GetObject(DiGi.Analytical.Building.Interfaces.IBuildingRelation? buildingRelation)
where TBuildingGuidObject : DiGi.Analytical.Building.Interfaces.IBuildingGuidObject;
```
#### Type parameters
`TBuildingGuidObject`
The type of the building GUID object to retrieve\.
#### Parameters
`buildingRelation` [DiGi\.Analytical\.Building\.Interfaces\.IBuildingRelation](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingrelation 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingRelation')
The building relation used to identify the target object\.
#### Returns
[TBuildingGuidObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetObject_TBuildingGuidObject_(DiGi.Analytical.Building.Interfaces.IBuildingRelation).TBuildingGuidObject 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetObject\\(DiGi\.Analytical\.Building\.Interfaces\.IBuildingRelation\)\.TBuildingGuidObject')
The retrieved and cloned building object if found; otherwise, [null](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/null 'https://docs\.microsoft\.com/en\-us/dotnet/csharp/language\-reference/keywords/null')\.
## BuildingModel\.GetObject\\(GuidReference\) Method
Retrieves an object of type [TBuildingGuidObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetObject_TBuildingGuidObject_(DiGi.Core.Classes.GuidReference).TBuildingGuidObject 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetObject\\(DiGi\.Core\.Classes\.GuidReference\)\.TBuildingGuidObject') using the specified GUID reference\.
```csharp
public TBuildingGuidObject? GetObject(DiGi.Core.Classes.GuidReference? guidReference)
where TBuildingGuidObject : DiGi.Analytical.Building.Interfaces.IBuildingGuidObject;
```
#### Type parameters
`TBuildingGuidObject`
The type of the building GUID object to retrieve, which must implement [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingguidobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject')\.
#### Parameters
`guidReference` [DiGi\.Core\.Classes\.GuidReference](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.guidreference 'DiGi\.Core\.Classes\.GuidReference')
The GUID reference of the object to retrieve\.
#### Returns
[TBuildingGuidObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetObject_TBuildingGuidObject_(DiGi.Core.Classes.GuidReference).TBuildingGuidObject 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetObject\\(DiGi\.Core\.Classes\.GuidReference\)\.TBuildingGuidObject')
The retrieved object of type [TBuildingGuidObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetObject_TBuildingGuidObject_(DiGi.Core.Classes.GuidReference).TBuildingGuidObject 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetObject\\(DiGi\.Core\.Classes\.GuidReference\)\.TBuildingGuidObject') if found; otherwise, [null](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/null 'https://docs\.microsoft\.com/en\-us/dotnet/csharp/language\-reference/keywords/null')\.
## BuildingModel\.GetObjects\\(IBuildingRelation\) Method
Retrieves a list of building objects associated with the specified building relation\.
```csharp
public System.Collections.Generic.List? GetObjects(DiGi.Analytical.Building.Interfaces.IBuildingRelation? buildingRelation)
where TBuildingGuidObject : DiGi.Analytical.Building.Interfaces.IBuildingGuidObject;
```
#### Type parameters
`TBuildingGuidObject`
The type of building GUID object to retrieve, which must implement [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingguidobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject')\.
#### Parameters
`buildingRelation` [DiGi\.Analytical\.Building\.Interfaces\.IBuildingRelation](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingrelation 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingRelation')
The building relation used to identify the associated objects\. Can be null\.
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[TBuildingGuidObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetObjects_TBuildingGuidObject_(DiGi.Analytical.Building.Interfaces.IBuildingRelation).TBuildingGuidObject 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetObjects\\(DiGi\.Analytical\.Building\.Interfaces\.IBuildingRelation\)\.TBuildingGuidObject')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list of objects of type [TBuildingGuidObject](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetObjects_TBuildingGuidObject_(DiGi.Analytical.Building.Interfaces.IBuildingRelation).TBuildingGuidObject 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetObjects\\(DiGi\.Analytical\.Building\.Interfaces\.IBuildingRelation\)\.TBuildingGuidObject') if found; otherwise, null\.
## BuildingModel\.GetOpenings\\(IComponent\) Method
Retrieves a list of opening objects associated with the specified component\.
```csharp
public System.Collections.Generic.List? GetOpenings(DiGi.Analytical.Building.Interfaces.IComponent? component)
where TOpening : DiGi.Analytical.Building.Interfaces.IOpening;
```
#### Type parameters
`TOpening`
The type of opening object to retrieve, which must implement [DiGi\.Analytical\.Building\.Interfaces\.IOpening](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iopening 'DiGi\.Analytical\.Building\.Interfaces\.IOpening')\.
#### Parameters
`component` [DiGi\.Analytical\.Building\.Interfaces\.IComponent](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.icomponent 'DiGi\.Analytical\.Building\.Interfaces\.IComponent')
The component for which associated openings are retrieved\.
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[TOpening](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetOpenings_TOpening_(DiGi.Analytical.Building.Interfaces.IComponent).TOpening 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetOpenings\\(DiGi\.Analytical\.Building\.Interfaces\.IComponent\)\.TOpening')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list of objects of type \ if associations are found; otherwise, [null](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/null 'https://docs\.microsoft\.com/en\-us/dotnet/csharp/language\-reference/keywords/null')\.
## BuildingModel\.GetOpenings\\(IOpeningConstruction\) Method
Retrieves a list of openings associated with the specified opening construction\.
```csharp
public System.Collections.Generic.List? GetOpenings(DiGi.Analytical.Building.Interfaces.IOpeningConstruction? openingConstruction)
where TOpening : DiGi.Analytical.Building.Interfaces.IOpening;
```
#### Type parameters
`TOpening`
The type of opening to retrieve, which must implement [DiGi\.Analytical\.Building\.Interfaces\.IOpening](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iopening 'DiGi\.Analytical\.Building\.Interfaces\.IOpening')\.
#### Parameters
`openingConstruction` [DiGi\.Analytical\.Building\.Interfaces\.IOpeningConstruction](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iopeningconstruction 'DiGi\.Analytical\.Building\.Interfaces\.IOpeningConstruction')
The opening construction object used to find related openings\. Can be null\.
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[TOpening](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetOpenings_TOpening_(DiGi.Analytical.Building.Interfaces.IOpeningConstruction).TOpening 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetOpenings\\(DiGi\.Analytical\.Building\.Interfaces\.IOpeningConstruction\)\.TOpening')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list of openings of type \ associated with the provided construction, or null if no such openings are found or if inputs are null\.
## BuildingModel\.GetOpenings\\(Func\\) Method
Retrieves a list of openings that match the specified criteria\.
```csharp
public System.Collections.Generic.List? GetOpenings(System.Func? func=null)
where TOpening : DiGi.Analytical.Building.Interfaces.IOpening;
```
#### Type parameters
`TOpening`
The type of opening to retrieve, which must implement [DiGi\.Analytical\.Building\.Interfaces\.IOpening](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iopening 'DiGi\.Analytical\.Building\.Interfaces\.IOpening')\.
#### Parameters
`func` [System\.Func<](https://learn.microsoft.com/en-us/dotnet/api/system.func-2 'System\.Func\`2')[TOpening](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetOpenings_TOpening_(System.Func_TOpening,bool_).TOpening 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetOpenings\\(System\.Func\\)\.TOpening')[,](https://learn.microsoft.com/en-us/dotnet/api/system.func-2 'System\.Func\`2')[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')[>](https://learn.microsoft.com/en-us/dotnet/api/system.func-2 'System\.Func\`2')
An optional predicate used to filter the retrieved openings\.
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[TOpening](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetOpenings_TOpening_(System.Func_TOpening,bool_).TOpening 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetOpenings\\(System\.Func\\)\.TOpening')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list of openings matching the criteria, or null if the building relation cluster is not available\.
## BuildingModel\.GetRelation\\(IBuildingGuidObject, Func\\) Method
Retrieves a specific building relation associated with the provided unique object\.
```csharp
public TBuildingRelation? GetRelation(DiGi.Analytical.Building.Interfaces.IBuildingGuidObject? buildingUniqueObject, System.Func? func=null)
where TBuildingRelation : DiGi.Analytical.Building.Interfaces.IBuildingRelation;
```
#### Type parameters
`TBuildingRelation`
The type of the building relation to retrieve, which must implement [DiGi\.Analytical\.Building\.Interfaces\.IBuildingRelation](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingrelation 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingRelation')\.
#### Parameters
`buildingUniqueObject` [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingguidobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject')
The building unique object for which the relation is retrieved\.
`func` [System\.Func<](https://learn.microsoft.com/en-us/dotnet/api/system.func-2 'System\.Func\`2')[TBuildingRelation](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetRelation_TBuildingRelation_(DiGi.Analytical.Building.Interfaces.IBuildingGuidObject,System.Func_TBuildingRelation,bool_).TBuildingRelation 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetRelation\\(DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject, System\.Func\\)\.TBuildingRelation')[,](https://learn.microsoft.com/en-us/dotnet/api/system.func-2 'System\.Func\`2')[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')[>](https://learn.microsoft.com/en-us/dotnet/api/system.func-2 'System\.Func\`2')
An optional predicate used to filter the relation based on a specific condition\.
#### Returns
[TBuildingRelation](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetRelation_TBuildingRelation_(DiGi.Analytical.Building.Interfaces.IBuildingGuidObject,System.Func_TBuildingRelation,bool_).TBuildingRelation 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetRelation\\(DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject, System\.Func\\)\.TBuildingRelation')
A cloned instance of [TBuildingRelation](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetRelation_TBuildingRelation_(DiGi.Analytical.Building.Interfaces.IBuildingGuidObject,System.Func_TBuildingRelation,bool_).TBuildingRelation 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetRelation\\(DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject, System\.Func\\)\.TBuildingRelation') if a matching relation is found; otherwise, `null`\.
## BuildingModel\.GetRelations\\(IBuildingGuidObject, Func\\) Method
Retrieves a list of building relations associated with the specified unique object, optionally filtered by a predicate\.
```csharp
public System.Collections.Generic.List? GetRelations(DiGi.Analytical.Building.Interfaces.IBuildingGuidObject? buildingUniqueObject, System.Func? func=null)
where TBuildingRelation : DiGi.Analytical.Building.Interfaces.IBuildingRelation;
```
#### Type parameters
`TBuildingRelation`
The type of building relation to retrieve, which must implement [DiGi\.Analytical\.Building\.Interfaces\.IBuildingRelation](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingrelation 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingRelation')\.
#### Parameters
`buildingUniqueObject` [DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ibuildingguidobject 'DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject')
The unique building object for which relations are retrieved\.
`func` [System\.Func<](https://learn.microsoft.com/en-us/dotnet/api/system.func-2 'System\.Func\`2')[TBuildingRelation](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetRelations_TBuildingRelation_(DiGi.Analytical.Building.Interfaces.IBuildingGuidObject,System.Func_TBuildingRelation,bool_).TBuildingRelation 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetRelations\\(DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject, System\.Func\\)\.TBuildingRelation')[,](https://learn.microsoft.com/en-us/dotnet/api/system.func-2 'System\.Func\`2')[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')[>](https://learn.microsoft.com/en-us/dotnet/api/system.func-2 'System\.Func\`2')
An optional predicate function used to filter the returned relations\.
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[TBuildingRelation](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetRelations_TBuildingRelation_(DiGi.Analytical.Building.Interfaces.IBuildingGuidObject,System.Func_TBuildingRelation,bool_).TBuildingRelation 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetRelations\\(DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject, System\.Func\\)\.TBuildingRelation')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list of matching [TBuildingRelation](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetRelations_TBuildingRelation_(DiGi.Analytical.Building.Interfaces.IBuildingGuidObject,System.Func_TBuildingRelation,bool_).TBuildingRelation 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetRelations\\(DiGi\.Analytical\.Building\.Interfaces\.IBuildingGuidObject, System\.Func\\)\.TBuildingRelation') instances, or [null](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/null 'https://docs\.microsoft\.com/en\-us/dotnet/csharp/language\-reference/keywords/null') if no relations exist or the input object is null\.
## BuildingModel\.GetRoofConstruction\(IRoof\) Method
Gets the construction associated with the specified roof\.
```csharp
public DiGi.Analytical.Building.Interfaces.IRoofConstruction? GetRoofConstruction(DiGi.Analytical.Building.Interfaces.IRoof? roof);
```
#### Parameters
`roof` [DiGi\.Analytical\.Building\.Interfaces\.IRoof](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iroof 'DiGi\.Analytical\.Building\.Interfaces\.IRoof')
The roof for which to retrieve the construction\.
#### Returns
[DiGi\.Analytical\.Building\.Interfaces\.IRoofConstruction](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iroofconstruction 'DiGi\.Analytical\.Building\.Interfaces\.IRoofConstruction')
The [DiGi\.Analytical\.Building\.Interfaces\.IRoofConstruction](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.iroofconstruction 'DiGi\.Analytical\.Building\.Interfaces\.IRoofConstruction') associated with the roof, or [null](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/null 'https://docs\.microsoft\.com/en\-us/dotnet/csharp/language\-reference/keywords/null') if no such construction exists or the [roof](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetRoofConstruction(DiGi.Analytical.Building.Interfaces.IRoof).roof 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetRoofConstruction\(DiGi\.Analytical\.Building\.Interfaces\.IRoof\)\.roof') is null\.
## BuildingModel\.GetShell\(ISpace, Nullable\, Nullable\, Nullable\, double\) Method
Retrieves a shell associated with the specified space based on the provided criteria\.
```csharp
public DiGi.Analytical.Classes.Shell? GetShell(DiGi.Analytical.Building.Interfaces.ISpace? space, System.Nullable normalSide=null, System.Nullable externalEdgeOrientation=null, System.Nullable internalEdgeOrientation=null, double tolerance=1E-06);
```
#### Parameters
`space` [DiGi\.Analytical\.Building\.Interfaces\.ISpace](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ispace 'DiGi\.Analytical\.Building\.Interfaces\.ISpace')
The space from which to retrieve the shell\.
`normalSide` [System\.Nullable<](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')[DiGi\.Geometry\.Core\.Enums\.Side](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.core.enums.side 'DiGi\.Geometry\.Core\.Enums\.Side')[>](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')
The optional side or orientation of the boundary\.
`externalEdgeOrientation` [System\.Nullable<](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')[DiGi\.Geometry\.Core\.Enums\.Orientation](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.core.enums.orientation 'DiGi\.Geometry\.Core\.Enums\.Orientation')[>](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')
The optional orientation of external edges\.
`internalEdgeOrientation` [System\.Nullable<](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')[DiGi\.Geometry\.Core\.Enums\.Orientation](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.core.enums.orientation 'DiGi\.Geometry\.Core\.Enums\.Orientation')[>](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')
The optional orientation of internal edges\.
`tolerance` [System\.Double](https://learn.microsoft.com/en-us/dotnet/api/system.double 'System\.Double')
The distance tolerance for geometric operations\. Defaults to [DiGi\.Core\.Constants\.Tolerance\.Distance](https://learn.microsoft.com/en-us/dotnet/api/digi.core.constants.tolerance.distance 'DiGi\.Core\.Constants\.Tolerance\.Distance')\.
#### Returns
[DiGi\.Analytical\.Classes\.Shell](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.classes.shell 'DiGi\.Analytical\.Classes\.Shell')
The [DiGi\.Analytical\.Classes\.Shell](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.classes.shell 'DiGi\.Analytical\.Classes\.Shell') associated with the space if found; otherwise, [null](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/null 'https://docs\.microsoft\.com/en\-us/dotnet/csharp/language\-reference/keywords/null')\.
## BuildingModel\.GetShells\\(IEnumerable\, Nullable\, Nullable\, Nullable\, double\) Method
Retrieves a list of shells associated with the specified spaces, applying optional filters for side orientation, edge orientations, and geometric tolerance\.
```csharp
public System.Collections.Generic.List? GetShells(System.Collections.Generic.IEnumerable spaces, System.Nullable normalSide=null, System.Nullable externalEdgeOrientation=null, System.Nullable internalEdgeOrientation=null, double tolerance=1E-06)
where TSpace : DiGi.Analytical.Building.Interfaces.ISpace;
```
#### Type parameters
`TSpace`
The type of space objects, which must implement [DiGi\.Analytical\.Building\.Interfaces\.ISpace](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.building.interfaces.ispace 'DiGi\.Analytical\.Building\.Interfaces\.ISpace')\.
#### Parameters
`spaces` [System\.Collections\.Generic\.IEnumerable<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')[TSpace](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetShells_TSpace_(System.Collections.Generic.IEnumerable_TSpace_,System.Nullable_DiGi.Geometry.Core.Enums.Side_,System.Nullable_DiGi.Geometry.Core.Enums.Orientation_,System.Nullable_DiGi.Geometry.Core.Enums.Orientation_,double).TSpace 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetShells\\(System\.Collections\.Generic\.IEnumerable\, System\.Nullable\, System\.Nullable\, System\.Nullable\, double\)\.TSpace')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')
A collection of spaces to process\.
`normalSide` [System\.Nullable<](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')[DiGi\.Geometry\.Core\.Enums\.Side](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.core.enums.side 'DiGi\.Geometry\.Core\.Enums\.Side')[>](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')
Optional specification for the side or orientation of a boundary\.
`externalEdgeOrientation` [System\.Nullable<](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')[DiGi\.Geometry\.Core\.Enums\.Orientation](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.core.enums.orientation 'DiGi\.Geometry\.Core\.Enums\.Orientation')[>](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')
Optional specification for the orientation of external edges\.
`internalEdgeOrientation` [System\.Nullable<](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')[DiGi\.Geometry\.Core\.Enums\.Orientation](https://learn.microsoft.com/en-us/dotnet/api/digi.geometry.core.enums.orientation 'DiGi\.Geometry\.Core\.Enums\.Orientation')[>](https://learn.microsoft.com/en-us/dotnet/api/system.nullable-1 'System\.Nullable\`1')
Optional specification for the orientation of internal edges\.
`tolerance` [System\.Double](https://learn.microsoft.com/en-us/dotnet/api/system.double 'System\.Double')
The distance tolerance used for geometric operations\. Defaults to [DiGi\.Core\.Constants\.Tolerance\.Distance](https://learn.microsoft.com/en-us/dotnet/api/digi.core.constants.tolerance.distance 'DiGi\.Core\.Constants\.Tolerance\.Distance')\.
#### Returns
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[DiGi\.Analytical\.Classes\.Shell](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.classes.shell 'DiGi\.Analytical\.Classes\.Shell')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
A list of [DiGi\.Analytical\.Classes\.Shell](https://learn.microsoft.com/en-us/dotnet/api/digi.analytical.classes.shell 'DiGi\.Analytical\.Classes\.Shell') objects if successful; otherwise, null\.
## BuildingModel\.GetShells\\(Nullable\, Nullable\, Nullable\, double\) Method
Retrieves the shells for all spaces of type [TSpace](DiGi.Analytical.Building.Classes.md#DiGi.Analytical.Building.Classes.BuildingModel.GetShells_TSpace_(System.Nullable_DiGi.Geometry.Core.Enums.Side_,System.Nullable_DiGi.Geometry.Core.Enums.Orientation_,System.Nullable_DiGi.Geometry.Core.Enums.Orientation_,double).TSpace 'DiGi\.Analytical\.Building\.Classes\.BuildingModel\.GetShells\\(System\.Nullable\, System\.Nullable\, System\.Nullable\