Revit : Information sur connecteur electrique

Revit : Information sur connecteur electrique

be-bj
Advocate Advocate
1 351 Visites
9 Réponses
Message 1 sur 10

Revit : Information sur connecteur electrique

be-bj
Advocate
Advocate

Bonjour

je cherche la solution pour connaitre dans un bloc : INSTALLATION ÉLECTRIQUE avec plusieurs connecteurs sur le même bloc de famille  (exemple Power , Data , Téléphonique ).

Je n'arrive pas à récupérer sur chaque connecteur l'information sur quel TABLEAU il est raccordé ? j'ai uniquement sur les trois connecteurs l'information indiqués dans le paramètre de REVIT.

Ci-joint le bout de programme en format TXT.

 

Cordialement bonne journée.


Le titre du sujet a été modifié par un modérateur pour faciliter la recherche. Titre original:
Information sur connecteur electrique

0 J'aime
Solutions acceptées (1)
1 352 Visites
9 Réponses
Replies (9)
Message 2 sur 10

Gaëtan_DENIS
Advisor
Advisor

Salut,

 

Je pense qu'on touche les limites de REVIT en ELEC, c'est comme il n'est pas possible de mettre deux interrupteurs à un circtuit de luminaires.... En effect quand je selctionne un éléments electrique dans les propriétés t'as l'info d'un des panneaux et pas des deux....

 

Par contre si tu crées les fils et que tu les étiquettes tu auras les infos

 

Gatan_DENIS_0-1671016368913.png

 

A te lire

 

Gaëtan

 

 

0 J'aime
Message 3 sur 10

be-bj
Advocate
Advocate

Merci pour la réponse, c'est par programmation que désir avoir l'information, je récupère bien les 3 informations du type de raccordement, si c'est du Power ou des Data, etc. mais pas l'information ou il est raccordé exemple 

Exemple un bloc de poste de travail  prise raccordé sur une armoire électrique TD1 une prise sur une armoire ondulée, une prise RJ45 sur l'armoire informatique 

Ceci permet d'avoir un seul bloc au lieu de 3 blocs !!

Cordialement bonne journée.

 

0 J'aime
Message 4 sur 10

Gaëtan_DENIS
Advisor
Advisor

Re,

 

Alors désolé je ne pourrais pas t 'aider....;p

 

Bonne soirée

 

GAëtan 

0 J'aime
Message 5 sur 10

Charles.Piro
Advisor
Advisor

Salut,

 

peux tu joindre un petit fichier revit exemple afin de tester ton code et essayer de le compléter ?

 

😉



PIRO Charles
Developer

PIRO CIE
Linkedin


0 J'aime
Message 6 sur 10

be-bj
Advocate
Advocate

Bonjour, merci pour ta réponse, ci-joint fichier d'essai, j'ai trois connecteurs différents, voici la sortie

J'ai un connecteur sur une armoire DV1 le deuxième sur DV2 et le 3  eme un connecteur sur une armoire DATA

 

Cordialement

 

////////////////

public void EssaidDouble1()
{
rvtDoc = uiDoc.Document;
FilteredElementCollector collectorE2 = new FilteredElementCollector(rvtDoc);
List<Element> roomListE3 = collectorE2.OfClass(typeof(FamilyInstance)).OfCategory(BuiltInCategory.OST_ElectricalFixtures).ToList(); // Installation électriques
Entrer = "INSTALLATION ";
IList<Element> InstalElec = collectorE2.ToElements();
TaskDialog.Show("Message", "Il n'y : " + roomListE3.Count + " LUMINAIRES dans le projet");
Nb = InstalElec.Count;
InfoLuminaire.Clear();
TmpNb = 0;
Info.Clear();
InfoCharge.Clear();
bj_Page.treeView1.BeginUpdate(); // important
bj_Page.treeView1.Nodes.Add(Entrer); // C'est le titre
Na = bj_Page.treeView1.Nodes.Count - 1;
N1 = 0;
Info.AppendLine("Nb : " + Nb);
foreach (Element e in InstalElec)
{
FamilyInstance famInst = e as FamilyInstance;
ElementId symbolId = famInst.Symbol.Id;
Element familytype = rvtDoc.GetElement(symbolId);
MEPModel mepElement = (e as FamilyInstance).MEPModel;
ConnectorSetIterator _setIterator = mepElement.ConnectorManager.Connectors.ForwardIterator();
ISet<ElectricalSystem> elecsystemset = mepElement.GetElectricalSystems();
IList<Parameter> paramPanneau = e.GetParameters("Panneau");
IList<Parameter> PanneauProv = e.GetParameters("En provenance de");
Nb = PanneauProv.Count;
Info.AppendLine(e.Name + " Nb _connecteur " + Nb + " " + EnProvenance);
Na = 0;
EnProvenance = "";
Source = "";
while (_setIterator.MoveNext())
{
try
{
while (_setIterator.MoveNext())
{
Connector _connecteur = _setIterator.Current as Connector;
IList<Parameter> paramPanneaux = e.GetParameters("Panneau");
//bj_Page.treeView1.Nodes[Na].Nodes[N1].Nodes.Add("En provenance de");
Parameter p1 = paramPanneaux.First();
Sortie1 = p1.AsString() + " ";
Sortie1 = Sortie1.Trim();
Info.AppendLine(e.Name + " Nb _connecteur " + Nb + " " + Sortie1);
//Info.AppendLine(e.Name + " Nb _connecteur " + Nb ) ;
}

Info.AppendLine("");
}
catch (Exception)
{
continue;
}
}
}
TaskDialog.Show("LISTE \n ", Info.ToString());
}

