{"id":733,"date":"2017-02-17T10:00:00","date_gmt":"2017-02-17T08:00:00","guid":{"rendered":"https:\/\/blogs.autodesk.com\/villagebim\/2017\/02\/exemple-dynamo-revit-mep-et-filtrer-des-listes.html"},"modified":"2017-02-17T10:00:00","modified_gmt":"2017-02-17T08:00:00","slug":"exemple-dynamo-revit-mep-et-filtrer-des-listes","status":"publish","type":"post","link":"https:\/\/blogs.autodesk.com\/villagebim\/2017\/02\/exemple-dynamo-revit-mep-et-filtrer-des-listes.html","title":{"rendered":"Exemple Dynamo : Revit MEP et filtrer des listes"},"content":{"rendered":"<p><a href=\"http:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b8d25d7e28970c-pi\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"244\" src=\"https:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01bb09765a88970d-pi\" style=\"background-image: none;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-width: 0px;margin-left: auto;margin-right: auto\" title=\"image\" width=\"454\" \/><\/a><\/p>\n<p style=\"text-align: justify\">Voici un exemple Dynamo o\u00f9 je mixte deux demandes de nos lecteurs de notre blog Village BIM:<\/p>\n<ul>\n<li>un exemple MEP,<\/li>\n<li>filtrer des listes d\u2019\u00e9l\u00e9ments,<\/li>\n<\/ul>\n<p style=\"text-align: justify\">En cons\u00e9quence, je vous ai concoct\u00e9 un exemple simple o\u00f9 je veux s\u00e9lectionner toutes les gaines d\u2019un seul niveau et leurs affecter &#160;un changement d\u2019\u00e9l\u00e9vation.<\/p>\n<p style=\"text-align: justify\">Cet exemple se r\u00e9alise en trois \u00e9tapes :<\/p>\n<p style=\"text-align: justify\"><strong><u>1- La s\u00e9lection :<\/u><\/strong><\/p>\n<p style=\"text-align: justify\">&#160;&#160;&#160;&#160;Le n\u0153ud \u201c<em>Categories<\/em>\u201d en s\u00e9lectionnant le champ \u201cGaine\u201d me permet d\u2019indiquer \u00e0 Dynamo que je m\u2019int\u00e9resse \u00e0 cette cat\u00e9gorie.<\/p>\n<p style=\"text-align: justify\">Le n\u0153ud \u201c<em>All Elements of Category<\/em>\u201d s\u00e9lectionne tout les \u00e9l\u00e9ments dans le fichier Revit appartenant \u00e0 la cat\u00e9gorie d\u00e9sign\u00e9e (ici Gaine).<\/p>\n<p style=\"text-align: justify\">Une fois reli\u00e9, cela cr\u00e9e une premi\u00e8re liste de toutes les gaines issues de mon fichier.<\/p>\n<p style=\"text-align: justify\">Ensuite, je m\u2019int\u00e9resse aux gaines du niveau actif, je vais donc utiliser le n\u0153ud \u201c<em>All Elements In Active View<\/em>\u201d qui cr\u00e9e automatiquement une deuxi\u00e8me liste.<\/p>\n<p><a href=\"http:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01bb09765a97970d-pi\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"261\" src=\"https:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01bb09765ab4970d-pi\" style=\"background-image: none;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-width: 0px;margin-left: auto;margin-right: auto\" title=\"image\" width=\"454\" \/><\/a><\/p>\n<p style=\"text-align: justify\"><strong><u>2 \u2013 Le filtrage :<\/u><\/strong><\/p>\n<p style=\"text-align: justify\">&#160;&#160;&#160;&#160;A partir des deux listes g\u00e9n\u00e9r\u00e9es, je veux savoir quels sont les \u00e9l\u00e9ments (gaines) qui sont dans le niveaux actif, je vais donc utiliser un n\u0153ud \u201c<em>List.ContainsItem<\/em>\u201d. Une suite de vrais (\u201c<em>true<\/em>\u201d) et de Faux (\u201c<em>false<\/em>\u201d) qui permettent de savoir si les \u00e9l\u00e9ments pr\u00e9sents dans la premi\u00e8re liste sont dans la deuxi\u00e8me (true = pr\u00e9sent).<\/p>\n<p><a href=\"http:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b8d25d7e53970c-pi\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"227\" src=\"https:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b8d25d7e65970c-pi\" style=\"background-image: none;padding-top: 0px;padding-left: 0px;padding-right: 0px;border-width: 0px;margin-left: auto;margin-right: auto\" title=\"image\" width=\"454\" \/><\/a><\/p>\n<p style=\"text-align: justify\">&#160; &#160; Il existe un n\u0153ud qui permet d\u2019appliquer un filtre \u00e0 une suite en fonction d\u2019une liste de bool\u00e9ens, il s\u2019agit du n\u0153ud \u201c<em>List.FilterByBoolMask<\/em>\u201d. Finalement, la suite de bool\u00e9ens est utilis\u00e9e comme un masque pour mettre en lumi\u00e8re les \u00e9l\u00e9ments qui r\u00e9pondent aux crit\u00e8res pr\u00e9c\u00e9dents.<\/p>\n<p><a href=\"http:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01bb09765ad1970d-pi\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"171\" src=\"https:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01b8d25d7e80970c-pi\" style=\"background-image: none;padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px;margin-left: auto;margin-right: auto\" title=\"image\" width=\"454\" \/><\/a><\/p>\n<p style=\"text-align: justify\"><strong><u>3 \u2013 Affectation de valeurs :<\/u><\/strong><\/p>\n<p style=\"text-align: justify\">&#160;&#160;&#160;&#160;C\u2019est la partie la plus facile. Je vais utiliser le n\u0153ud \u201c<em>Element.SetParameterByName<\/em>\u201d qui me permet d\u2019affecter des valeurs \u00e0 un param\u00e8tre aux&#160;objets s\u00e9lectionn\u00e9s.<\/p>\n<p style=\"text-align: justify\">Ici, les objets seront issus de la sortie \u201c<em>In<\/em>\u201d du n\u0153ud \u201c<em>List.FilterByBoolMask<\/em>\u201d, le param\u00e8tre sera un \u201c<em>String<\/em>\u201d sous le nom \u2018&#039;<em>D\u00e9caler<\/em>\u201d et la valeur un code block*.<\/p>\n<p><a href=\"http:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01bb09765ae6970d-pi\"><img loading=\"lazy\" decoding=\"async\" alt=\"image\" border=\"0\" height=\"167\" src=\"https:\/\/villagebim.typepad.com\/.a\/6a015391e15a28970b01bb09765aed970d-pi\" style=\"background-image: none;padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px;margin-left: auto;margin-right: auto\" title=\"image\" width=\"454\" \/><\/a><\/p>\n<p style=\"text-align: justify\">* Le code block est une interface qui permet sous un langage particulier de r\u00e9aliser des fonctions. Le n\u0153ud peut \u00eatre obtenu en double cliquant dans l\u2019interface Dynamo.<\/p>\n<p style=\"text-align: justify\">Voici la vid\u00e9o qui explique en d\u00e9tail les diff\u00e9rentes op\u00e9rations:<\/p>\n<p style=\"text-align: justify\">&#160;<\/p>\n<p class=\"asset-video\" style=\"text-align: center\">\n<p class=\"asset-video\" style=\"text-align: justify\"><span class=\"asset  asset-generic at-xid-6a015391e15a28970b01b7c8d3387f970b img-responsive\"><a href=\"http:\/\/villagebim.typepad.com\/files\/villagebim.dyn\">Fichier Dynamo<\/a><\/span><\/p>\n<p class=\"asset-video\" style=\"text-align: justify\"><span class=\"asset  asset-generic at-xid-6a015391e15a28970b01b7c8d3387f970b img-responsive\"> <span class=\"asset  asset-generic at-xid-6a015391e15a28970b01bb09765cc3970d img-responsive\"><a href=\"http:\/\/villagebim.typepad.com\/files\/mep.rvt\">T\u00e9l\u00e9chargement MEP<\/a><\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voici un exemple Dynamo o\u00f9 je mixte deux demandes de nos lecteurs de notre blog Village BIM: un exemple MEP, filtrer des listes d\u2019\u00e9l\u00e9ments, En cons\u00e9quence, je vous ai concoct\u00e9 un exemple simple o\u00f9 je veux s\u00e9lectionner toutes les gaines d\u2019un seul niveau et leurs affecter &#160;un changement d\u2019\u00e9l\u00e9vation. Cet exemple se r\u00e9alise en trois [&hellip;]<\/p>\n","protected":false},"author":13092,"featured_media":2472,"menu_order":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[15,55,57,6],"tags":[20,291,1050,468,610,21],"class_list":["post-733","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-autodesk-revit","category-fabrication","category-programmation-visuelle","category-trucs-et-astuces","tag-autodesk","tag-dynamo-for-revit","tag-filtre","tag-gaine","tag-mep","tag-revit","dhig-theme--light"],"acf":[],"_links":{"self":[{"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/posts\/733","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/users\/13092"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/comments?post=733"}],"version-history":[{"count":0,"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/posts\/733\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/media\/2472"}],"wp:attachment":[{"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/media?parent=733"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/categories?post=733"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.autodesk.com\/villagebim\/wp-json\/wp\/v2\/tags?post=733"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}