{ "Uuid": "a491f3ee-3ba0-4a17-9cdb-6965bca1431e", "IsCustomNode": false, "Description": "", "Name": "05_export_sheets_pdf", "ElementResolver": { "ResolutionMap": {} }, "Inputs": [], "Outputs": [], "Nodes": [ { "ConcreteType": "CoreNodeModels.Input.StringInput, CoreNodeModels", "Id": "c19c5b68170ea4fe45f5c3bd6bc9871c", "NodeType": "StringInputNode", "Inputs": [], "Outputs": [ { "Id": "259ef5a0df4c4d4fdcfd4ee2950108ae", "Name": "", "Description": "String", "UsingDefaultValue": false, "Level": 2, "UseLevels": false, "KeepListStructure": false } ], "Replication": "Disabled", "Description": "Creates a string", "InputValue": "C:\\ExportPDF" }, { "ConcreteType": "CoreNodeModels.Input.StringInput, CoreNodeModels", "Id": "f055dd73b1dd707d077920ac11bdb56a", "NodeType": "StringInputNode", "Inputs": [], "Outputs": [ { "Id": "bc37b198b63ba71e568ae6dfac9e654e", "Name": "", "Description": "String", "UsingDefaultValue": false, "Level": 2, "UseLevels": false, "KeepListStructure": false } ], "Replication": "Disabled", "Description": "Creates a string", "InputValue": "" }, { "ConcreteType": "CoreNodeModels.Input.StringInput, CoreNodeModels", "Id": "e17eb596fd78d50592ce7b51da8732bd", "NodeType": "StringInputNode", "Inputs": [], "Outputs": [ { "Id": "fd285d8aed58aab066dc775823622c29", "Name": "", "Description": "String", "UsingDefaultValue": false, "Level": 2, "UseLevels": false, "KeepListStructure": false } ], "Replication": "Disabled", "Description": "Creates a string", "InputValue": "Sheets" }, { "ConcreteType": "PythonNodeModels.PythonNode, PythonNodeModels", "Code": "# -*- coding: utf-8 -*-\r\n# 05 — Exportar hojas a PDF (Revit con PDFExportOptions en API reciente).\r\n#\r\n# IN[0] : carpeta destino (str)\r\n# IN[1] : prefijo número de hoja (str) opcional; vacío = todas\r\n# IN[2] : nombre base del PDF sin extensión (str) opcional; por defecto \"Sheets\"\r\n#\r\n# Salida: [ok_bool, detalle] o mensaje si la API no existe.\r\n\r\nimport sys\r\n\r\nimport clr\r\nclr.AddReference('RevitAPI')\r\nclr.AddReference('RevitServices')\r\nfrom Autodesk.Revit.DB import FilteredElementCollector, ViewSheet, ElementId\r\nfrom RevitServices.Persistence import DocumentManager\r\n\r\nfrom System.Collections.Generic import List\r\n\r\ndoc = DocumentManager.Instance.CurrentDBDocument\r\n_PY3 = sys.version_info[0] >= 3\r\n\r\n\r\ndef _ustr(value):\r\n if value is None:\r\n return ''\r\n if _PY3:\r\n return str(value).strip()\r\n try:\r\n if isinstance(value, unicode):\r\n return value.strip()\r\n except NameError:\r\n pass\r\n return str(value).strip()\r\n\r\n\r\ndef _exc_str(ex):\r\n if _PY3:\r\n return str(ex)\r\n try:\r\n return unicode(ex)\r\n except NameError:\r\n return str(ex)\r\n\r\n\r\ndef _to_py_list(obj, max_index=256):\r\n if obj is None:\r\n return []\r\n if isinstance(obj, (list, tuple)):\r\n return list(obj)\r\n try:\r\n return list(obj)\r\n except TypeError:\r\n pass\r\n out = []\r\n for i in range(max_index):\r\n try:\r\n out.append(obj[i])\r\n except Exception:\r\n break\r\n return out\r\n\r\n\r\ndef _dynamo_in_ports():\r\n raw = globals().get('IN', [])\r\n ports = _to_py_list(raw, max_index=32)\r\n if len(ports) == 0 and raw is not None:\r\n tmp = []\r\n for i in range(32):\r\n try:\r\n tmp.append(raw[i])\r\n except Exception:\r\n break\r\n ports = tmp\r\n return ports\r\n\r\n\r\n_ports = _dynamo_in_ports()\r\nfolder = _ustr(_ports[0]) if len(_ports) > 0 else ''\r\nprefix = _ustr(_ports[1]) if len(_ports) > 1 else ''\r\nbase = _ustr(_ports[2]) if len(_ports) > 2 else 'Sheets'\r\nif not base:\r\n base = 'Sheets'\r\n\r\nif not folder:\r\n OUT = ['Error: IN[0] carpeta destino vacía.']\r\nelse:\r\n sheets = []\r\n for vs in FilteredElementCollector(doc).OfClass(ViewSheet).ToElements():\r\n num = _ustr(vs.SheetNumber)\r\n if not prefix or num.startswith(prefix):\r\n sheets.append(vs)\r\n try:\r\n from Autodesk.Revit.DB import PDFExportOptions\r\n except Exception:\r\n PDFExportOptions = None\r\n if PDFExportOptions is None:\r\n OUT = [\r\n 'PDFExportOptions no está en esta versión de Revit API.',\r\n 'Hojas candidatas:',\r\n [_ustr(s.SheetNumber) for s in sheets],\r\n ]\r\n elif len(sheets) == 0:\r\n OUT = [False, 'No hay hojas que coincidan con el prefijo.']\r\n else:\r\n eid_list = List[ElementId]()\r\n for vs in sheets:\r\n eid_list.Add(vs.Id)\r\n opts = PDFExportOptions()\r\n try:\r\n opts.Combine = True\r\n except Exception:\r\n pass\r\n try:\r\n opts.FileName = base\r\n except Exception:\r\n pass\r\n try:\r\n ok = doc.Export(folder, base, eid_list, opts)\r\n OUT = [bool(ok), 'Hojas:', len(sheets), 'Carpeta:', folder]\r\n except Exception as ex:\r\n OUT = [False, 'Export falló: ' + _exc_str(ex)]\r\n# --- RÜM: mensaje de cierre (URL en rum_platform_url.py) ---\r\ntry:\r\n import sys as _rum_sys\r\n _rum_root = r'c:\\RUM_Platform\\RUM_Tools\\Dynamo_Routines'\r\n if _rum_root not in _rum_sys.path:\r\n _rum_sys.path.insert(0, _rum_root)\r\n import rum_finalize as _rum_fin\r\n OUT = _rum_fin.apply(OUT)\r\nexcept Exception:\r\n pass\r\n", "Engine": "CPython3", "VariableInputPorts": true, "Id": "09db70c9bb2b86187dd5656a08c06898", "NodeType": "PythonScriptNode", "Inputs": [ { "Id": "2035f089ea5ebfd7723eb5c1b9ceb0b1", "Name": "IN[0]", "Description": "IN[0] carpeta destino", "UsingDefaultValue": false, "Level": 2, "UseLevels": false, "KeepListStructure": false }, { "Id": "0b13bf703f6dc6edef21ec6272b4ab93", "Name": "IN[1]", "Description": "IN[1] prefijo número hoja", "UsingDefaultValue": false, "Level": 2, "UseLevels": false, "KeepListStructure": false }, { "Id": "96928476960b0deede6036af73b1bcc3", "Name": "IN[2]", "Description": "IN[2] nombre base PDF", "UsingDefaultValue": false, "Level": 2, "UseLevels": false, "KeepListStructure": false } ], "Outputs": [ { "Id": "e6b6a501d279517854de0d2643e437b3", "Name": "OUT", "Description": "Result of the python script", "UsingDefaultValue": false, "Level": 2, "UseLevels": false, "KeepListStructure": false } ], "Replication": "Disabled", "Description": "Runs an embedded Python script." } ], "Connectors": [ { "Start": "259ef5a0df4c4d4fdcfd4ee2950108ae", "End": "2035f089ea5ebfd7723eb5c1b9ceb0b1", "Id": "78007cd68c95c07599dc7742367563ab", "IsHidden": "False" }, { "Start": "bc37b198b63ba71e568ae6dfac9e654e", "End": "0b13bf703f6dc6edef21ec6272b4ab93", "Id": "c8c91fc7c60ab17536e0d5c8ea429800", "IsHidden": "False" }, { "Start": "fd285d8aed58aab066dc775823622c29", "End": "96928476960b0deede6036af73b1bcc3", "Id": "1223582740007592d715714ea23fd4b4", "IsHidden": "False" } ], "Dependencies": [], "NodeLibraryDependencies": [], "EnableLegacyPolyCurveBehavior": true, "Thumbnail": "", "GraphDocumentationURL": null, "ExtensionWorkspaceData": [ { "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670", "Name": "Properties", "Version": "3.3", "Data": {} }, { "ExtensionGuid": "DFBD9CC0-DB40-457A-939E-8C8555555A9D", "Name": "Generative Design", "Version": "8.2", "Data": {} } ], "Author": "RÜM", "Linting": { "activeLinter": "None", "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a", "warningCount": 0, "errorCount": 0 }, "Bindings": [], "View": { "Dynamo": { "ScaleFactor": 1, "HasRunWithoutCrash": false, "IsVisibleInDynamoLibrary": true, "Version": "3.3.0.6316", "RunType": "Manual", "RunPeriod": "1000" }, "Camera": { "Name": "_Background Preview", "EyeX": 0, "EyeY": 0, "EyeZ": 10, "LookX": 0, "LookY": 0, "LookZ": 0, "UpX": 0, "UpY": 1, "UpZ": 0 }, "ConnectorPins": [], "Annotations": [], "X": 0, "Y": 0, "Zoom": 0.75, "NodeViews": [ { "Id": "c19c5b68170ea4fe45f5c3bd6bc9871c", "Name": "IN[0]", "IsSetAsInput": false, "IsSetAsOutput": false, "Excluded": false, "ShowGeometry": true, "X": 40, "Y": 220 }, { "Id": "f055dd73b1dd707d077920ac11bdb56a", "Name": "IN[1]", "IsSetAsInput": false, "IsSetAsOutput": false, "Excluded": false, "ShowGeometry": true, "X": 240, "Y": 220 }, { "Id": "e17eb596fd78d50592ce7b51da8732bd", "Name": "IN[2]", "IsSetAsInput": false, "IsSetAsOutput": false, "Excluded": false, "ShowGeometry": true, "X": 440, "Y": 220 }, { "Id": "09db70c9bb2b86187dd5656a08c06898", "Name": "RÜM 05 Exportar hojas PDF", "IsSetAsInput": false, "IsSetAsOutput": false, "Excluded": false, "ShowGeometry": true, "X": 520, "Y": 260 } ] } }