Element ID


#1

Is there a way to use elements ID as a parameter? I want to select some elements with known ID and than manipulate appereance of those elements.


#2

There’s an Element.ID node in 0.7.1 that will give you an element’s ID as a number. In 0.6.3 use package Elements From & To IDs (which will give you the ID as an ID - you’ll need to use To String in order to convert it into a comparable data format). Then use one of the Filter nodes to get the elements that you want to manipulate.


#3

I know it doesn’t make any sense , but it’s easier for me to explain what my goal is.

ID

 


#4

The explanation in your initial post was sufficient, apparently my explanation in my initial answer wasn’t. :wink: Here’s how you could do it:

OverrideByID


#5

Thank you for the reply. But it doesn’t work on my file, and I don’t know why. I get this error message and don’t know how to interpret it Dereferencing


#6

You are passing the ID list to the boolean filter instead of the element list. Have a look at my screenshot again.


#7

Hello Szymon Jan, you need to make below correction.

elementID

 


#8

My mistake, sorry. It worked, thanks. Although I found out that some of the nodes don’t behave correctly in Polish Templates based projects. It perhaps matter of Polish signs. In US templates it’s allright

BTW, is there a node that resets the appereance of the overriden element ?


#9

actually I think there is a major bug in dynamo pertaining localized versions.

last night i was struggling with a double number in code blocks.

dynamo is ignoring the comma. so if you input a number like 43.05 as a constant dynamo changes it into 4305! the comma is ignored. if you try to use the localized “,” the code block turns red. so localized commas are invalid inputs

workaround: divide by amount of post comma digits…

 


#10

Szymon,

Mam tylko jedna uwage co do twojego pytania. Pamietaj ze Element ID nie jest stalym identyfikatorem przypisanym do danego elementu. Jak nacisniesz Synch, numer ID moze sie zmienic. W Revit jest jeszcze GUID ktore jest stalym i niezmiennym identyfikatorem przypisanym do kazdego elementu w bazie danej Revit. Nie wiem dokladnie w jakim celu chcesz zapisac Element ID jako parameter ale zakladam ze masz dobry powod. :slight_smile:

Konrad


#11

Mi?o zobaczy? Polski akcent na tym forum :D.
Generalnie zastanawiam si? nad wy?wietleniem wyników Clash Detections z Navisworksa w Revicie. Mam do dyspozycji ID i GUiD (tylko nie wiem czy GUiD mog? ekstraktowa? przez Dynamo) i chcia?bym jako? wyró?ni? obiekty które s? w Kolizji w interfejsie Revita. Bo jak na ten moment jako? ta integracja Navis->Revit nie wygl?da najlepiej (pomijam SwitchBack).

Ale tak na prawd? to zastanawiam si? jak wygl?da rozwi?zywanie tych Clashy w du?ych biurach projektowych, jaka jest w?a?ciwie procedura ?


#12

Zgadzam sie z toba. W tym momencie nie ma dobrego sposobu na wyswietlanie i izolowanie elementow ktore ze soba koliduja. Jak sie tak nad tym zastanawiam to wydaje mi sie ze nie jest to niemozliwe. Po pierwsze musial bys uzyc GUID i w tym momencie Dynamo nie ma komponentu ktory to robi, ale kto powiedzial ze nie moze miec? :slight_smile:

Tutaj jest link do bloga napisanego przez Harry Mattison: http://boostyourbim.wordpress.com/2013/11/18/getting-an-element-from-a-string-id/ to powinno wyjasnic jak zmienic UniqueId na ElementId i wybrac element uzywajac ElementId.

Teraz tylko musisz zrobic to samo z elementami z zalaczonych projektow Revit (linked files) Julien Benoit ma zestaw komponentow dla Dynamo 0.6.3 ktore moga wyciagnac obiekty z zalaczonych projektow. W tym momencie one dzialaja jako filter categorii (OST_Categories) ale to nie jest problem zeby to przepisac na filtr ktory bedzie wybieral tylko obiekty ktorych ID zostanie podane w liscie.

Jak bedziesz mial te dwa obiekty juz wybrane to mozesz zrobic cos takiego:

  1. Wybierz wszystkie elementy ktore sa widoczne w aktywnym oknie Revit'a.
  2. stworz ExclusionFilter ktory bedzie zawieral tylko elementy ktore chcesz odizolowac
  3. stworz nastepny set ktory bedzie zawieral wszystkie elementy widoczne w oknie Revit z wyjatkiem tych ktore sa w ExclusionFilter
  4. ukryj wszystkie elementy w secie ktory stworzyles w trzecim kroku (view. HideElementsTemporary(set))
To moze dzialac zakladajac ze nie trzeba czegos specjalnego zrobic z obiektami ktore sa w zalaczonych projektach.

