Ireneusz Guty

Ireneusz Guty specjalista ds.
katastru

Temat: zmiana atrybutow na podstawie pliku TXT

hej
potrzebuje makra, programu, (albo instrukcji jak się do tego zabrać), który wyszukałby tekst na podstawie pliku txt (porównałby teksty z warstwy z txt), i jeszcze:) w odnalezionych tekstach zmienił kolor.

może uzywacie czegoś takiego.....

pzdr

nie musi zmieniac koloru, moze tylko zaznaczyc :)Irek Guty edytował(a) ten post dnia 25.01.12 o godzinie 12:40
Karol Stachura

Karol Stachura Nie ma na świecie
rzeczy niemożliwych
- są tylko mało
pra...

Temat: zmiana atrybutow na podstawie pliku TXT

Trzy możliwości:
1. zaimportuj do gis dgn - zgeokoduj
2. weksportuj teksty z microstation do tekstu i porównaj w Arcgis lub excel
3. napisz skrypt w vba który zrobi to co chcesz. -> szczegóły w vba helpKarol Stachura edytował(a) ten post dnia 25.01.12 o godzinie 18:51
Ireneusz Guty

Ireneusz Guty specjalista ds.
katastru

Temat: zmiana atrybutow na podstawie pliku TXT

dzięki
...no tak, VBA, wiem...

kiedyś może się nauczę, w wolnej chwili;), a później Pythona, powinno być prościej:)
Karol Stachura

Karol Stachura Nie ma na świecie
rzeczy niemożliwych
- są tylko mało
pra...

Temat: zmiana atrybutow na podstawie pliku TXT

Oczywiście zawsze możesz to zlecić komuś. To co napisałem w pierwszych dwóch punktach powinno spokojnie wystarczyć żeby wykonać to zadanie. Szukanie odpowiedzi w internecie jak to zrobić nie powinno zająć dłużej niż 30 minut.
Adrian B.

Adrian B. Client Partner -
Professional Web
Platform

Temat: zmiana atrybutow na podstawie pliku TXT

Makro działa w ten sposób, że w pliku txt czyta linijkę tekstu a następnie wyszukuje dany tekst w DGNie.

Sub SzukajTXT()
Dim TextLine As String
Dim ee As ElementEnumerator
Dim esc As ElementScanCriteria

Set esc = New ElementScanCriteria
esc.ExcludeAllLevels
esc.ExcludeAllTypes
esc.IncludeLevel ActiveModelReference.Levels("sekcje_500_1965-opis")' w cudzysłowie wpisujesz warstwę, na której ma szukać tekstu
esc.IncludeType msdElementTypeText

Open "c:\temp\punkty.txt" For Input As #1 ' w cudzysłowie podajesz ścieżkę do pliku w którym znajduje się tekst, który będzie wyszukiwany na DGNie
Do While Not EOF(1)
Line Input #1, TextLine

Set ee = ActiveModelReference.Scan(esc)
Do While ee.MoveNext
If ee.Current.AsTextElement.Text = TextLine Then
ee.Current.AsTextElement.Color = 3 ' podajesz numer koloru z tablicy kolorów, na który ma być zamieniony tekst
ee.Current.AsTextElement.Rewrite
End If
Loop
Loop
Close #1
End SubAdek Baranowski edytował(a) ten post dnia 26.01.12 o godzinie 10:32
Ireneusz Guty

Ireneusz Guty specjalista ds.
katastru

Temat: zmiana atrybutow na podstawie pliku TXT

dziękuję bardzo!

szacun:), naprawdę...
Ka Mil

Ka Mil brak danych, brak
danych

Temat: zmiana atrybutow na podstawie pliku TXT

Odświeżam temat czy do tego macra dało by się w prosty sposób dopisać opcje importu danych z pliku txt?
A dokładnie chodzi o to mam plik dgn w nim nr działek na każdą działkę mam wpisać dane właścicieli jak stworze plik tekstowy o strukturze
"nr działki, imię nazwisko, adres, nr KW" dane te byłby w jednej linii kolejno w każdej linii dane do innej działki.
da się to zaimportować do microststion w sposób taki żeby program wyszukam numeru działki w pliku i zmienił go na tekst z pliku txt. i zmienił jego kolor tak jak działa to macro.
Piotr Franczak

Piotr Franczak Student, Uniwersytet
Rolniczy im. Hugona
Kołłątaja w Krak...

Temat: zmiana atrybutow na podstawie pliku TXT

'Wyszukuje w dgn teksy z przed pierwszego przecinka w linijce opisu z txt i zamienia go na dalszy 'ciąg z tej linijki.
'Z linijki - "nr działki, imię nazwisko, adres, nr KW"
'znajdzie w dgn tekst "nr działki" i zastapi go "imię nazwisko, adres, nr KW"

Sub SzukajTXT()
Dim TextLine As String
Dim ee As ElementEnumerator
Dim esc As ElementScanCriteria

Dim Opis As String

Set esc = New ElementScanCriteria
esc.ExcludeAllLevels
esc.ExcludeAllTypes
esc.IncludeLevel ActiveModelReference.Levels("Default") ' w cudzysłowie wpisujesz warstwę, na której ma szukać tekstu
esc.IncludeType msdElementTypeText

Open "c:\temp\punkty.txt" For Input As #1 ' w cudzysłowie podajesz ścieżkę do pliku w którym znajduje się tekst, który będzie wyszukiwany na DGNie
Do While Not EOF(1)
Line Input #1, TextLine

Set ee = ActiveModelReference.Scan(esc)
Do While ee.MoveNext
Opis = Split(TextLine, ",")(0)
If ee.Current.AsTextElement.Text = Opis Then
ee.Current.AsTextElement.Text = Replace(TextLine, Opis & ",", "", 1, 1)
ee.Current.AsTextElement.Rewrite
End If
Loop
Loop
Close #1
End Sub
Ka Mil

Ka Mil brak danych, brak
danych

Temat: zmiana atrybutow na podstawie pliku TXT

Dziękuje za pomoc.

mam problem z nazwą warstwy każda stworzona warstwa i wpisana do makra powoduje błąd. tylko na warstwie Default działa poprawnie. Oprócz nazwy warstwy trzeba coś wpisać jeszcze?
Piotr Franczak

Piotr Franczak Student, Uniwersytet
Rolniczy im. Hugona
Kołłątaja w Krak...

Temat: zmiana atrybutow na podstawie pliku TXT

Spróbuj zamienić "esc.IncludeLevel ActiveModelReference.Levels" na
"esc.IncludeLevel ActiveDesignFile.Levels". I nazwa warstwy w cudzysłowie.
Ka Mil

Ka Mil brak danych, brak
danych

Temat: zmiana atrybutow na podstawie pliku TXT

Teraz wszystko działa jak należy. Dziękuje za pomoc.

Następna dyskusja:

błędny import pliku txt




Wyślij zaproszenie do