using Autodesk.Revit.DB;
|
using Autodesk.Revit.DB.Plumbing;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace HStation.RevitDev.RevitDataExport.Utility
|
{
|
public static class FamilyInstanceExtense
|
{
|
public static bool IsWanTou(this FamilyInstance fi)
|
{
|
if (fi == null) return false;
|
|
MEPModel mEPModel = fi.MEPModel;
|
ConnectorSet connectors = mEPModel.ConnectorManager.Connectors;
|
if (connectors == null) return false;
|
|
if (connectors.Size == 2)
|
{
|
var iterator = connectors.GetEnumerator();
|
iterator.MoveNext();
|
Connector connector1 = iterator.Current as Connector;
|
if (connector1 == null) { return false; }
|
double radius1 = connector1.Radius;
|
|
iterator.MoveNext();
|
Connector connector2 = iterator.Current as Connector;
|
if (connector2 == null) { return false; }
|
double radius2 = connector2.Radius;
|
if (Math.Abs(radius1 - radius2) < double.Epsilon)
|
{
|
return true;
|
}
|
}
|
return false;
|
}
|
|
public static bool IsConverter(this FamilyInstance fi)
|
{
|
if (fi == null) return false;
|
|
MEPModel mEPModel = fi.MEPModel;
|
ConnectorSet connectors = mEPModel.ConnectorManager.Connectors;
|
if (connectors == null) return false;
|
|
if (connectors.Size == 2)
|
{
|
var iterator = connectors.GetEnumerator();
|
iterator.MoveNext();
|
Connector connector1 = iterator.Current as Connector;
|
if (connector1 == null) { return false; }
|
double radius1 = connector1.Radius;
|
|
iterator.MoveNext();
|
Connector connector2 = iterator.Current as Connector;
|
if (connector2 == null) { return false; }
|
double radius2 = connector2.Radius;
|
if (Math.Abs(radius1 - radius2) > double.Epsilon)
|
{
|
return true;
|
}
|
}
|
return false;
|
}
|
|
public static bool IsSanTong(this FamilyInstance fi)
|
{
|
if (fi == null) return false;
|
|
MEPModel mEPModel = fi.MEPModel;
|
var connectors = mEPModel.ConnectorManager.Connectors;
|
if (connectors == null) return false;
|
|
if (connectors.Size != 3)
|
{
|
return false;
|
}
|
return true;
|
}
|
|
public static bool IsSiTong(this FamilyInstance fi)
|
{
|
if (fi == null) return false;
|
|
MEPModel mEPModel = fi.MEPModel;
|
var connectors = mEPModel.ConnectorManager.Connectors;
|
|
if (connectors == null) return false;
|
if (connectors.Size != 4) return false;
|
return true;
|
}
|
|
public static bool ConnectWithPumpSystem(this FamilyInstance fi)
|
{
|
if (fi == null) return false;
|
|
MEPModel mEPModel = fi.MEPModel;
|
var connectors = mEPModel.ConnectorManager.Connectors;
|
if (connectors == null) return false;
|
|
foreach (Connector connector in connectors)
|
{
|
var allRefs = connector.AllRefs;
|
foreach (Connector connectedElement in allRefs)
|
{
|
if (connectedElement.Owner is Pipe pipe)
|
{
|
if (Common.GlobalResource.ElementIds.Contains(pipe.Id.IntegerValue.ToString()))
|
{
|
return true;
|
}
|
}
|
}
|
}
|
|
return false;
|
}
|
}
|
}
|