Tipps und Tricks beim Fasen Fillet für Revit PIOTM Entwicklung gelernt - AEC DevBlog

Tipps und Tricks beim Fasen Fillet für Revit PIOTM Entwicklung gelernt

Hier ist eine Sammlung von Lektionen während dieser Plug-in-Entwicklung gelernt. Sie können alle, dass in Aktion mit dem Quellcode verfügbar bei Autodesk Labs sehen.

Schnittpunkte zwischen den Wänden

Sowohl Fasen und Fillet verwendet ein Schlüsselverfahren für dieses Plug-in: Curve.Intersect. Im Grunde genommen für eine gegebene Wand, muss der Befehl seine zugrunde liegende Geometrie zuzugreifen, eine Kurve (z.B. Linie), und durch das Verfahren schneiden sie den Schnittpunkt mit einer anderen Kurve finden. Es ist sehr wichtig, dass das Linesegment Objekte (das heißt endliche Linien) zu bemerken, in der Regel sie nicht schneiden, so ist es erforderlich, um das Verfahren Curve.MakeUnbound zu verwenden, um eine Linie Objekt (das heißt unendliche Linie) zu erstellen. Man beachte, dass dieser Plug-in wurde entwickelt mit einem Schnittpunkt zwischen ihnen auf lineare Wänden zu arbeiten.

Organisieren, um die zugrunde liegende Geometrie, wenn notwendig, die dritte Wand mit der richtigen Ausrichtung schaffen

Nach dem Zugriff auf die Kurven der beiden Wände (z.B. LineSegments), den Befehlsspeicher XYZ Richtungsvektoren für beide Wände. Alle Berechnungen werden mit Vektoren durchgeführt, die mehr im Einklang steht. Beachten Sie, daß die Wände nach dieser Orientierung erzeugt werden, die die Innen- / Außenseiten betrifft, die letztlich Elemente gehosteten Affekte (z.B. Türen, Fenster).

Als eine abgeschrägter Kreuzung von Wänden zwei Wände in Größenänderung von seinem (projizierte) Schnittpunkt bestehen, erzeugte diese PIOTM XYZ-Vektoren aus dem Schnittpunkt zum nächstgelegenen Punkt an der Wand, die den nächsten Endpunkt der Wand zu finden, verwendet wird. Sobald der Größe verändert, wird die neue Wand verbindet sie geschaffen haben.

Dies war der Wechselbalg ein. Um eine Verrundung mit einem zuvor definierten Radius zu erstellen, muss der Befehl den Ablenkwinkel zwischen den Wänden gebildet berechnen. Dieser Ablenkungswinkel ist wichtig, da wird verwendet, unterhalb der Tangente Abstand T in dem Bild zu erhalten. Diese externe Tangentenlänge stellt den notwendigen Abstand zwischen dem Schnittpunkt und dem Endpunkt der ausgewählten Wände, verwendet, um eine Kurve mit dem gewünschten Radius zu schaffen.

Um den Ablenkwinkel zu finden, erzeugt der Befehl zwei gleichzeitige XYZ-Vektoren, von dem am weitesten entfernten Punkt der Wände auf den Schnittpunkt, und dann wird das Verfahren Vector.AngleTo den Ablenkwinkel. Bei wichtigen Trick: hält die AngleTo Methode die Vektororientierung und innerhalb Revit API, immer gegen den Uhrzeigersinn ist, das ist, warum dieses Plug-in die gleichzeitigen Vektoren neu erstellt, die über das Bild gehorcht.

Ändern der Größe von Verbindungen / Wände verbunden

Revit akzeptiert keine Änderungen an den Wänden Kurven, wenn die Wandende an einer anderen Wand verbunden ist, so dass der Trick war WallUtils.IsWallJoinAllowedAtEnd rufen zu überprüfen, ob das Ende verbunden war, dann, falls erforderlich, trennen Sie mit einem Aufruf an WallUtils.DisallowWallJoinAtEnd. gefolgt von einem Anruf sie mit WallUtils.AllowWallJoinAtEnd verbinden zurück.

