2017-08-15 2 views
0

Ich entwickle ein IFC (Industry Foundation Classes) Import-/Export-Add-In für Civil 3D, das ich später in diesem Monat als Open Source veröffentlichen werde). Die Exportfunktion funktioniert bereits vollständig. Ich verstehe jedoch immer noch nicht ganz, wie Objekte in Civil 3D mit .NET erstellt werden. Mein Add-In ist in C# geschrieben.Civil 3D-Ausrichtung in .NET-Würfen erstellen "Alignment ID ist ungültig" Fehler

Ich habe versucht, die folgenden, die eine offizielle Autodesk Beispiel ist:

// Uses an existing Alignment Style named "Basic" and Label Set Style named "All Labels" (for example, from 
// the _AutoCAD Civil 3D (Imperial) NCS.dwt template. This call will fail if the named styles 
// don't exist. 
// Uses layer 0, and no site (ObjectId.Null) 
ObjectId testAlignmentID = Alignment.Create(doc, "New Alignment", ObjectId.Null, "0", "Basic", "All Labels"); 

Quelle: https://knowledge.autodesk.com/support/autocad-civil-3d/learn-explore/caas/CloudHelp/cloudhelp/2017/ENU/Civil3D-DevGuide/files/GUID-F620DF41-7DF3-450F-8C2A-A92DEB1F9E9E-htm.html

Jedes Mal, wenn ich versuche, meinen Code auszuführen, erhalte ich die folgende Fehlermeldung: „Invalid Ausrichtungs-ID. ". Mein Code sieht wie folgt aus:

var civilDatabase = Application.DocumentManager.MdiActiveDocument.Database; 
var civilDocument = CivilApplication.ActiveDocument; 
using (Transaction civilTransactionManager = 
     civilDatabase.TransactionManager.StartTransaction()) 
{ 
    ObjectId civilAlignment = Alignment.Create(civilDocument, "MyName", "" , "0", "Basic", "All Labels"); 

ich auch die „“ zu ersetzen versuchten die Website für die Ausrichtung mit null gibt oder ObjectID.Null, nicht beide nicht funktioniert und ersetzt sie durch ObjectID.Null hindert mich sogar daran zu kompilieren.

Wer weiß, wo dieser Fehler herkommt?

Antwort

0

bei der Dokumentation der Suche nach Alignment methods, genauer gesagt die following Überlastung:

public static ObjectId Create(
    CivilDocument document, 
    string alignmentName, 
    string siteName, 
    string layerName, 
    string styleName, 
    string labelSetName 
) 

Dort heißt es:

System.ArgumentException

Der Name der Zeichnung, Schicht, Stil, LabelSet oder Site ist ungültig. Der Name der Ausrichtung ist bereits vorhanden.

So scheint es, dass einige der Namen nicht korrekt sind. Für einen robusteren Ansatz können Sie die Stile auflisten und von dort einen Namen oder eine Objekt-ID abrufen. Für eine standortlose Ausrichtung können Sie string.empty als siteName Parameter übergeben.

0

Vielen Dank für Ihre Antwort Augusto! Das dachte ich auch, weil der Fehler in diese Richtung wies.

Jever, Jeff von Autodesk konnte mir helfen und lieferte eine funktionierende Lösung. Anscheinend war das Teil eines größeren Problems mit mir, dem Hauptcode, oder der Art, wie ich auf Dinge zuging. mit Jeff-Lösung in dem folgenden Posten vorgesehen ist, habe ich alles zu funktionieren:

https://forums.autodesk.com/t5/autocad-civil-3d-customization/creating-alignment-throws-quot-alignment-id-is-invalid-quot/m-p/7302387/highlight/false#M13831

Verwandte Themen