Работа с VS 2008 и Autodesk Revit MEP 2010 в C # Я пытаюсь выяснить, соединяется ли дверь с помещениями:
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
.
Я прочитал в блоге Building Coder , что
Встроенные параметры не являются официально поддерживаемой частью API. В
в будущем мы ожидаем, что он будет заменен данными, должным образом
собственность.
Это утверждение верно? Может кто-нибудь указать мне эффективный способ установить связь между дверями и комнатами?