Zakladam oczywiscie ze masz sposob na to aby stworzyc liste GUID z pliku Navisworks. :slight_smile: Nie wiem o czy myslisz ale prawdopodobnie patrzysz na wyciaganie GUID’s z kontekstu pliku HTML albo XML. To nie jest nie mozliwe ale na pewno nie bedzie proste. :slight_smile: Ja napisalem kiedys krotki post na blogu jak to robic z elementami ale tylko tymi ktore sa w jednym projekcie revita (zakladam ze projekt w ktorym pracujesz ma konsultantow (systemy mechaniczne, elektryczne, struktury etc) ktorzy maja swoje wlasne pliki i te sa zalaczane do twojego. To komplikuje wszystko.) http://archi-lab.net/?p=94

Mam nadzieje ze to troche pomoglo ale tak naprawde to, to o czym mowisz to misja dla kogos naprawde doswiadczonego w API i nie na jeden dzien.

Odpowiadajac na druga czesc twojego pytania: “Jak robi sie Clash Detection w duzych biurach?”. Ja pracuje teraz w +/- 300 osobowej firmie ale wczesniej pracowalem dla +/- 1000 osobowej firmy i clash detection wszedzie robi sie tak samo. Spotykamy sie z inzynierami w biurze, rozdajemy wszystkim wydruk z Navisworks (raport), i jedna osoba kontroluje model a reszta ustala kto naprawi co i na kiedy. Nie ma w tym nic nadzwyczajnego, wrecz bym powiedzial ze to troche archaiczny sposob ale lepsze to niz nic.

Mam nadzieje ze to pomoglo. Powodzenia.

Konrad


#13

Dzi?ki. Pomog?o w tym sensie ?e chyba sobie dam z tym spokój na razie i mo?e wróc? do tego pó?niej. Chcia?em unikn?? wchodzenia w programowanie na którym si? nie znam niestety.
Na razie zostan? przy rozwi?zaniu tego poprzez wstawianie w miejsce clashu wska?nika (rodziny) na podstawie uk?adu wspó?rz?dnych, dost?pnego w raporcie z Navisa. Chocia? te? zastanawiam si? na ile to b?dzie pomocne… Pomy?la?em te? ?e wska?nik mo?na równie? wzbogaca? o informacje na temat Clasha poprzez uzupe?nianie Instance Parameters. Wtedy po klikni?ciu na znacznik b?dziemi mieli równie? informacje np. na temat Zclashowanych obiektów, do kogo jest clash Assigned itp.

Clash_Test_Beta_v2
CLASH_Wskaznik
XYZ

 


#14

Oh Szymon, to nie wyglada za dobrze. :slight_smile: Pomysl ze wskaznikiem nie jest najgorszy ale, nie wiem jak ludzie by zareagowali na widok 101 Dalmatynczykow na ekranie podczas spotkania. Ten wskaznik rowniez nie rozwiazuje zadnego z typowych problemow jakie mamy podczas kazdego ze spotkan. Ludzie zawsze sie pytaja: “A gdzie to jest w budynku? (lokacje na siatce strukturalnej i poziomie (grid))”. Najlepsza odpowiedzia przewaznie jest w ktorym pomieszczenie jako ze ludzie przewaznie bardzo szybko zapamietuja rozklad budynku w kontekscie nazw pomieszczen. Nastepna rzecza jaka Navisworks robi bardzo dobrze to mozliwosc odizolowania elementow ktore koliduja ze soba, ale czasem chcesz miec wiecej informacji i chcesz widziec kontekst. Tylko widzac kontekst mozna ocenic czy obnizenie tej rury jest mozliwe czy sprawi ze za tydzien bedziemy miec nastepny konflikt tylko tym razem z innym elementem. Tak naprawde to potrzeba nam cos co pozwoli nam otworzyc okno 3d w revit i stworzy mala sekcje (section box) wokolo kolidujacych elementow (1m x 1m x 1m) tymczasowo zmieniajac kolor kolidujacych elementow. W ten sposob jestem w stanie szybko je namierzyc, widze troche kontekstu wiec inzynierowie beda mogli podjac decyzje na miejscu. Moze do tego jakies okno wyskakuje ktore mowi mi w ktorym pomieszczeniu znajduje sie kolizja.

To narazie tylko pomysl ale nie jest to niemozliwe wiec jak bede mial troche czasu za pare tygodni to na to popatrze troche. :slight_smile:

Przykro mi ze nie mam gotowych odpowiedzi w tym momencie ale przewaznie tak to wyglada. :smiley:

Powodzenia.


#15

Znacznik jest w wersji BETA , piesek robi hau hau i wskazuje ?apk? clash (przynajmniej jest jakie? story). :smiley:
Faktycznie tak jak piszesz by by?o najlepiej. Tylko ja zanim co? takiego bym napisa? to b?dzie Revit 2022 i pewnie kto? to zrobi za mnie :D. Nie oczekiwa?em gotowych odpowiedzi bo by?em ?wiadomy ?e to nadal jest bardziej w kategorii wyobra?e?. Na razie to sobie zostawi? i mo?e pobawi? si? czym? innym w Dynamo. Ale je?eli b?dziesz mia? jakie? wyniki albo nowe spojrzenie na ten problem to ch?tnie si? temu przyjrz?.