Autodesk Revit MEP 2010 .NET API C # Zimmer zu Tür Beziehung
Frage
Arbeiten mit VS 2008 und Autodesk Revit MEP 2010 in C # Ich versuche, wenn eine Tür zum Zimmer verbindet, um herauszufinden:
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));
}
}
Dieser Ansatz funktioniert nicht, da der Rückgabewert von elementDoor.get_Parameter(BuiltInParameter.FROM_ROOM_ID)
immer null
ist.
Ich habe auf dem Gebäude Coder Blog dass
Einbau-Parameter sind nicht offiziell unterstützte Teil der API. Im Zukunft erwarten wir, dass sie durch Daten ersetzt werden wird richtig belichtet als eine Eigenschaft.
Ist diese Aussage wahr? Kann mir jemand Punkt auf eine effiziente Art und Weise die Beziehung zwischen Türen und Räume zu bekommen?
Lösung
Die Türen sind Familie Instanzen, so
Autodesk.Revit.Elements.FamilyInstance elementDoor = elementsetiteratorBIMDoors.Current as Autodesk.Revit.Elements.FamilyInstance;
Room fromRoom = elementDoor.FromRoom;
Room toRoom = elementDoor.ToRoom;
sollte für diese Arbeit.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow