2016-11-30 2 views

Répondre

1

Par Propriétés du projet Voulez-vous dire Paramètres d'information de projet? Ceci est un moyen rapide pour récupérer un paramètre Information sur le projet dans RPS:

parameterName = 'Project Name' 
value = '- parameter not found -' # default setting 

for parameter in document.ProjectInformation.Parameters: 
    if parameter.Definition.Name == parameterName: 
     if parameter.AsString(): 
      value = parameter.AsString() 
     elif parameter.AsDouble(): 
      value = parameter.AsDouble() 
     elif parameter.AsInteger(): 
      value = parameter.AsInteger() 
     else: 
      value = '- invalid value -' 


print value 

Edit: Pour récupérer les valeurs paramètre

+0

Oui, merci, ça a marché. Mais ce code ne renvoie pas leurs valeurs. Comment puis-je les voir? – Zed

+0

Merci, c'est exactement ce dont j'ai besoin! – Zed

0

Je ne peux pas parler à Revit Python Shell, mais en termes d'API Revit, c'est assez simple.

De votre objet Document, il existe une propriété "ProjectInformation".

Donc, en C#, il ressemble à:

Parameter p = 
myDoc.ProjectInformation.get_Parameter(BuiltInParameter.PROJECT_NUMBER); 

Parameter o = 
myDoc.ProjectInformation.GetParameters("MyCustomParameter").FirstOrDefault(); 

Side note: J'ai récemment couru dans une série de modèles qui ont pas de propriété ProjectInformation (null) sur leur document. Ce n'est pas bon. Je crois qu'il peut être corrigé en exécutant un audit sur le modèle - mais d'un point de vue du code, vous devriez être préparé pour cela (pas comme ci-dessus :)).

+0

wow! Connaissez-vous l'historique de ces fichiers? Voulez-vous essayer d'exécuter doc.Delete sur l'élément ProjectInfo? il peut être possible de l'effacer à tout moment, et ainsi causer de la souffrance et de l'angoisse pour les autres pauvres âmes ... –

+0

Jeremy, je ne sais pas comment ils ont eu ce chemin. Quelques clients nous les ont envoyés parce qu'ils échouaient dans certaines de nos applications, où nous n'avons pas vérifié null sur la propriété ProjectInformation. Nous avons dû mettre un patch pour notre logiciel. – Matt