質問

私はドアが部屋に接続しているかどうかを確認しようとしています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であるため、

このアプローチは動作しません。

私はビルコーダーブログにその

  

内蔵のパラメータは、APIの正式サポート部分ではありません。に   私たちが期待する将来はそれが適切として公開されたデータに置き換えられます   プロパティます。

そのステートメントは本当ですか?誰でもドアと部屋の間の関係を取得するための効率的な方法に私を指すことができますか?

役に立ちましたか?

解決

ドアは家族のインスタンスであるので、

Autodesk.Revit.Elements.FamilyInstance elementDoor = elementsetiteratorBIMDoors.Current as Autodesk.Revit.Elements.FamilyInstance;

Room fromRoom = elementDoor.FromRoom;
Room toRoom = elementDoor.ToRoom;

このために働く必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top