ドア関係へのAutodesk RevitのMEP 2010 .NET APIのC#の部屋
質問
私はドアが部屋に接続しているかどうかを確認しようとしていますC#でVS 2008とAutodesk RevitのMEP 2010を使用した作業
ElementSetIterator elementsetiteratorBIMDoors =
bimdoors.getBIMDoors().ForwardIterator();
while (elementsetiteratorBIMDoors.MoveNext())
{
Autodesk.Revit.Element elementDoor =
elementsetiteratorBIMDoors.Current as Autodesk.Revit.Element;
if ((null != elementDoor.get_Parameter(BuiltInParameter.FROM_ROOM_ID)) &&
(null != elementDoor.get_Parameter(BuiltInParameter.TO_ROOM_ID)))
{
string sDoorFromRoomID =
elementDoor.get_Parameter(BuiltInParameter.FROM_ROOM_ID).ToString();
string sDoorToRoomID =
elementDoor.get_Parameter(BuiltInParameter.TO_ROOM_ID).ToString();
graph.addLink(new Link(sDoorFromRoomID, sDoorToRoomID));
}
}
elementDoor.get_Parameter(BuiltInParameter.FROM_ROOM_ID)
の戻り値は常にnull
であるため、このアプローチは動作しません。
私はビルコーダーブログにそのに読んだことがありますP>
内蔵のパラメータは、APIの正式サポート部分ではありません。に 私たちが期待する将来はそれが適切として公開されたデータに置き換えられます プロパティます。
そのステートメントは本当ですか?誰でもドアと部屋の間の関係を取得するための効率的な方法に私を指すことができますか?
解決
ドアは家族のインスタンスであるので、
Autodesk.Revit.Elements.FamilyInstance elementDoor = elementsetiteratorBIMDoors.Current as Autodesk.Revit.Elements.FamilyInstance;
Room fromRoom = elementDoor.FromRoom;
Room toRoom = elementDoor.ToRoom;
このために働く必要があります。
所属していません StackOverflow