要解决“Autodesk Revit:房间的IfcGUID每次都会更改”的问题,可以考虑以下解决方法:
以下是一个示例代码片段,用于在创建新房间时生成唯一的IfcGUID并将其保存到参数中:
// 获取当前文档
Document doc = ActiveUIDocument.Document;
// 获取房间的类型
ElementId roomTypeId = ...;
// 获取房间的位置
XYZ location = ...;
// 创建新房间
Transaction trans = new Transaction(doc, "Create Room");
trans.Start();
Room room = Room.Create(doc, roomTypeId);
room.Name = "Room 1";
room.Level = ...; // 设置房间所在的楼层
room.Area = ...; // 设置房间的面积
// 生成唯一的IfcGUID
Guid guid = Guid.NewGuid();
string ifcGuid = guid.ToString();
// 将IfcGUID保存到参数中
Parameter param = room.LookupParameter("IfcGUID");
if (param != null)
{
param.Set(ifcGuid);
}
// 完成事务
trans.Commit();
请注意,上面的代码片段仅是示例,您需要根据实际需要进行适当的修改。
这种方法需要编写自定义代码或使用现有的插件。您可以在Autodesk Revit官方论坛、Revit插件市场或第三方Revit开发者社区中寻找相关资源和帮助。
请注意,使用第三方插件或自定义脚本时,请务必了解其功能和兼容性,并在使用之前进行适当的测试和验证。