欧特克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
。
我已经阅读了大厦编码器博客是
内置参数不是API的正式支持部。在 未来我们预计它会通过被曝光正确的数据来代替 一个属性。
时的这句话是真的吗?任何人都可以点我到一个有效的方式来获得门和房间之间的关系?
解决方案
门是家庭的情况下,所以
Autodesk.Revit.Elements.FamilyInstance elementDoor = elementsetiteratorBIMDoors.Current as Autodesk.Revit.Elements.FamilyInstance;
Room fromRoom = elementDoor.FromRoom;
Room toRoom = elementDoor.ToRoom;
应适用于这一点。
不隶属于 StackOverflow