Element ID

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.

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.

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

ID

 

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

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

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

Hello Szymon Jan, you need to make below correction.

elementID

 

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 ?

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…

 

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

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 ?

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

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

 

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.

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?.