DocumentNewMechanicalSystem Method |
Creates a new MEP mechanical system element.
Namespace: Autodesk.Revit.CreationAssembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntaxpublic MechanicalSystem NewMechanicalSystem(
Connector baseEquipmentConnector,
ConnectorSet connectors,
DuctSystemType ductSystemType
)
Public Function NewMechanicalSystem (
baseEquipmentConnector As Connector,
connectors As ConnectorSet,
ductSystemType As DuctSystemType
) As MechanicalSystem
public:
MechanicalSystem^ NewMechanicalSystem(
Connector^ baseEquipmentConnector,
ConnectorSet^ connectors,
DuctSystemType ductSystemType
)
member NewMechanicalSystem :
baseEquipmentConnector : Connector *
connectors : ConnectorSet *
ductSystemType : DuctSystemType -> MechanicalSystem
Parameters
- baseEquipmentConnector Connector
-
One connector within base equipment which is used to connect with the system.
The base equipment is optional for the system, so this argument may be .
The baseEquipmentConnector should not be included in the connectors.
- connectors ConnectorSet
-
Connectors that will connect to the system.
The owner elements of these connectors will be added into system as its elements.
- ductSystemType DuctSystemType
- The system type.
Return Value
MechanicalSystem
If creation was successful then an instance of mechanical system is returned,
otherwise an exception with information will be thrown.
ExceptionsException | Condition |
---|
InvalidOperationException |
Thrown when calling this function outside of the Autodesk Revit MEP product.
|
ArgumentNullException |
Thrown when the input connectors parameter value is .
|
ArgumentOutOfRangeException |
Thrown when the ductSystemType parameter is out of permitted scope.
|
ArgumentException |
Thrown when some connectors can't be used to create the mechanical system.
All the input connectors and base equipment connector should match system type and domain with the system,
and they should not have been used in another system.
The owner of BaseConnector should be a mechanical equipment, and the owner of other connectors should be a mechanical equipment or air terminal.
|
InvalidOperationException |
Thrown when the mechanical system creation failed.
|
Remarks This method will regenerate the document even in manual regeneration mode.
Example
ConnectorSet connectorSet = new ConnectorSet();
Connector baseConnector = null;
ConnectorSetIterator csi = null;
ICollection<ElementId> selectedIds = uiDocument.Selection.GetElementIds();
Document document = uiDocument.Document;
foreach (ElementId id in selectedIds)
{
Element e = document.GetElement(id);
if (e is FamilyInstance)
{
FamilyInstance fi = e as FamilyInstance;
Family family = fi.Symbol.Family;
if (family.FamilyCategory.Name == "Mechanical Equipment")
{
if (null != fi.MEPModel)
{
csi = fi.MEPModel.ConnectorManager.Connectors.ForwardIterator();
while (csi.MoveNext())
{
Connector conn = csi.Current as Connector;
if (conn.Direction == FlowDirectionType.Out && conn.DuctSystemType == DuctSystemType.SupplyAir)
{
baseConnector = conn;
break;
}
}
}
}
else if (family.FamilyCategory.Name == "Air Terminals")
{
csi = fi.MEPModel.ConnectorManager.Connectors.ForwardIterator();
csi.MoveNext();
connectorSet.Insert(csi.Current as Connector);
}
}
}
MechanicalSystem mechanicalSys = null;
if (null != baseConnector && connectorSet.Size > 0)
{
mechanicalSys = uiDocument.Document.Create.NewMechanicalSystem(baseConnector, connectorSet, DuctSystemType.SupplyAir);
}
Dim connectorSet As New ConnectorSet()
Dim baseConnector As Connector = Nothing
Dim csi As ConnectorSetIterator = Nothing
Dim selectedIds As ICollection(Of ElementId) = uiDocument.Selection.GetElementIds()
Dim document As Document = uiDocument.Document
For Each id As ElementId In selectedIds
Dim e As Element = document.GetElement(id)
If TypeOf e Is FamilyInstance Then
Dim fi As FamilyInstance = TryCast(e, FamilyInstance)
Dim family As Family = fi.Symbol.Family
If family.FamilyCategory.Name = "Mechanical Equipment" Then
If fi.MEPModel IsNot Nothing Then
csi = fi.MEPModel.ConnectorManager.Connectors.ForwardIterator()
While csi.MoveNext()
Dim conn As Connector = TryCast(csi.Current, Connector)
If conn.Direction = FlowDirectionType.Out AndAlso conn.DuctSystemType = DuctSystemType.SupplyAir Then
baseConnector = conn
Exit While
End If
End While
End If
ElseIf family.FamilyCategory.Name = "Air Terminals" Then
csi = fi.MEPModel.ConnectorManager.Connectors.ForwardIterator()
csi.MoveNext()
connectorSet.Insert(TryCast(csi.Current, Connector))
End If
End If
Next
Dim mechanicalSys As MechanicalSystem = Nothing
If baseConnector IsNot Nothing AndAlso connectorSet.Size > 0 Then
mechanicalSys = uiDocument.Document.Create.NewMechanicalSystem(baseConnector, connectorSet, DuctSystemType.SupplyAir)
End If
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.
See Also