{"id":19648,"date":"2016-01-29T16:04:05","date_gmt":"2016-01-29T15:04:05","guid":{"rendered":"https:\/\/www.modelical.com\/node\/duplicar-planos-en-revit-incluir-planos-y-listados\/"},"modified":"2024-07-29T11:44:24","modified_gmt":"2024-07-29T09:44:24","slug":"duplicar-planos-en-revit-incluir-planos-y-listados","status":"publish","type":"node","link":"https:\/\/www.modelical.com\/es\/node\/duplicar-planos-en-revit-incluir-planos-y-listados\/","title":{"rendered":"Duplicar planos en Revit"},"content":{"rendered":"<p>Con el siguiente c\u00f3digo puedes generar una macro para duplicar planos. Es script duplica las vistas y las renombra, crea planos nuevos y coloca las vistas en la misma posici\u00f3n que los planos originales y de paso cambia algunos par\u00e1metros de visibildiad en los worksets. Es una rutina muy \u00fatil para preparar una modelo para la fase de obra.<\/p>\n<p>Cu\u00e9ntanos qu\u00e9 te parece y c\u00f3mo lo mejorar\u00edas.<\/p>\n<pre class=\"lang:c# decode:true\"> public\u00a0void\u00a0DuplicateSheetandchangeworksetsvisibility()\r\n {\r\n UIDocument uidoc = this.ActiveUIDocument;\r\n Document doc = uidoc.Document;\r\n ViewSheet vs = doc.ActiveView as ViewSheet;\r\n\r\n using(Transaction t = new Transaction(doc, \"Duplicate Sheet\"))\r\n {\r\n t.Start();\r\n\r\n FamilyInstance titleblock = new FilteredElementCollector(doc).OfClass(typeof(FamilyInstance))\r\n .OfCategory(BuiltInCategory.OST_TitleBlocks).Cast&lt;FamilyInstance&gt;()\r\n .First(q =&gt; q.OwnerViewId == vs.Id);\r\n\r\n ViewSheet newsheet = ViewSheet.Create(doc, titleblock.GetTypeId());\r\n newsheet.SheetNumber = vs.SheetNumber + \"_EXE\";\r\n newsheet.Name = vs.Name;\r\n\r\n \/\/ all views but schedules\r\n foreach(ElementId eid in vs.GetAllPlacedViews())\r\n {\r\n View ev = doc.GetElement(eid) as View;\r\n\r\n View newview = null;\r\n\r\n \/\/ legends\r\n if (ev.ViewType == ViewType.Legend)\r\n {\r\n newview = ev;\r\n }\r\n \/\/ all non-legend and non-schedule views\r\n else\r\n {\r\n ElementId newviewid = ev.Duplicate(ViewDuplicateOption.WithDetailing);\r\n newview = doc.GetElement(newviewid) as View;\r\n newview.Name = ev.Name + \"_EXE\";\r\n\r\n \/\/ Change worksets visibility\r\n\r\n FilteredWorksetCollector worksets = new FilteredWorksetCollector(doc);\r\n\r\n List &lt;Workset&gt; exeWorkSets = new List&lt;Workset&gt;();\r\n List &lt;WorksetId&gt; exeWorkSetsID = new List&lt;WorksetId&gt;();\r\n List &lt;WorksetId&gt; nonExeWorkSetsID = new List&lt;WorksetId&gt;();\r\n\r\n foreach (Workset exeWorkSet in worksets)\r\n {\r\n if (exeWorkSet.Name.EndsWith(\"_EXE\"))\r\n {\r\n exeWorkSets.Add(exeWorkSet);\r\n exeWorkSetsID.Add(exeWorkSet.Id);\r\n }\r\n }\r\n\r\n foreach (Workset nonExeWorkset in worksets)\r\n {\r\n foreach (Workset exeid in exeWorkSets)\r\n {\r\n String nonExename = exeid.Name.Replace(\"_EXE\", \"\");\r\n if(nonExeWorkset.Name.Equals(nonExename))\r\n {\r\n nonExeWorkSetsID.Add(nonExeWorkset.Id);\r\n }\r\n }\r\n }\r\n\r\n foreach (WorksetId exeWorkSetID in exeWorkSetsID)\r\n {\r\n newview.SetWorksetVisibility(exeWorkSetID, WorksetVisibility.Visible);\r\n }\r\n foreach (WorksetId nonexeWorkSetID in nonExeWorkSetsID)\r\n {\r\n newview.SetWorksetVisibility(nonexeWorkSetID, WorksetVisibility.Hidden);\r\n }\r\n \/\/ end of worksets visibility\r\n }\r\n\r\n foreach (Viewport vp in new FilteredElementCollector(doc).OfClass(typeof(Viewport)))\r\n {\r\n if (vp.SheetId == vs.Id &amp;&amp; vp.ViewId == ev.Id)\r\n {\r\n BoundingBoxXYZ vpbb = vp.get_BoundingBox(vs);\r\n XYZ initialCenter = (vpbb.Max + vpbb.Min) \/ 2;\r\n\r\n Viewport newvp = Viewport.Create(doc, newsheet.Id, newview.Id, XYZ.Zero);\r\n\r\n BoundingBoxXYZ newvpbb = newvp.get_BoundingBox(newsheet);\r\n XYZ newCenter = (newvpbb.Max + newvpbb.Min) \/ 2;\r\n\r\n ElementTransformUtils.MoveElement(doc, newvp.Id, new XYZ(\r\n initialCenter.X - newCenter.X,\r\n initialCenter.Y - newCenter.Y,\r\n 0));\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n \/\/ schedules\r\n\r\n foreach (ScheduleSheetInstance si in (new FilteredElementCollector(doc).OfClass(typeof(ScheduleSheetInstance))))\r\n {\r\n if (si.OwnerViewId == vs.Id)\r\n {\r\n if (!si.IsTitleblockRevisionSchedule)\r\n {\r\n foreach (ViewSchedule vsc in new FilteredElementCollector(doc).OfClass(typeof(ViewSchedule)))\r\n {\r\n if (si.ScheduleId == vsc.Id)\r\n {\r\n BoundingBoxXYZ sibb = si.get_BoundingBox(vs);\r\n XYZ initialCenter = (sibb.Max + sibb.Min) \/ 2;\r\n\r\n ScheduleSheetInstance newssi = ScheduleSheetInstance.Create(doc, newsheet.Id, vsc.Id, XYZ.Zero);\r\n\r\n BoundingBoxXYZ newsibb = newssi.get_BoundingBox(newsheet);\r\n XYZ newCenter = (newsibb.Max + newsibb.Min) \/ 2;\r\n\r\n ElementTransformUtils.MoveElement(doc, newssi.Id, new XYZ(\r\n initialCenter.X - newCenter.X,\r\n initialCenter.Y - newCenter.Y,\r\n 0));\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n t.Commit();\r\n }\r\n\r\n }<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Con el siguiente c\u00f3digo puedes generar una macro para duplicar planos. Es script duplica las vistas y las renombra, crea planos nuevos y coloca las vistas en la misma posici\u00f3n que los planos originales y de paso cambia algunos par\u00e1metros de visibildiad en los worksets.<\/p>\n","protected":false},"featured_media":0,"template":"","categories":[715],"tags":[757],"class_list":["post-19648","node","type-node","status-publish","hentry","category-nodos","tag-tecnologia-revit-api"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Duplicar planos en Revit - Modificando la visibilidad en vistas resultantes<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.modelical.com\/es\/node\/duplicar-planos-en-revit-incluir-planos-y-listados\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Duplicar planos en Revit - Modificando la visibilidad en vistas resultantes\" \/>\n<meta property=\"og:description\" content=\"Con el siguiente c\u00f3digo puedes generar una macro para duplicar planos. Es script duplica las vistas y las renombra, crea planos nuevos y coloca las vistas en la misma posici\u00f3n que los planos originales y de paso cambia algunos par\u00e1metros de visibildiad en los worksets.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.modelical.com\/es\/node\/duplicar-planos-en-revit-incluir-planos-y-listados\/\" \/>\n<meta property=\"og:site_name\" content=\"Modelical\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Modelical\/\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-29T09:44:24+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@modelical\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/node\\\/duplicar-planos-en-revit-incluir-planos-y-listados\\\/\",\"url\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/node\\\/duplicar-planos-en-revit-incluir-planos-y-listados\\\/\",\"name\":\"Duplicar planos en Revit - Modificando la visibilidad en vistas resultantes\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/#website\"},\"datePublished\":\"2016-01-29T15:04:05+00:00\",\"dateModified\":\"2024-07-29T09:44:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/node\\\/duplicar-planos-en-revit-incluir-planos-y-listados\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.modelical.com\\\/es\\\/node\\\/duplicar-planos-en-revit-incluir-planos-y-listados\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/node\\\/duplicar-planos-en-revit-incluir-planos-y-listados\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Nodes & Macros\",\"item\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/node\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Duplicar planos en Revit\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/#website\",\"url\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/\",\"name\":\"Modelical\",\"description\":\"We build information\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Duplicar planos en Revit - Modificando la visibilidad en vistas resultantes","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.modelical.com\/es\/node\/duplicar-planos-en-revit-incluir-planos-y-listados\/","og_locale":"es_ES","og_type":"article","og_title":"Duplicar planos en Revit - Modificando la visibilidad en vistas resultantes","og_description":"Con el siguiente c\u00f3digo puedes generar una macro para duplicar planos. Es script duplica las vistas y las renombra, crea planos nuevos y coloca las vistas en la misma posici\u00f3n que los planos originales y de paso cambia algunos par\u00e1metros de visibildiad en los worksets.","og_url":"https:\/\/www.modelical.com\/es\/node\/duplicar-planos-en-revit-incluir-planos-y-listados\/","og_site_name":"Modelical","article_publisher":"https:\/\/www.facebook.com\/Modelical\/","article_modified_time":"2024-07-29T09:44:24+00:00","twitter_card":"summary_large_image","twitter_site":"@modelical","twitter_misc":{"Tiempo de lectura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.modelical.com\/es\/node\/duplicar-planos-en-revit-incluir-planos-y-listados\/","url":"https:\/\/www.modelical.com\/es\/node\/duplicar-planos-en-revit-incluir-planos-y-listados\/","name":"Duplicar planos en Revit - Modificando la visibilidad en vistas resultantes","isPartOf":{"@id":"https:\/\/www.modelical.com\/es\/#website"},"datePublished":"2016-01-29T15:04:05+00:00","dateModified":"2024-07-29T09:44:24+00:00","breadcrumb":{"@id":"https:\/\/www.modelical.com\/es\/node\/duplicar-planos-en-revit-incluir-planos-y-listados\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.modelical.com\/es\/node\/duplicar-planos-en-revit-incluir-planos-y-listados\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.modelical.com\/es\/node\/duplicar-planos-en-revit-incluir-planos-y-listados\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Nodes & Macros","item":"https:\/\/www.modelical.com\/es\/node\/"},{"@type":"ListItem","position":2,"name":"Duplicar planos en Revit"}]},{"@type":"WebSite","@id":"https:\/\/www.modelical.com\/es\/#website","url":"https:\/\/www.modelical.com\/es\/","name":"Modelical","description":"We build information","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.modelical.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"}]}},"_links":{"self":[{"href":"https:\/\/www.modelical.com\/es\/wp-json\/wp\/v2\/node\/19648","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.modelical.com\/es\/wp-json\/wp\/v2\/node"}],"about":[{"href":"https:\/\/www.modelical.com\/es\/wp-json\/wp\/v2\/types\/node"}],"wp:attachment":[{"href":"https:\/\/www.modelical.com\/es\/wp-json\/wp\/v2\/media?parent=19648"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.modelical.com\/es\/wp-json\/wp\/v2\/categories?post=19648"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.modelical.com\/es\/wp-json\/wp\/v2\/tags?post=19648"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}