Support Forum

Steuerung Linien


Ich habe folgendes Problem:

In einem Smartpart will ich verschieden Linien verschieden darstellen. Dazu arbeite ich mit STROKE und COLOR, und vergebe entweder fixe Werte oder steuere sie durch Parameter. Wenn ich dieses Smartpart nun bei einem Umbau verwenden möchte, will ich alle Werte übersteuern können damit ich es zbp als ABBRUCH oder als NEU darstellen kann.
Wenn ich bei jeder Linie eine Bedingung anfügen muss, gibt es ein unkontrollierbares, riesiges Script was ich vermeiden will.

Es gibt sicher einen "Smarteren" Weg dieses Problem zu lösen. Hat Jemand eine Idee wie man das machen könnte?

Hallo,

die Umschaltung der Darstellung Bestand/Abbruch/Neubau funktioniert in Allplan nur durch Nutzung von folgenden Mitteln:
1. für lineare Representationen (z.B. Linien) muss man diese auf den richtigen Layer mit der Einstellung "vonLayer" für Stift, Strich,Farbe platzieren. Über den dem Layer zuzuweisenden Linienstil regelt sich dann die Umschaltung der Darstellung beim entspr. Zeichnungstyp.

2. für flächige Representationen (Schraffur/Füllflächen,Muster) ist zusätzlich ein Flächenstil zu verwenden, der die Umschaltung der Darstellung erledigt.

Für SmartParts bedeutet das:
Layer setzen:
LAYER "KO_ALL01"
"von Layer" setzen:
STROKE BY_LAYER
COLOR BY_LAYER
PEN BY_LAYER
...dann 2D-Konstruktionen erzeugen
RECT2 0,0,1,1

Flächenstil setzen:
DEFINE FACE_STYLE "test",301
SET FACE_STYLE "test"

...dann flächige Elemente erstellen
POLY2 ...

die Steuerung der Suchbarkeit un Darstellung erfolgt dann über angepasste LayerSet, Linien- und Zeichnungstypen...

Gruß Jörg

Hallo Jörg

Vielen Dank für deine Antwort. Ich habe aber immer noch folgendes Problem: Wenn ich verschiedene Linien habe - durchgezogen - gestrichelt usw. brauchen die ja allen einen eigenen Layer, oder eine Definition im Script mit Stroke. Wenn jetzt alles Abbruch sein soll, muss ja EIN Layer alles übersteuern. Ich will ja nicht jeden Layer manuell auf Abbruch stellen.

Und ist es normal dass, wenn ich den Layer vom Smartpart ändere dann das Smartpart noch Aktualisieren muss damit diese Änderung sichtbar wird?

Hallo,

ich verstehe deine Frage nicht ganz !
Wenn Du nur den Strich der Linie ändern willst, kannst Du das mit STROKE machen, bevor Du die Linie erzeugst:
IF status="neu" THEN
STROKE 1
ENDIF
IF status="Abbruch" THEN
STROKE 2
ENDIF
!!!usw.
LINE2 0,0,1,1

Meine Antwort bezog sich darauf, ein SmartPart zu erzeugen, daß sich beim Umschalten der Zeichnungstypen analog zu einer "Abbruch-Wand" verhält.

Sobald im Script STROKE, PEN, COLOR verwendet wird, kann man diese Parameter nicht mehr von "aussen" (mit "Ändern Formateigenschaften") ändern.

(Ein Codeschnipsel oder ein Beispiel zu posten ist immer sehr hilfreich!)

Gruß Jörg

du hast mich richtig verstanden, das hat mir weitergeholfen. danke