Hallo Miteinander!
Wie setze ich in Python die Füllfläche in einer Farbe?
Ist dies überhaupt möglich?
Im Allplan Connect Forum tauschen sich Anwender aus, geben wertvolle Tipps oder beraten sich bei ganz konkreten Aufgabenstellungen − auch international.
Und damit wirklich keine Frage unbeantwortet bleibt, unterstützen die Mitarbeiter des Technischen Supports ebenfalls aktiv das Forum.
Melden Sie sich jetzt an und diskutieren Sie mit!
Hallo Miteinander!
Wie setze ich in Python die Füllfläche in einer Farbe?
Ist dies überhaupt möglich?
Das was dort angezeigt wird, ist entweder die Allplan-Farbe des Elements (die Linien-Farbe) , wenn das Element keine Oberfläche hat, ansonsten die Farbe der Oberfläche (.surf)
Die Definition der Ressource Oberfläche(.surf) können meines Wissens nach nicht mit Python erstellt oder verändert werden.
Die Linienfarbe kann ebenfalls nicht "umdefiniert" werden, sondern es muss eine der 256-Allplan-Farben sein.
Beide "Eigenschaften" können einem Element zugewiesen werden.
Danke Nemo für deine Antwort.
Aber mir ist es immer noch nicht ganz klar, wie ich die Fächendarstellung für PythonParts definieren kann. Bzhw. wie kann ich die Füllfläche zuweisen.(sieh ScreenShot)
Die in Deinem Screenshot in Allplan zugewiesen Füllfläche wird nur an SCHNITTFLÄCHEN angezeigt, nicht auf Ansichtsflächen.
Für die Zuweisung der Schnitflächendarstellung (IM SCHNITT) gibt es die Klasse SectionFill:
from SectionFill import SectionFillType,SectionFill
def create_section_fill(self):
"""
set filling values
"""
sectfill = None
if self.ret_fill == 1:
sectfill = SectionFill(SectionFillType.FILLING,self.sectionfilling_id)
if self.ret_fill == 2:
sectfill = SectionFill(SectionFillType.HATCHING,self.sectionhatch_id)
if self.ret_fill == 3:
sectfill = SectionFill(SectionFillType.PATTERN,self.sectionpattern_id)
if self.ret_fill == 4:
sectfill = SectionFill(SectionFillType.FACESTYLE,self.sectionfacestyle_id)
return sectfill
polyhed = AllplanGeo.CreatePolyhedron(poly, polyline_3d)
elem = AllplanBasisElements.ModelElement3D(com_prop, surf_prop, polyhed)
SectionFill.add_section_filling(elem,sectfill)
Ich bin voll verwirrt, sorry.
Aber im grunde genommen was ich brauche, dass der Körper im Ansicht "materialisiert" wird.
Kein Grund zur Verwirrung, wer lesen kann ist allerdings im Vorteil!
Wenn die Fläche des Polyhedrons in als Ansichtsfläche zu sehen ist, dann siehe meine 1. Antwort.
Wenn der Polyhedron geschnitten wird, dann für die Schnittflächen siehe meine 2. Antwort.
In jedem Fall ist es eine Eigenschaft des Elements, welches in der Ansicht/im Schnitt dargestellt wird,
und keine Eigenschaft der Ansicht/des Schnittes!
Hallo Nemo
Besten Dank für deine Antworten.
Folgende Dinge / Bedinungen sind bei uns in Kraft:
- Wir haben keinen Zugriff auf das UI (ist ja ein Pythonpart)
Wir können Filter, Ansichten, Darstellungsformat, (etc) in der Python API einstellen.
Jedoch fehlt uns das Wissen, wie wir die Eigenschaften der Flächenelemente (in der Python API) modifizieren können?
In der Doku können wir dazu, zumindest dort wo die anderen Einstellungen möglich sind, auch nichts finden.
Link
Unsere Frage ist nun, gibt es diese Möglichkeit in der Python API gar nicht? Und wenn schon wo und wie?
Besten Dank
Wie wäre es damit:
State = <class 'NemAll_Python_BasisElements.State'>
Drawing state of the section
Leider gibt es keine Docu darüber, was hier wie zu setzen ist.
Danke Nemo,
Meinst du Status in SectionGeneralProperties? Das habe ich schon probiert, es gibt drei enums:
AcceleratedHidden = NemAll_Python_BasisElements.State.AcceleratedHidden
Hidden = NemAll_Python_BasisElements.State.Hidden
Wire = NemAll_Python_BasisElements.State.Wire
Das einzige was es tut, das ändert die Ansicht Rahmekanten, sonst nichts, mindenstens ich merke nichts.
Und wenn ich mit Doppelklick öffne das Fenster "Ansicht modifizieren" ist immer noch der erste Knopf ausgewählt.
Mache ich was falsch wahrscheinlich?
view_props = AllplanBasisElements.SectionGeneralProperties(True)
view_props.Status = AllplanBasisElements.SectionGeneralProperties.State.AcceleratedHidden
oder auch das view_props.Status = 2
Danke!