By BOISSIER Guillaume on Jeudi 27 Août 2015
Replies 6
Likes 0
Views 6.6K
Votes 0
Bonjour à tous

Je voulais savoir s'il était possible de corriger ou effacer les identifiants dupliqués?
Bonjour Guillaume,

Vous parlez des identifiants des objets dans Revit je présume ? pourriez-vous détailler ?
·
9 years ago
·
0 Likes
·
0 Votes
·
0 Comments
·
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
·
0 Likes
·
0 Votes
·
0 Comments
·
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 ;-)
·
9 years ago
·
0 Likes
·
0 Votes
·
0 Comments
·
Merci
·
9 years ago
·
0 Likes
·
0 Votes
·
0 Comments
·
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
·
0 Likes
·
1 Votes
·
0 Comments
·
merci beaucoup pour le partage Franck
·
9 years ago
·
0 Likes
·
0 Votes
·
0 Comments
·
View Full Post