RevitAPIを使用して壁のブルートエリアを取得しようとしています。しかし、私が得ているのはネットエリアだけです。
壁を削除し、変更を元に戻して、壁に配置されているすべての要素を決定する方法を使用しています。次に、ElementSetから壁のIDを削除して、変数でHOST_AREA_COMPUTEDの値を取得し、変更を元に戻します。ただし、結果は壁のネット領域になります:(パラメータまたは壁に何らかのリロードが必要ですか?または、ブルート領域を取得する簡単な方法がありますか?その問題に関連するものが見つからないため、助けていただければ幸いです。 。 前もって感謝します!
foreach (Wall wallElem in elems)
{
try
{
Double brutto = 0.0;
ICollection<ElementId> delIds = null;
using (SubTransaction t = new SubTransaction(doc))
{
try
{
t.Start();
delIds = doc.Delete(wallElem);
t.RollBack();
}
catch (Exception ex)
{
message = "Deletion failed: " + ex.Message;
t.RollBack();
}
}
using (SubTransaction u = new SubTransaction(doc))
{
try
{
u.Start();
delIds.Remove(wallElem.Id);
doc.Delete(delIds);
brutto = wallElem.get_Parameter(BuiltInParameter.HOST_AREA_COMPUTED).AsDouble();
u.RollBack();
}
catch (Exception ex)
{
message = "Deletion failed: " + ex.Message;
u.RollBack();
}
}
wallElem.get_Parameter("Wall Area Bruto").Set(brutto);
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}