|
@@ -59,6 +59,7 @@ namespace SAGA.MBI.Calc
|
|
var spaces = context.RevitDoc.GetSpaces();
|
|
var spaces = context.RevitDoc.GetSpaces();
|
|
foreach (Space space in spaces)
|
|
foreach (Space space in spaces)
|
|
{
|
|
{
|
|
|
|
+ if(!space.IsValidObject)continue;
|
|
MSpace mspace = DalSpace.GetSpace(space);
|
|
MSpace mspace = DalSpace.GetSpace(space);
|
|
if(mspace==null)continue;
|
|
if(mspace==null)continue;
|
|
mspace.Operator = DocumentChangedOperator.Add;
|
|
mspace.Operator = DocumentChangedOperator.Add;
|
|
@@ -74,6 +75,7 @@ namespace SAGA.MBI.Calc
|
|
var familyInstances = context.RevitDoc.GetFamilyInstances();
|
|
var familyInstances = context.RevitDoc.GetFamilyInstances();
|
|
foreach (FamilyInstance fi in familyInstances)
|
|
foreach (FamilyInstance fi in familyInstances)
|
|
{
|
|
{
|
|
|
|
+ if(!fi.IsValidObject)continue;
|
|
if (fi.IsEquipment())
|
|
if (fi.IsEquipment())
|
|
{
|
|
{
|
|
MEquipment equipment = DalEquip.GetEquipment(fi);
|
|
MEquipment equipment = DalEquip.GetEquipment(fi);
|
|
@@ -82,7 +84,7 @@ namespace SAGA.MBI.Calc
|
|
context.MEquipments.Add(equipment);
|
|
context.MEquipments.Add(equipment);
|
|
|
|
|
|
//识别设备所在空间
|
|
//识别设备所在空间
|
|
- var space = fi.Space;
|
|
|
|
|
|
+ var space = fi.GetReferenceSpace();
|
|
if (space == null) continue;
|
|
if (space == null) continue;
|
|
string spaceId = space.GetCloudBIMId();
|
|
string spaceId = space.GetCloudBIMId();
|
|
MSpace mSpace = context.MSpaces.FirstOrDefault(t => t.BimID == spaceId);
|
|
MSpace mSpace = context.MSpaces.FirstOrDefault(t => t.BimID == spaceId);
|
|
@@ -92,41 +94,47 @@ namespace SAGA.MBI.Calc
|
|
context.RltEquipInSpaces.Add(new RltEquipInSpace(mSpace, equipment){Operator = DocumentChangedOperator.Add});
|
|
context.RltEquipInSpaces.Add(new RltEquipInSpace(mSpace, equipment){Operator = DocumentChangedOperator.Add});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- // 在这里处理部件
|
|
|
|
- if (fi.IsEquipmentPart())
|
|
|
|
|
|
+
|
|
|
|
+ //在这里处理信标
|
|
|
|
+ if (fi.IsBeacon())
|
|
{
|
|
{
|
|
- MEquipmentPart equipment = DalEquipPart.GetEquipPart(fi);
|
|
|
|
- if (equipment == null) continue;
|
|
|
|
- equipment.Operator = DocumentChangedOperator.Add;
|
|
|
|
- context.MEquipmentParts.Add(equipment);
|
|
|
|
|
|
+ MBeacon mode = DalBeacon.GetBeacon(fi);
|
|
|
|
+ if(mode==null)continue;
|
|
|
|
+ mode.Operator = DocumentChangedOperator.Add;
|
|
|
|
+ context.MBeacons.Add(mode);
|
|
|
|
|
|
- //识别设备所在空间
|
|
|
|
- var space = fi.Space;
|
|
|
|
|
|
+ //识别信标所在元空间
|
|
|
|
+ var space = fi.GetReferenceSpace();
|
|
if (space == null) continue;
|
|
if (space == null) continue;
|
|
string spaceId = space.GetCloudBIMId();
|
|
string spaceId = space.GetCloudBIMId();
|
|
MSpace mSpace = context.MSpaces.FirstOrDefault(t => t.BimID == spaceId);
|
|
MSpace mSpace = context.MSpaces.FirstOrDefault(t => t.BimID == spaceId);
|
|
if (mSpace != null)
|
|
if (mSpace != null)
|
|
{
|
|
{
|
|
- //设备所在空间添加添加一组关系
|
|
|
|
- context.RltEquipInSpaces.Add(new RltEquipInSpace(mSpace, equipment) { Operator = DocumentChangedOperator.Add });
|
|
|
|
|
|
+ context.RltBeaconinElementSps.Add(new RltBeaconinElementSp(mSpace, mode) { Operator = DocumentChangedOperator.Add });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- //在这里处理信标
|
|
|
|
- if (fi.IsBeacon())
|
|
|
|
|
|
+ }
|
|
|
|
+ //单独处理部件,因为部件要依赖设备
|
|
|
|
+ foreach (FamilyInstance fi in familyInstances)
|
|
|
|
+ {
|
|
|
|
+ // 在这里处理部件
|
|
|
|
+ if (fi.IsEquipmentPart())
|
|
{
|
|
{
|
|
- MBeacon mode = DalBeacon.GetBeacon(fi);
|
|
|
|
- if(mode==null)continue;
|
|
|
|
- mode.Operator = DocumentChangedOperator.Add;
|
|
|
|
- context.MBeacons.Add(mode);
|
|
|
|
|
|
+ MEquipmentPart equipment = DalEquipPart.GetEquipPart(fi);
|
|
|
|
+ if(equipment?.MEquipment == null)continue;
|
|
|
|
+
|
|
|
|
+ equipment.Operator = DocumentChangedOperator.Add;
|
|
|
|
+ context.MEquipmentParts.Add(equipment);
|
|
|
|
|
|
- //识别信标所在元空间
|
|
|
|
- var space = fi.Space;
|
|
|
|
|
|
+ //识别设备所在空间
|
|
|
|
+ var space = fi.GetReferenceSpace();
|
|
if (space == null) continue;
|
|
if (space == null) continue;
|
|
string spaceId = space.GetCloudBIMId();
|
|
string spaceId = space.GetCloudBIMId();
|
|
MSpace mSpace = context.MSpaces.FirstOrDefault(t => t.BimID == spaceId);
|
|
MSpace mSpace = context.MSpaces.FirstOrDefault(t => t.BimID == spaceId);
|
|
if (mSpace != null)
|
|
if (mSpace != null)
|
|
{
|
|
{
|
|
- context.RltBeaconinElementSps.Add(new RltBeaconinElementSp(mSpace, mode) { Operator = DocumentChangedOperator.Add });
|
|
|
|
|
|
+ //设备所在空间添加添加一组关系
|
|
|
|
+ context.RltEquipInSpaces.Add(new RltEquipInSpace(mSpace, equipment) { Operator = DocumentChangedOperator.Add });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|