Tipps und Tricks beim Fasen Fillet für Revit PIOTM Entwicklung gelernt

Hier ist eine Sammlung von Lektionen während dieser Plug-in-Entwicklung gelernt. Sie können alle, dass in Aktion mit dem Quellcode verfügbar bei Autodesk Labs sehen.

Schnittpunkte zwischen den Wänden

Sowohl Fasen und Fillet verwendet ein Schlüsselverfahren für dieses Plug-in: Curve.Intersect. Im Grunde genommen für eine gegebene Wand, muss der Befehl seine zugrunde liegende Geometrie zuzugreifen, eine Kurve (z.B. Linie), und durch das Verfahren schneiden sie den Schnittpunkt mit einer anderen Kurve finden. Es ist sehr wichtig, dass das Linesegment Objekte (das heißt endliche Linien) zu bemerken, in der Regel sie nicht schneiden, so ist es erforderlich, um das Verfahren Curve.MakeUnbound zu verwenden, um eine Linie Objekt (das heißt unendliche Linie) zu erstellen. Man beachte, dass dieser Plug-in wurde entwickelt mit einem Schnittpunkt zwischen ihnen auf lineare Wänden zu arbeiten.

Organisieren, um die zugrunde liegende Geometrie, wenn notwendig, die dritte Wand mit der richtigen Ausrichtung schaffen

Nach dem Zugriff auf die Kurven der beiden Wände (z.B. LineSegments), den Befehlsspeicher XYZ Richtungsvektoren für beide Wände. Alle Berechnungen werden mit Vektoren durchgeführt, die mehr im Einklang steht. Beachten Sie, daß die Wände nach dieser Orientierung erzeugt werden, die die Innen- / Außenseiten betrifft, die letztlich Elemente gehosteten Affekte (z.B. Türen, Fenster).

Als eine abgeschrägter Kreuzung von Wänden zwei Wände in Größenänderung von seinem (projizierte) Schnittpunkt bestehen, erzeugte diese PIOTM XYZ-Vektoren aus dem Schnittpunkt zum nächstgelegenen Punkt an der Wand, die den nächsten Endpunkt der Wand zu finden, verwendet wird. Sobald der Größe verändert, wird die neue Wand verbindet sie geschaffen haben.

Dies war der Wechselbalg ein. Um eine Verrundung mit einem zuvor definierten Radius zu erstellen, muss der Befehl den Ablenkwinkel zwischen den Wänden gebildet berechnen. Dieser Ablenkungswinkel ist wichtig, da wird verwendet, unterhalb der Tangente Abstand T in dem Bild zu erhalten. Diese externe Tangentenlänge stellt den notwendigen Abstand zwischen dem Schnittpunkt und dem Endpunkt der ausgewählten Wände, verwendet, um eine Kurve mit dem gewünschten Radius zu schaffen.

Um den Ablenkwinkel zu finden, erzeugt der Befehl zwei gleichzeitige XYZ-Vektoren, von dem am weitesten entfernten Punkt der Wände auf den Schnittpunkt, und dann wird das Verfahren Vector.AngleTo den Ablenkwinkel. Bei wichtigen Trick: hält die AngleTo Methode die Vektororientierung und innerhalb Revit API, immer gegen den Uhrzeigersinn ist, das ist, warum dieses Plug-in die gleichzeitigen Vektoren neu erstellt, die über das Bild gehorcht.

Ändern der Größe von Verbindungen / Wände verbunden

Revit akzeptiert keine Änderungen an den Wänden Kurven, wenn die Wandende an einer anderen Wand verbunden ist, so dass der Trick war WallUtils.IsWallJoinAllowedAtEnd rufen zu überprüfen, ob das Ende verbunden war, dann, falls erforderlich, trennen Sie mit einem Aufruf an WallUtils.DisallowWallJoinAtEnd. gefolgt von einem Anruf sie mit WallUtils.AllowWallJoinAtEnd verbinden zurück.

Autodesk Blogs