Bonjour.
je cherche une solution pour tracer une canalisation souple à partir des xyz selon principe ci dessous
merci bonne journée
using (Transaction trans = new Transaction(doc)) { trans.Start("New Model Line"); //Create plane & sketchplane Plane _plane = Plane.CreateByNormalAndOrigin(XYZ.BasisZ,pnt1); SketchPlane _sketchPlane = SketchPlane.Create(doc,_plane); //create model line doc.Create.NewModelCurve(cu,_sketchPlane); trans.Commit();
Le titre du sujet a été modifié par un modérateur pour faciliter la recherche. Titre original:
C# tracer une canalisation souple
Résolu ! Accéder à la solution.
Résolu par Charles.Piro. Accéder à la solution.
Résolu par Charles.Piro. Accéder à la solution.
Résolu par Charles.Piro. Accéder à la solution.
Résolu par Charles.Piro. Accéder à la solution.
Salut,
pour créer des canalisation il faut utiliser la méthode newFlexPipe() qui contient 3 options paramétrage :
- new FlexPipe(Connector,Connector,FlexPipeType)
- new FlexPipe(Connector,IList<XYZ>,FlexPipeType)
- new FlexPipe(IList<XYZ>,FlexPipeType)
Dans ton cas c'est la dernière option :
FilteredElementCollector flt = new FilteredElementCollector(doc).OfClass(typeof(FlexPipeType));
FlexPipeType flexType = flt.first() as FlexPipeType;
IList<XYZ> lstPnts = new List<XYZ>();
lstPnts.add(new XYZ(0,0,0));
lstPnts.add(new XYZ(10,10,0));
FlexPipe _flexpipe = new FlexPipe(lstPnts,flexType);
😉
Bonjour
Désolé, il ne connait pas : FlexPipeType il manque ??
**********************************
UIDocument uidoc = this.Application.ActiveUIDocument;
Document doc = uidoc.Document;
FilteredElementCollector flt = new FilteredElementCollector(doc).OfClass(typeof(FlexPipeType));
FlexPipeType flexType = flt.first() as FlexPipeType;
IList<XYZ> lstPnts = new List<XYZ>();
lstPnts.add(new XYZ(0,0,0));
lstPnts.add(new XYZ(10,10,0));
FlexPipe _flexpipe = new FlexPipe(lstPnts,flexType);
Bonjour.
désolé
Oui, mais !!!
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Mechanical;
using Autodesk.Revit.Attributes;
using System.Globalization;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using Autodesk.Revit.DB.Electrical;
using Autodesk.Revit.DB.Plumbing;
using Autodesk.Revit.DB.Architecture;
bonjour
idem dans une macro erreur pour : first
UIDocument uidoc = this.Application.ActiveUIDocument;
Document doc = uidoc.Document;
FilteredElementCollector flt = new FilteredElementCollector(doc).OfClass(typeof(FlexPipeType));
FlexPipeType flexType = flt.first() as FlexPipeType;
IList<XYZ> lstPnts = new List<XYZ>();
lstPnts.add(new XYZ(0,0,0));
lstPnts.add(new XYZ(10,10,0));
FlexPipe _flexpipe = new FlexPipe(lstPnts,flexType);
Bonjour
Désolé, mais j'ai toujours un problème d'erreur que je ne comprends pas certainement une déclaration qui manque
Cordialement bonne journée
Attention à bien récrire le code et non pas juste faire un copier coller afin d'avoir la bonne écriture et la bonne casse.
Exemple, First() est une méthode donc commence par une majuscule, idem pour Add() etc...
Ensuite La méthode First provient de la classe Linq qu'il faut ajouter en "using".
😉
Bonjour
Je suis nul, mais ça fonctionne toujours pas
Cordialement bonne journée
Bonjour,
comme indiqué plus haut, il faut encapsuler la création du flexible dans une transaction !
using(Transaction trans = new Transaction(doc))
{
trans.Start("Create Flexible");
FlexPipe _flexpipe = doc.create.NewFlexPipe(lstPnts, FlexType);
trans.Commit();
}
😉
Bonour
Meme problème avec la modification
UIDocument uidoc = this.Application.ActiveUIDocument;
Document doc = uidoc.Document;
FilteredElementCollector Flt = new FilteredElementCollector(doc).OfClass(typeof(FlexPipeType));
FlexPipeType FlexType = Flt.First() as FlexPipeType;
IList<XYZ> lstPnts = new List<XYZ>();
lstPnts.Add(new XYZ(0,0,0));
lstPnts.Add(new XYZ(10,10,0));
using(Transaction trans = new Transaction(doc))
{
FlexPipe _flexpipe = doc.Create.NewFlexPipe(lstPnts, FlexType);
}
Bonjour
SUPER CA FONCTIONNE
Désolé pour les problèmes, merci beaucoup.
Bonne journée.
Bonjour @jbaussero
Merci d’avoir participé à notre communauté ! Vos questions et leurs réponses aident tout le monde. Si des réponses vous paraissent appropriées, 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.
Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.