Connexion   Inscription

Questions & Réponses

  Jeudi 27 Août 2015
  6 réponses
  6.6K vues
  Suivre cette discussion
Bonjour à tous

Je voulais savoir s'il était possible de corriger ou effacer les identifiants dupliqués?
9 years ago
·
#1373
0
Votes
Undo
Bonjour Guillaume,

Vous parlez des identifiants des objets dans Revit je présume ? pourriez-vous détailler ?
0
Votes
Undo
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
9 years ago
·
#1378
0
Votes
Undo
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 ;-)
0
Votes
Undo
Merci
9 years ago
·
#1421
1
Votes
Undo
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;
}


}

}

}
}
}

9 years ago
·
#1422
0
Votes
Undo
merci beaucoup pour le partage Franck ;)
There are no replies made for this post yet.

Connexion