Autodesk.Revit.DB.Analysis 名前空間には、プロジェクトの詳細なエネルギー解析モデルのコンテンツを取得、解析するためのいくつかのクラスがあります。gbXML への書き出しや冷暖房負荷といった機能は、建物の構造モデルから熱解析モデルを作成します。熱解析モデルは、建物の実際の容積要素を表すスペース、ゾーン、平面サーフェスで構成されます。
次のような詳細なエネルギー解析モデルに関連するクラスがあります。
エネルギー解析モデルを作成して設定するには、静的メソッド EnergyAnalysisDetailModel.Create()を使用します。EnergyAnaysisDetailModel はすぐに生成し、使用することを目的としています。対応する Revit モデルを変更しても、含まれるデータや関係は更新されません。必要な情報が抽出されたら、生成された EnergyAnaysisDetailModel を Destroy()メソッドを使用して破棄します。
EnergyAnalysisDetailModelOptions を使用して該当するオプションを設定します。生成されたモデルは常にワールド座標に返されますが、メソッド TransformModel()は地面、共有座標、真北に対応するモデルのすべてのサーフェスを変換します。
エネルギー解析の詳細モデルを作成する際には次のオプションがあります。
次の例では、建物モデルから新しいエネルギー解析の詳細モデルを作成し、モデルの各スペースの各サーフェスに元の要素を表示します。
コード領域: エネルギー解析詳細モデル |
// Collect space and surface data from the building's analytical thermal model EnergyAnalysisDetailModelOptions options = new EnergyAnalysisDetailModelOptions(); options.Tier = EnergyAnalysisDetailModelTier.Final; // include constructions, schedules, and non-graphical data in the computation of the energy analysis model EnergyAnalysisDetailModel eadm = EnergyAnalysisDetailModel.Create(doc, options); // Create a new energy analysis detailed model from the physical model IList<EnergyAnalysisSpace> spaces = eadm.GetAnalyticalSpaces(); StringBuilder builder = new StringBuilder(); builder.AppendLine("Spaces: " + spaces.Count); foreach (EnergyAnalysisSpace space in spaces) { SpatialElement spatialElement = doc.GetElement(space.CADObjectUniqueId) as SpatialElement; ElementId spatialElementId = spatialElement == null ? ElementId.InvalidElementId : spatialElement.Id; builder.AppendLine(" >>> " + space.Name + " related to " + spatialElementId); IList<EnergyAnalysisSurface> surfaces = space.GetAnalyticalSurfaces(); builder.AppendLine(" has " + surfaces.Count + " surfaces."); foreach (EnergyAnalysisSurface surface in surfaces) { builder.AppendLine(" +++ Surface from " + surface.OriginatingElementDescription); } } TaskDialog.Show("EAM", builder.ToString()); |
EnergyAnalysisDetailModel を作成した後は、GetAnalyticalOpenings()、GetAnalyticalSpaces()、GetAnalyticalShadingSurfaces()、GetAnalyticalSurfaces()メソッドを使用して、それに関連付けられているスペース、開口部、サーフェスを取得することができます。
解析結果での作業が終わった後に Revit データベースをクリーンアップするには、必ず EnergyAnalysisDetailModel.Destroy()を呼び出します。
EnergyAnalysisSpace からは、壁の中央の平面や屋根/床の上部平面によって結合される閉じられた体積を定義する EnergyAnalysisSurfaces のコレクションを取得できます。また、GetClosedShell()は、内部の境界サーフェスによって計測される閉じられた体積を定義する PolyLoop (平面ポリゴン)のコレクションを取得します。2 次元の場合は GetBoundary()を使用します。このメソッドは、内部の境界サーフェスによって計測される閉じられた体積を定義する空間の 2D 境界を表す PolyLoop のコレクションを返します。
EnergyAnalysisSpace クラスには、AnalyticalVolume、Name、Area などの解析スペースに関する情報にアクセスするためのプロパティが多数あります。
Energyanalysisspace では、サーフェスに関連付けられているメイン解析スペースや、隣接するサブ解析スペースを取得できます。GetAnalyticalOpenings()メソッドは、サーフェスのすべての解析用の開口部のコレクションを取得します。GetPolyloop()メソッドは、gbXML の記述に従って、サーフェス ジオメトリを表す平面ポリゴンを取得します。
EnergyAnalysisSpace クラスには、高さ、幅、コーナー(外側から見た解析用の矩形ジオメトリの左下の座標)などの解析サーフェスに関する詳細情報や、元の要素の説明を提供するためのプロパティが多数あります。
サーフェス タイプは EnergyAnalysisSurfaceType または gbXMLSurfaceType のいずれかとして使用できます。gbXML サーフェス タイプ属性は、ソースの属性と隣接するスペース数によって決まります。次のタイプを使用できます。
タイプ |
ソース要素と隣接するスペース数 |
Shade |
関連するソース要素と隣接するスペースなし |
Air |
関連付けられているソース要素はなく、隣接するスペースが 1 つ以上 |
ExteriorWall |
ソース要素が Wall または Curtain Wall で、隣接するスペースが 1 つ |
InteriorWall |
ソース要素が Wall か Curtain Wall。隣接するスペースが 2 つか、Function タイプ パラメータが「Interior」か「CoreShaft」に設定されている |
UndergroundWall |
ソース要素が Wall か Curtain Wall で、隣接するスペースが 1 つ、地盤面より下の場合 |
SlabOnGrade |
ソース要素が Floor で、隣接するスペースが 1 つ |
RaisedFloor |
ソース要素が Floor で、隣接するスペースが 1 つ、地盤面より上 |
UndergroundSlab |
ソース要素が Floor で、隣接するスペースが 1 つ、地盤面より下 |
InteriorFloor |
ソース要素が Floor。隣接するスペースが 2 つか、Function タイプ パラメータが「Interior」に設定されている |
Roof |
ソース要素が Roof または Ceiling で、隣接するスペースが 1 つ |
UndergroundCeiling |
ソース要素が Roof または Ceiling で、隣接するスペースが 1 つ、地盤面より下 |
Ceiling |
ソース要素が Roof または Ceiling で、隣接するスペースが 2 つ |
EnergyAnalysisOpening では、関連付けられている親解析サーフェス要素を取得できます。GetPolyloop()メソッドは開口部ジオメトリを平面ポリゴンとして返します。
高さ、幅、コーナー、名前などの解析の開口部に関する情報の取得には、多数のプロパティを使用できます。解析サーフェスと同じように、解析の開口部は単純な EnergyAnalysisOpeningType 列挙や gbXMLOpeningType 属性として取得することができます。次の表にあるように、開口部のタイプは開口部のファミリ カテゴリとそのタイプが含まれる要素によって決まります。
タイプ |
ファミリ カテゴリまたは含む要素 |
OperableWindow |
窓 |
NonSlidingDoor |
ドア |
FixedSkylight |
屋根に含まれる開口部 |
FixedWindow |
カーテンウォール パネルに含まれる開口部 |
Air |
開口部カテゴリの開口部 |