0 J'aime
Message 7 sur 10

be-bj
Advocate
Advocate

Bonjour, ci-joint le fichier revit électricité avec 3 connecteurs sur le bloc deux courants forts et un courant faible

La partie de programme en TXT

Cordialement bonne journée.

 

0 J'aime
Message 8 sur 10

Charles.Piro
Advisor
Advisor
Solution acceptée

Salut,

 

voici un petit bout de code rapide permettant de récupérer tous les circuits connecté à une installation électrique et la liste des équipements connectés à chaque circuit : 

public void Demo()
		{
			Document rvtDoc = this.Application.ActiveUIDocument.Document;
            FilteredElementCollector collectorE2 = new FilteredElementCollector(rvtDoc);
            List<Element> roomListE3 = collectorE2.OfClass(typeof(FamilyInstance)).OfCategory(BuiltInCategory.OST_ElectricalFixtures).ToList(); // Installation électriques
            
            StringBuilder stb = new StringBuilder();//
            foreach (Element e in roomListE3)
            {
                FamilyInstance famInst = e as FamilyInstance;
                MEPModel mepModel = famInst.MEPModel;
                ISet<ElectricalSystem> setElecSystems = mepModel.GetElectricalSystems();
                //TaskDialog.Show("debug",setElecSystems.Count.ToString());
                if(setElecSystems != null && setElecSystems.Count() > 0)
                {
                	
                	
                	int iMax = setElecSystems.Count();
                	for (int i = 0; i < iMax; i++) 
                	{
                		StringBuilder stbCircuit = new StringBuilder();
                		
                		ElectricalSystem elecSystem = setElecSystems.ToList()[i];
                		
                		stbCircuit.AppendLine(string.Format("Tableau : {0} - Circuit : {1}",e.Name,elecSystem.Name));
                		string strTypeCircuit = elecSystem.CircuitConnectionType.ToString();
                		string strNomPanneau = elecSystem.PanelName;
                		stbCircuit.AppendLine(string.Format("Nom du Circuit : {0}",elecSystem.Name));
                		stbCircuit.AppendLine(string.Format("Type de Circuit : {0}",strTypeCircuit));
                		stbCircuit.AppendLine(string.Format("Nom du Panneau : {0}",strNomPanneau));
                		stbCircuit.AppendLine("Liste des équipements connectés : ");
                		
                		ElementSet lstElements = elecSystem.Elements;
                		StringBuilder stbElementConnecte = new StringBuilder();
                		foreach (Element elmnt in lstElements) 
                		{
                			FamilyInstance famInstElec = elmnt as FamilyInstance;
                			stbElementConnecte.AppendLine(string.Format("- {0} : {1} - {2}",famInst.Symbol.FamilyName, elmnt.Name , elmnt.Id));
                		}
                		
                		stbCircuit.AppendLine(stbElementConnecte.ToString());   
						stb.AppendLine(stbCircuit.ToString());
         		
                	}
                }
            }
            
            TaskDialog.Show("debug",stb.ToString());
            
		}

 

Et voici le résultat sur le fichier que tu as joint :

CharlesPiro_0-1671091894453.png

 

😉



PIRO Charles
Developer

PIRO CIE
Linkedin


Message 9 sur 10

be-bj
Advocate
Advocate

Bonjour 

Je te remercie c'st très simpatique.

 

Bonne journée

0 J'aime
Message 10 sur 10

be-bj
Advocate
Advocate

Super fonctionnement parfait

Merci et bonne journée.

0 J'aime