Communauté
BIM Revit, BIM et Autodesk Construction Cloud (ACC) - Français
Bienvenue sur le forum AEC francophone dédié aux solutions BIM de la société Autodesk. Cet espace est dédié aux professionnels et passionnés du secteur de l'Architecture, de l'Ingénierie et de la Construction (AEC) qui utilisent le logiciel Revit ainsi que les plateformes collaboratives d'Autodesk (ACC et Autodesk Forma). Partagez vos connaissances, posez des questions, collaborez sur des idées, et explorez les sujets, que vous soyez architecte, ingénieur, gestionnaire de projet ou tout autre acteur de l'AEC.
annuler
Affichage des résultats de 
Afficher  uniquement  | Rechercher plutôt 
Vouliez-vous dire : 

Comment récupérer la face d'un mur via Python

4 RÉPONSES 4
RÉSOLU
Répondre
Message 1 sur 5
Anonymous
429 Visites, 4 Réponses

Comment récupérer la face d'un mur via Python

Bonjour,

 

je cherche à insérer des éléments dans un modèle Revit en utilisant la méthode NewFamilyInstance()

mais je n'arrive pas à récupérer les faces de mes murs.

 

Est ce que quelqu'un pourrait m'aider ?

 

Merci d'avance

4 RÉPONSES 4
Message 2 sur 5
Remy_MAURCOT
en réponse à: Anonymous

Bonjour,

 

Voici un exemple de code pour peindre la face d'un mur.

 

En espérant que cela t'aide.

import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import*
clr.AddReference('RevitServices')
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument

TransactionManager.Instance.EnsureInTransaction(doc)

#Outputs
faces = []
geometry = []
painter = []

opt = Options()
painted = []
not_painted = []

#inputs
walls = UnwrapElement(IN[0])
mat = UnwrapElement(IN[1])

#Wall Faces
for wall in walls:
	geo = wall.Geometry[opt]
	geometry.append(geo)
	for g in geo:
		face = g.Faces
		faces.extend(face)

	for f in faces:
		try:
			painter = doc.Paint(wall.Id,f,mat.Id)
			painted.append(f)
		except:
			not_painted.append(f)

TransactionManager.Instance.TransactionTaskDone()

OUT = painted, not_painted

 

 

 


Rémy MAURCOT
BIM Manager

Mon C.V.
Profil LinkedIn
Message 3 sur 5
patrick.emin
en réponse à: Anonymous

Bonjour @Anonymous 

Si une des réponses résout votre problème ou vous a permis de mieux le comprendre, voulez vous avoir l'amabilité de cliquer sur le bouton "Approuver la solution" en bas de la réponse qui apporte une solution?
Merci de ne pas accepter comme solution le message que vous êtes en train de lire.


Patrick Emin animateur de la communauté francophone


Vous avez trouvé un message utile? Alors donnez un "J'aime" à ce message!
Votre question a eu une réponse satisfaisante? Voulez vous avoir l'amabilité de cliquer sur le bouton
 APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Signez notre Livre d'Or
Message 4 sur 5
Anonymous
en réponse à: Remy_MAURCOT

Bonjour, @Remy_MAURCOT 

 

 

merci pour ta contribution mais je suis parvenu à trouver une solution autrement.

Pour insérer des objets sur les murs, j'ai utilisé les classes ci-dessous

 

HostObjectUtils()

NewFamilyInstance Method (Reference, XYZ, XYZ, FamilySymbol)

 

Message 5 sur 5
Remy_MAURCOT
en réponse à: Anonymous

Ok tu voulais hoster un élément..  merci du partage de la solution !


Rémy MAURCOT
BIM Manager

Mon C.V.
Profil LinkedIn

Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.

Publier dans les forums  

Autodesk Design & Make Report