Good Morning.
I need to edit the voltage and number of poles.
Does anyone have code that works to help me?
My code:
Public Function Execute(commandData As ExternalCommandData, ByRef message As String, elements As ElementSet) As Result Implements IExternalCommand.Execute
Dim BuiltInCategorys As New List(Of BuiltInCategory)
Dim eKeyWorkReferences As eKeyWorkReferences
Dim ekeyworkreference As eKeyWorkReference
Dim Document As Document
Dim FamilyInstance0 As FamilyInstance = Nothing
Dim FamilyInstance1 As FamilyInstance = Nothing
Dim Parameters As List(Of Parameter)
Dim Parameter0 As Parameter
Dim Circuit As ElectricalSystem
Dim Panel As FamilyInstance
Dim Connectors As List(Of Connector)
Dim Connector As Connector = Nothing
Dim ElementSet As ElementSet
'Obtem o documento
Document = commandData.Application.ActiveUIDocument.Document
'Filtro
With BuiltInCategorys
.Add(BuiltInCategory.OST_ElectricalFixtures)
.Add(BuiltInCategory.OST_ElectricalEquipment)
.Add(BuiltInCategory.OST_LightingFixtures)
.Add(BuiltInCategory.OST_LightingDevices)
.Add(BuiltInCategory.OST_CommunicationDevices)
.Add(BuiltInCategory.OST_DataDevices)
.Add(BuiltInCategory.OST_FireAlarmDevices)
.Add(BuiltInCategory.OST_NurseCallDevices)
.Add(BuiltInCategory.OST_SecurityDevices)
.Add(BuiltInCategory.OST_TelephoneDevices)
'.Add(BuiltInCategory.OST_ConduitFitting)
'.Add(BuiltInCategory.OST_Conduit)
End With
'Solicita a seleção de elementos
eKeyWorkReferences = Engine.eRevitInterface.PickObjects(commandData, "Selecione os elementos",, BuiltInCategorys)
'Solicita a seleção do quadro
ekeyworkreference = Engine.eRevitInterface.PickObject(commandData, "Selecione o quadro",, BuiltInCategorys)
Panel = Document.GetElement(ekeyworkreference.Reference.ElementId)
Dim connectorSet As ConnectorSet = New ConnectorSet()
Dim csi As ConnectorSetIterator = Nothing
'Abre transação
Using Transaction As New eTransaction(Document)
Transaction.Start("Test", True)
For Each id As ElementId In eKeyWorkReferences.References.GetElementIds
FamilyInstance0 = Document.GetElement(id)
'--
Parameters = FamilyInstance0.GetParameters("Slot 1_Classificação de carga")
Parameter0 = Parameters(0)
Parameter0.SetValueString("Other")
'--
Parameters = FamilyInstance0.GetParameters("Slot 1_Fator de potência")
Parameter0 = Parameters(0)
Parameter0.SetValueString("0.85")
'--
Parameters = FamilyInstance0.GetParameters("Slot 1_Número de pólos")
Parameter0 = Parameters(0)
Parameter0.SetValueString("1")
'--
Parameters = FamilyInstance0.GetParameters("Slot 1_Potência ativa (W)")
Parameter0 = Parameters(0)
Parameter0.SetValueString("100")
'--
For Each ww As ElementId In FamilyInstance0.GetSubComponentIds
FamilyInstance1 = Document.GetElement(ww)
If IsNothing(FamilyInstance1.MEPModel) = False Then
If IsNothing(FamilyInstance1.MEPModel.ConnectorManager) = False Then
Connectors = FamilyInstance1.MEPModel.ConnectorManager.Connectors.Cast(Of Connector).ToList
Connectors.RemoveAll(Function(X As Connector) X.IsConnected = True AndAlso X.Domain <> Domain.DomainElectrical)
If Connectors.Count > 0 Then
Connector = Connectors(0)
Exit For
End If
End If
End If
Next
If IsNothing(Connector) = False Then
Circuit = ElectricalSystem.Create(Connector, Connector.ElectricalSystemType)
'--
Parameters = Circuit.GetParameters("Numero do Circuito")
Parameter0 = Parameters(0)
Parameter0.SetValueString("1")
'--
Circuit.SelectPanel(Panel) '<<<ERROR
End If
Next
Transaction.Commit()
End Using
'Retorno
Return Result.Succeeded
End Function