Connexion   Inscription

Questions & Réponses

  jeudi 27 août 2015
  6 réponses
  6K vues
  Suivre cette discussion
Bonjour à tous

Je voulais savoir s'il était possible de corriger ou effacer les identifiants dupliqués?
il y a environ 8 ans
·
#1373
0
Votes
Annuler
Bonjour Guillaume,

Vous parlez des identifiants des objets dans Revit je présume ? pourriez-vous détailler ?
il y a environ 8 ans
·
#1376
0
Votes
Annuler
Oui tout à fait, j'ai des doublons d'identifiant sur les objets. Je suis arrivé en cours d'affaire et le BIM manager du client ne veut pas d'avertissement mais je ne sais pas comment faire cela
il y a environ 8 ans
·
#1378
0
Votes
Annuler
Hello,

Tu fais une nomenclature avec les ID et tu changes les doublons

Ca c'est la méthode manuel ensuite si quelque veux faire un truc sur dynamo... je laisse ma place ;-)
il y a environ 8 ans
·
#1383
0
Votes
Annuler
Merci
il y a environ 8 ans
·
#1421
1
Votes
Annuler
Bonjour,

une petite macro C#, volontairement simpliste et pas très optimisée :(

A partir des éléments sélectionnées, on compare les paramètres 'identifiant" et on ajoute les caractères 'bis' au second identifiant doublon si les deux éléments appartiennent à la même catégorie.






public void RenommerIdentifiantsDoublons()
{
UIApplication uiapp = Application;
UIDocument uidoc = uiapp.ActiveUIDocument;
Document doc = uidoc.Document;
// seul les elements selectionnés sont traités
ICollection<ElementId> colId = uidoc.Selection.GetElementIds();

string NomParametre = "Identifiant"; // NB : ne fonctionne qu'en langue FR

foreach (ElementId id in colId)
{
Element elem = doc.GetElement(id);
Category categorie = elem.Category;
string identifiant = null;
Parameter para = elem.LookupParameter(NomParametre);
if (para != null){
identifiant = para.AsString();
}

if (identifiant != null)
{
Boolean suivant = false;
foreach (ElementId _id in colId)
{
Element _elem = doc.GetElement(_id);
Category _categorie = _elem.Category;
string _identifiant = null;
Parameter _para = _elem.LookupParameter(NomParametre);
if (_para != null){
_identifiant = _para.AsString();
}
if ((_identifiant != null) && (identifiant == _identifiant) && (categorie.Name == _categorie.Name) )
{
if (suivant) // on ne modifie pas le premier identifiant doublon
{
_elem.LookupParameter(NomParametre).Set(_identifiant + "bis"); //ajoute 'bis' a l'identifiant
}
else
{
suivant = true;
}


}

}

}
}
}

il y a environ 8 ans
·
#1422
0
Votes
Annuler
merci beaucoup pour le partage Franck ;)
Cette discussion ne contient encore aucune réponse.
Soyez le premier à y répondre !

Hexabim

La plateforme du BIM et de la Transition Numérique.

© HEXABIM 2022

Connexion



Le Cron démarre