<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>idea ConnectTo Revit API method to behave similar to the Revit UI connection of mechanical elements. en Revit Ideas</title>
    <link>https://forums.autodesk.com/t5/revit-ideas/connectto-revit-api-method-to-behave-similar-to-the-revit-ui/idi-p/10426780</link>
    <description>&lt;P&gt;Below the confirmation from the Revit Autodesk Developers that ConnectTo Revit API method is not enough to connect mechanical elements&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ABertzouanis9F98Y_0-1624900685210.png" style="width: 712px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/935295iB3F909B72D1814F1/image-dimensions/712x411?v=v2" width="712" height="411" role="button" title="ABertzouanis9F98Y_0-1624900685210.png" alt="ABertzouanis9F98Y_0-1624900685210.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/revit-api-forum/connecting-duct-fitting-to-duct-the-fitting-does-not-inherite/m-p/10410748#M56686" target="_blank" rel="noopener"&gt;https://forums.autodesk.com/t5/revit-api-forum/connecting-duct-fitting-to-duct-the-fitting-does-not-inherite/m-p/10410748#M56686&lt;/A&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 28 Jun 2021 17:21:47 GMT</pubDate>
    <dc:creator>ABertzouanis9F98Y</dc:creator>
    <dc:date>2021-06-28T17:21:47Z</dc:date>
    <item>
      <title>ConnectTo Revit API method to behave similar to the Revit UI connection of mechanical elements.</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/connectto-revit-api-method-to-behave-similar-to-the-revit-ui/idi-p/10426780</link>
      <description>&lt;P&gt;Below the confirmation from the Revit Autodesk Developers that ConnectTo Revit API method is not enough to connect mechanical elements&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ABertzouanis9F98Y_0-1624900685210.png" style="width: 712px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/935295iB3F909B72D1814F1/image-dimensions/712x411?v=v2" width="712" height="411" role="button" title="ABertzouanis9F98Y_0-1624900685210.png" alt="ABertzouanis9F98Y_0-1624900685210.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/revit-api-forum/connecting-duct-fitting-to-duct-the-fitting-does-not-inherite/m-p/10410748#M56686" target="_blank" rel="noopener"&gt;https://forums.autodesk.com/t5/revit-api-forum/connecting-duct-fitting-to-duct-the-fitting-does-not-inherite/m-p/10410748#M56686&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 28 Jun 2021 17:21:47 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/connectto-revit-api-method-to-behave-similar-to-the-revit-ui/idi-p/10426780</guid>
      <dc:creator>ABertzouanis9F98Y</dc:creator>
      <dc:date>2021-06-28T17:21:47Z</dc:date>
    </item>
    <item>
      <title>Re: ConnectTo Revit API method to behave similar to the Revit UI connection of mechanical elements.</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/connectto-revit-api-method-to-behave-similar-to-the-revit-ui/idc-p/11840418#M50446</link>
      <description>&lt;P&gt;Yeah, just spent a while dealing with this issue.&lt;BR /&gt;I spawn a plumbing fixture on a pipe face using that method: doc.Create.&lt;SPAN&gt;NewFamilyInstance&lt;/SPAN&gt;(pipeface,pipefacecenter,&lt;SPAN&gt;XYZ&lt;/SPAN&gt;(&lt;SPAN&gt;0&lt;/SPAN&gt;,&lt;SPAN&gt;0&lt;/SPAN&gt;,&lt;SPAN&gt;0&lt;/SPAN&gt;),fixturefamilysymbol)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the fixturefamilysymbol is a simple cylinder with a connector set to "global".&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="richardlaroche_1-1679512800317.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1192129i79E3E5ACF95EE46D/image-size/medium?v=v2&amp;amp;px=400" role="button" title="richardlaroche_1-1679512800317.png" alt="richardlaroche_1-1679512800317.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The family has a "Nominal Diameter" family parameter set to instance and the connector diameter is referenced to it.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="richardlaroche_0-1679512730639.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1192128i95B845126C8FC5E0/image-size/medium?v=v2&amp;amp;px=400" role="button" title="richardlaroche_0-1679512730639.png" alt="richardlaroche_0-1679512730639.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then I try to connect the&amp;nbsp; &lt;SPAN&gt;NewFamilyInstance&lt;/SPAN&gt;'s connector to the reference pipe connector using &lt;SPAN&gt;connecfrom = list(newfamilyinstance.MEPModel.ConnectorManager.UnusedConnectors)[0].ConnectTo( list(referencepipe.ConnectorManager.UnusedConnectors)[0])&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;(I did all the necessary filtering before to keep elements with only one &lt;SPAN&gt;UnusedConnector&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;Sometime it does work. Sometimes not. Here is an example:&lt;BR /&gt;&lt;div class="lia-vid-container video-embed-center"&gt;&lt;div id="lia-vid-6323103932112w864h540r660" class="lia-video-brightcove-player-container"&gt;&lt;video-js data-video-id="6323103932112" data-account="6057940548001" data-player="default" data-embed="default" class="vjs-fluid" controls="" data-application-id="" style="width: 100%; height: 100%;"&gt;&lt;/video-js&gt;&lt;/div&gt;&lt;script src="https://players.brightcove.net/6057940548001/default_default/index.min.js"&gt;&lt;/script&gt;&lt;a class="video-embed-link" href="https://forums.autodesk.com/t5/video/gallerypage/video-id/6323103932112"&gt;(ver en Mis vídeos)&lt;/a&gt;&lt;/div&gt;&lt;div class="lia-vid-container video-embed-center"&gt;&lt;div id="lia-vid-6323103236112w864h540r814" class="lia-video-brightcove-player-container"&gt;&lt;video-js data-video-id="6323103236112" data-account="6057940548001" data-player="default" data-embed="default" class="vjs-fluid" controls="" data-application-id="" style="width: 100%; height: 100%;"&gt;&lt;/video-js&gt;&lt;/div&gt;&lt;script src="https://players.brightcove.net/6057940548001/default_default/index.min.js"&gt;&lt;/script&gt;&lt;a class="video-embed-link" href="https://forums.autodesk.com/t5/video/gallerypage/video-id/6323103236112"&gt;(ver en Mis vídeos)&lt;/a&gt;&lt;/div&gt;&lt;BR /&gt;&lt;BR /&gt;Here is my code (please forgive my brutal style and overkill boilerplate):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&amp;nbsp;clr&lt;BR /&gt;clr.&lt;SPAN&gt;AddReference&lt;/SPAN&gt;(&lt;SPAN&gt;'ProtoGeometry'&lt;/SPAN&gt;)&lt;BR /&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&amp;nbsp;Autodesk.DesignScript.Geometry&amp;nbsp;&lt;SPAN&gt;import&lt;/SPAN&gt;&amp;nbsp;*&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# Import RevitAPI&lt;/SPAN&gt;&lt;BR /&gt;clr.&lt;SPAN&gt;AddReference&lt;/SPAN&gt;(&lt;SPAN&gt;"RevitAPI"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&amp;nbsp;Autodesk&lt;BR /&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&amp;nbsp;Autodesk.Revit.DB&amp;nbsp;&lt;SPAN&gt;import&lt;/SPAN&gt;&amp;nbsp;*&lt;BR /&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&amp;nbsp;System.Collections.Generic&amp;nbsp;&lt;SPAN&gt;import&lt;/SPAN&gt;&amp;nbsp;*&lt;BR /&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&amp;nbsp;Autodesk.Revit.Attributes&amp;nbsp;&lt;SPAN&gt;import&lt;/SPAN&gt;*&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&amp;nbsp;clr&lt;BR /&gt;clr.&lt;SPAN&gt;AddReference&lt;/SPAN&gt;(&lt;SPAN&gt;"RevitAPIUI"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;Autodesk.Revit.UI&amp;nbsp;&lt;SPAN&gt;import&lt;/SPAN&gt;&amp;nbsp;*&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# Import DocumentManager and TransactionManager&lt;/SPAN&gt;&lt;BR /&gt;clr.&lt;SPAN&gt;AddReference&lt;/SPAN&gt;(&lt;SPAN&gt;"RevitServices"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&amp;nbsp;RevitServices&lt;BR /&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&amp;nbsp;RevitServices.Persistence&amp;nbsp;&lt;SPAN&gt;import&lt;/SPAN&gt;&amp;nbsp;DocumentManager&lt;BR /&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&amp;nbsp;RevitServices.Transactions&amp;nbsp;&lt;SPAN&gt;import&lt;/SPAN&gt;&amp;nbsp;TransactionManager&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&amp;nbsp;System.Collections.Generic&amp;nbsp;&lt;SPAN&gt;import&lt;/SPAN&gt;&amp;nbsp;*&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# Import Revit Nodes&lt;/SPAN&gt;&lt;BR /&gt;clr.&lt;SPAN&gt;AddReference&lt;/SPAN&gt;(&lt;SPAN&gt;"RevitNodes"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&amp;nbsp;Revit&lt;BR /&gt;clr.&lt;SPAN&gt;ImportExtensions&lt;/SPAN&gt;(Revit.Elements)&lt;BR /&gt;clr.&lt;SPAN&gt;ImportExtensions&lt;/SPAN&gt;(Revit.GeometryConversion)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# Import python library&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&amp;nbsp;sys&lt;BR /&gt;pyt_path =&amp;nbsp;&amp;nbsp;r&lt;SPAN&gt;"C:\Program Files\Autodesk\Revit 2022\AddIns\DynamoForRevit"&lt;/SPAN&gt;&lt;BR /&gt;sys.path.&lt;SPAN&gt;append&lt;/SPAN&gt;(pyt_path)&lt;BR /&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&amp;nbsp;os&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&amp;nbsp;subprocess&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&amp;nbsp;System&lt;BR /&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&amp;nbsp;System&amp;nbsp;&lt;SPAN&gt;import&lt;/SPAN&gt;&amp;nbsp;*&lt;BR /&gt;&lt;BR /&gt;doc = DocumentManager.Instance.CurrentDBDocument&lt;BR /&gt;&lt;SPAN&gt;# The inputs to this node will be stored as a list in the IN variables.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;def&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;getParamValue&lt;/SPAN&gt;(element,param):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;try&lt;/SPAN&gt;:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DB = element.&lt;SPAN&gt;GetOrderedParameters&lt;/SPAN&gt;()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;for&lt;/SPAN&gt;&amp;nbsp;i&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;DB:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;if&lt;/SPAN&gt;&amp;nbsp;i.Definition.Name == param:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;if&lt;/SPAN&gt;&amp;nbsp;i.StorageType ==&amp;nbsp;&lt;SPAN&gt;2&lt;/SPAN&gt;:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;value = (i.&lt;SPAN&gt;AsDouble&lt;/SPAN&gt;())&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;elif&lt;/SPAN&gt;&amp;nbsp;i.StorageType ==&amp;nbsp;&lt;SPAN&gt;1&lt;/SPAN&gt;:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;value = (i.&lt;SPAN&gt;AsInteger&lt;/SPAN&gt;())&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;elif&lt;/SPAN&gt;&amp;nbsp;i.StorageType ==&amp;nbsp;&lt;SPAN&gt;3&lt;/SPAN&gt;:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;value = (i.&lt;SPAN&gt;AsString&lt;/SPAN&gt;())&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;else&lt;/SPAN&gt;: value = (i.&lt;SPAN&gt;AsElementId&lt;/SPAN&gt;())&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;except&lt;/SPAN&gt;:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;value = (&lt;SPAN&gt;"Aucune valeur trouvée"&lt;/SPAN&gt;)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;value&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;def&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;getParamObj&lt;/SPAN&gt;(element,param):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;valueout =&amp;nbsp;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;try&lt;/SPAN&gt;:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DB = element.&lt;SPAN&gt;GetOrderedParameters&lt;/SPAN&gt;()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;for&lt;/SPAN&gt;&amp;nbsp;i&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;DB:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;if&lt;/SPAN&gt;&amp;nbsp;i.Definition.Name == param:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;valueout = i&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;except&lt;/SPAN&gt;:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;pass&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;valueout&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;def&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;getpipefaceformagicconnector&lt;/SPAN&gt;(wpipe):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pipe =&amp;nbsp;&lt;SPAN&gt;UnwrapElement&lt;/SPAN&gt;(wpipe)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cons =&amp;nbsp;&lt;SPAN&gt;list&lt;/SPAN&gt;(pipe.ConnectorManager.UnusedConnectors)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;if&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;len&lt;/SPAN&gt;(cons) &amp;gt;&lt;SPAN&gt;0&lt;/SPAN&gt;:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;geomenum = pipe.&lt;SPAN&gt;get_Geometry&lt;/SPAN&gt;(opt)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pipecurve = pipe.Location.Curve&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;solids = []&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pipefaces = []&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;for&lt;/SPAN&gt;&amp;nbsp;geobj&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;geomenum:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;solids.&lt;SPAN&gt;append&lt;/SPAN&gt;(geobj)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;for&lt;/SPAN&gt;&amp;nbsp;solid&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;solids:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;flist = solid.Faces&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;for&lt;/SPAN&gt;&amp;nbsp;fc&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;flist:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;if&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;"PlanarFace"&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;fc.&lt;SPAN&gt;GetType&lt;/SPAN&gt;().&lt;SPAN&gt;ToString&lt;/SPAN&gt;():&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pipefaces.&lt;SPAN&gt;append&lt;/SPAN&gt;(fc)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;for&lt;/SPAN&gt;&amp;nbsp;con&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;cons:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;for&lt;/SPAN&gt;&amp;nbsp;pipeface&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;pipefaces:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;if&lt;/SPAN&gt;&amp;nbsp;pipecurve.&lt;SPAN&gt;GetEndPoint&lt;/SPAN&gt;(&lt;SPAN&gt;0&lt;/SPAN&gt;).&lt;SPAN&gt;DistanceTo&lt;/SPAN&gt;(con.Origin)==&lt;SPAN&gt;0&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;and&lt;/SPAN&gt;&amp;nbsp;pipeface.Origin.&lt;SPAN&gt;DistanceTo&lt;/SPAN&gt;(con.Origin) -&amp;nbsp;&lt;SPAN&gt;getParamValue&lt;/SPAN&gt;(pipe,&lt;SPAN&gt;"Outside Diameter"&lt;/SPAN&gt;)/&lt;SPAN&gt;2&lt;/SPAN&gt;&amp;nbsp;&amp;lt;&amp;nbsp;&lt;SPAN&gt;0.01&lt;/SPAN&gt;:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;pipeface&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;elif&lt;/SPAN&gt;&amp;nbsp;pipecurve.&lt;SPAN&gt;GetEndPoint&lt;/SPAN&gt;(&lt;SPAN&gt;1&lt;/SPAN&gt;).&lt;SPAN&gt;DistanceTo&lt;/SPAN&gt;(con.Origin)==&lt;SPAN&gt;0&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;and&lt;/SPAN&gt;&amp;nbsp;pipeface.Origin.&lt;SPAN&gt;DistanceTo&lt;/SPAN&gt;(con.Origin)-&amp;nbsp;&lt;SPAN&gt;getParamValue&lt;/SPAN&gt;(pipe,&lt;SPAN&gt;"Outside Diameter"&lt;/SPAN&gt;)/&lt;SPAN&gt;2&lt;/SPAN&gt;&amp;nbsp;&amp;lt;&amp;nbsp;&lt;SPAN&gt;0.01&lt;/SPAN&gt;:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;pipeface&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;[&lt;SPAN&gt;"Error"&lt;/SPAN&gt;,&lt;SPAN&gt;UnwrapElement&lt;/SPAN&gt;(wpipe)]&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;def&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;getpipefacecenterformagicconnector&lt;/SPAN&gt;(wpipe):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pipe =&amp;nbsp;&lt;SPAN&gt;UnwrapElement&lt;/SPAN&gt;(wpipe)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cons =&amp;nbsp;&lt;SPAN&gt;list&lt;/SPAN&gt;(pipe.ConnectorManager.UnusedConnectors)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;if&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;len&lt;/SPAN&gt;(cons) &amp;gt;&lt;SPAN&gt;0&lt;/SPAN&gt;:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;geomenum = pipe.&lt;SPAN&gt;get_Geometry&lt;/SPAN&gt;(opt)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pipecurve = pipe.Location.Curve&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;solids = []&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pipefaces = []&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;for&lt;/SPAN&gt;&amp;nbsp;geobj&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;geomenum:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;solids.&lt;SPAN&gt;append&lt;/SPAN&gt;(geobj)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;for&lt;/SPAN&gt;&amp;nbsp;solid&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;solids:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;flist = solid.Faces&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;for&lt;/SPAN&gt;&amp;nbsp;fc&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;flist:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;if&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;"PlanarFace"&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;fc.&lt;SPAN&gt;GetType&lt;/SPAN&gt;().&lt;SPAN&gt;ToString&lt;/SPAN&gt;():&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pipefaces.&lt;SPAN&gt;append&lt;/SPAN&gt;(fc)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;for&lt;/SPAN&gt;&amp;nbsp;con&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;cons:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;for&lt;/SPAN&gt;&amp;nbsp;pipeface&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;pipefaces:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;if&lt;/SPAN&gt;&amp;nbsp;pipecurve.&lt;SPAN&gt;GetEndPoint&lt;/SPAN&gt;(&lt;SPAN&gt;0&lt;/SPAN&gt;).&lt;SPAN&gt;DistanceTo&lt;/SPAN&gt;(con.Origin)==&lt;SPAN&gt;0&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;and&lt;/SPAN&gt;&amp;nbsp;pipeface.Origin.&lt;SPAN&gt;DistanceTo&lt;/SPAN&gt;(con.Origin) -&amp;nbsp;&lt;SPAN&gt;getParamValue&lt;/SPAN&gt;(pipe,&lt;SPAN&gt;"Outside Diameter"&lt;/SPAN&gt;)/&lt;SPAN&gt;2&lt;/SPAN&gt;&amp;nbsp;&amp;lt;&amp;nbsp;&lt;SPAN&gt;0.01&lt;/SPAN&gt;:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;pipecurve.&lt;SPAN&gt;GetEndPoint&lt;/SPAN&gt;(&lt;SPAN&gt;0&lt;/SPAN&gt;)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;elif&lt;/SPAN&gt;&amp;nbsp;pipecurve.&lt;SPAN&gt;GetEndPoint&lt;/SPAN&gt;(&lt;SPAN&gt;1&lt;/SPAN&gt;).&lt;SPAN&gt;DistanceTo&lt;/SPAN&gt;(con.Origin)==&lt;SPAN&gt;0&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;and&lt;/SPAN&gt;&amp;nbsp;pipeface.Origin.&lt;SPAN&gt;DistanceTo&lt;/SPAN&gt;(con.Origin)-&amp;nbsp;&lt;SPAN&gt;getParamValue&lt;/SPAN&gt;(pipe,&lt;SPAN&gt;"Outside Diameter"&lt;/SPAN&gt;)/&lt;SPAN&gt;2&lt;/SPAN&gt;&amp;nbsp;&amp;lt;&amp;nbsp;&lt;SPAN&gt;0.01&lt;/SPAN&gt;:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;pipecurve.&lt;SPAN&gt;GetEndPoint&lt;/SPAN&gt;(&lt;SPAN&gt;1&lt;/SPAN&gt;)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;listout.&lt;SPAN&gt;append&lt;/SPAN&gt;([&lt;SPAN&gt;"Error"&lt;/SPAN&gt;,&lt;SPAN&gt;UnwrapElement&lt;/SPAN&gt;(wpipe)])&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;def&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;getpipeconnectorformagicconnector&lt;/SPAN&gt;(wpipe):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pipe =&amp;nbsp;&lt;SPAN&gt;UnwrapElement&lt;/SPAN&gt;(wpipe)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cons =&amp;nbsp;&lt;SPAN&gt;list&lt;/SPAN&gt;(pipe.ConnectorManager.UnusedConnectors)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;if&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;len&lt;/SPAN&gt;(cons) &amp;gt;&lt;SPAN&gt;0&lt;/SPAN&gt;:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;geomenum = pipe.&lt;SPAN&gt;get_Geometry&lt;/SPAN&gt;(opt)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pipecurve = pipe.Location.Curve&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;solids = []&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pipefaces = []&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;for&lt;/SPAN&gt;&amp;nbsp;geobj&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;geomenum:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;solids.&lt;SPAN&gt;append&lt;/SPAN&gt;(geobj)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;for&lt;/SPAN&gt;&amp;nbsp;solid&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;solids:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;flist = solid.Faces&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;for&lt;/SPAN&gt;&amp;nbsp;fc&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;flist:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;if&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;"PlanarFace"&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;fc.&lt;SPAN&gt;GetType&lt;/SPAN&gt;().&lt;SPAN&gt;ToString&lt;/SPAN&gt;():&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pipefaces.&lt;SPAN&gt;append&lt;/SPAN&gt;(fc)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;for&lt;/SPAN&gt;&amp;nbsp;con&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;cons:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;for&lt;/SPAN&gt;&amp;nbsp;pipeface&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;pipefaces:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;if&lt;/SPAN&gt;&amp;nbsp;pipecurve.&lt;SPAN&gt;GetEndPoint&lt;/SPAN&gt;(&lt;SPAN&gt;0&lt;/SPAN&gt;).&lt;SPAN&gt;DistanceTo&lt;/SPAN&gt;(con.Origin)==&lt;SPAN&gt;0&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;and&lt;/SPAN&gt;&amp;nbsp;pipeface.Origin.&lt;SPAN&gt;DistanceTo&lt;/SPAN&gt;(con.Origin) -&amp;nbsp;&lt;SPAN&gt;getParamValue&lt;/SPAN&gt;(pipe,&lt;SPAN&gt;"Outside Diameter"&lt;/SPAN&gt;)/&lt;SPAN&gt;2&lt;/SPAN&gt;&amp;nbsp;&amp;lt;&amp;nbsp;&lt;SPAN&gt;0.01&lt;/SPAN&gt;:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;con&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;elif&lt;/SPAN&gt;&amp;nbsp;pipecurve.&lt;SPAN&gt;GetEndPoint&lt;/SPAN&gt;(&lt;SPAN&gt;1&lt;/SPAN&gt;).&lt;SPAN&gt;DistanceTo&lt;/SPAN&gt;(con.Origin)==&lt;SPAN&gt;0&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;and&lt;/SPAN&gt;&amp;nbsp;pipeface.Origin.&lt;SPAN&gt;DistanceTo&lt;/SPAN&gt;(con.Origin)-&amp;nbsp;&lt;SPAN&gt;getParamValue&lt;/SPAN&gt;(pipe,&lt;SPAN&gt;"Outside Diameter"&lt;/SPAN&gt;)/&lt;SPAN&gt;2&lt;/SPAN&gt;&amp;nbsp;&amp;lt;&amp;nbsp;&lt;SPAN&gt;0.01&lt;/SPAN&gt;:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;con&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;[&lt;SPAN&gt;"Error"&lt;/SPAN&gt;,&lt;SPAN&gt;UnwrapElement&lt;/SPAN&gt;(wpipe)]&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;def&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;getMagicConnectorFamTyp&lt;/SPAN&gt;(document):&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;allPlumbingfixturesTypesInProject =&amp;nbsp;&lt;SPAN&gt;FilteredElementCollector&lt;/SPAN&gt;(document).&lt;SPAN&gt;OfCategory&lt;/SPAN&gt;(BuiltInCategory.OST_PlumbingFixtures).&lt;SPAN&gt;WhereElementIsElementType&lt;/SPAN&gt;().&lt;SPAN&gt;ToElements&lt;/SPAN&gt;()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pftinsert = []&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;for&lt;/SPAN&gt;&amp;nbsp;pbft&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;allPlumbingfixturesTypesInProject:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pbftType = pbft.&lt;SPAN&gt;get_Parameter&lt;/SPAN&gt;(BuiltInParameter.SYMBOL_NAME_PARAM)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;if&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;"Magic"&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;in&lt;/SPAN&gt;&amp;nbsp;pbftType.&lt;SPAN&gt;AsString&lt;/SPAN&gt;():&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pftinsert.&lt;SPAN&gt;append&lt;/SPAN&gt;(pbft)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TransactionManager.Instance.&lt;SPAN&gt;EnsureInTransaction&lt;/SPAN&gt;(doc)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pbft.&lt;SPAN&gt;Activate&lt;/SPAN&gt;()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TransactionManager.Instance.&lt;SPAN&gt;TransactionTaskDone&lt;/SPAN&gt;()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;pbft&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;return&lt;/SPAN&gt;&amp;nbsp;None&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;TransactionManager.Instance.&lt;SPAN&gt;EnsureInTransaction&lt;/SPAN&gt;(doc)&lt;BR /&gt;&lt;BR /&gt;Connecto = []&lt;BR /&gt;RefFace = []&lt;BR /&gt;RefLines = []&lt;BR /&gt;listout = []&lt;BR /&gt;opt =&amp;nbsp;&lt;SPAN&gt;Options&lt;/SPAN&gt;()&lt;BR /&gt;opt.ComputeReferences = True&lt;BR /&gt;mcft =&amp;nbsp;&lt;SPAN&gt;getMagicConnectorFamTyp&lt;/SPAN&gt;(doc)&lt;BR /&gt;wpipe = doc.&lt;SPAN&gt;GetElement&lt;/SPAN&gt;(&lt;SPAN&gt;ElementId&lt;/SPAN&gt;(&lt;SPAN&gt;4869586&lt;/SPAN&gt;))&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;pipeface =&amp;nbsp;&lt;SPAN&gt;getpipefaceformagicconnector&lt;/SPAN&gt;(wpipe)&lt;BR /&gt;pipefacecenter =&amp;nbsp;&lt;SPAN&gt;getpipefacecenterformagicconnector&lt;/SPAN&gt;(wpipe)&lt;BR /&gt;&lt;SPAN&gt;#faceNormals.append(pipeface.FaceNormal)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#pipecurve = UnwrapElement(wpipe).Location.Curve&lt;/SPAN&gt;&lt;BR /&gt;Connecto =&amp;nbsp;&lt;SPAN&gt;getpipeconnectorformagicconnector&lt;/SPAN&gt;(wpipe)&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;MagicConnector = doc.Create.&lt;SPAN&gt;NewFamilyInstance&lt;/SPAN&gt;(pipeface,pipefacecenter,&lt;SPAN&gt;XYZ&lt;/SPAN&gt;(&lt;SPAN&gt;0&lt;/SPAN&gt;,&lt;SPAN&gt;0&lt;/SPAN&gt;,&lt;SPAN&gt;0&lt;/SPAN&gt;),mcft)&lt;BR /&gt;listout.&lt;SPAN&gt;append&lt;/SPAN&gt;([MagicConnector,wpipe,pipeface,pipefacecenter])&lt;BR /&gt;level =&amp;nbsp;&lt;SPAN&gt;UnwrapElement&lt;/SPAN&gt;(wpipe).LevelId&lt;BR /&gt;phase =&amp;nbsp;&lt;SPAN&gt;UnwrapElement&lt;/SPAN&gt;(wpipe).&lt;SPAN&gt;get_Parameter&lt;/SPAN&gt;(BuiltInParameter.PHASE_CREATED).&lt;SPAN&gt;AsElementId&lt;/SPAN&gt;()&lt;BR /&gt;DiamAssign =&amp;nbsp;&lt;SPAN&gt;getParamValue&lt;/SPAN&gt;(&lt;SPAN&gt;UnwrapElement&lt;/SPAN&gt;(wpipe),&lt;SPAN&gt;"Diameter"&lt;/SPAN&gt;)&lt;BR /&gt;listout.&lt;SPAN&gt;append&lt;/SPAN&gt;(DiamAssign)&lt;BR /&gt;MagicConnDiameter =&amp;nbsp;&lt;SPAN&gt;getParamObj&lt;/SPAN&gt;(MagicConnector,&lt;SPAN&gt;"Nominal Diameter"&lt;/SPAN&gt;)&lt;BR /&gt;MagicConnDiameter.&lt;SPAN&gt;Set&lt;/SPAN&gt;(DiamAssign)&lt;BR /&gt;&lt;SPAN&gt;#MagicConnOffsetfromHost = getParamObj(MagicConnector,"Offset from Host")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#MagicConnOffsetfromHost.Set(8/304.8)&lt;/SPAN&gt;&lt;BR /&gt;MagicConnector.&lt;SPAN&gt;get_Parameter&lt;/SPAN&gt;(BuiltInParameter.PHASE_CREATED).&lt;SPAN&gt;Set&lt;/SPAN&gt;(phase)&lt;BR /&gt;MagicConnHWFU =&amp;nbsp;&lt;SPAN&gt;getParamObj&lt;/SPAN&gt;(doc.&lt;SPAN&gt;GetElement&lt;/SPAN&gt;(MagicConnector.&lt;SPAN&gt;GetTypeId&lt;/SPAN&gt;()),&lt;SPAN&gt;"CWFU"&lt;/SPAN&gt;)&lt;BR /&gt;MagicConnHWFU.&lt;SPAN&gt;Set&lt;/SPAN&gt;(&lt;SPAN&gt;10&lt;/SPAN&gt;)&lt;BR /&gt;MagicConnHWFU =&amp;nbsp;&lt;SPAN&gt;getParamObj&lt;/SPAN&gt;(doc.&lt;SPAN&gt;GetElement&lt;/SPAN&gt;(MagicConnector.&lt;SPAN&gt;GetTypeId&lt;/SPAN&gt;()),&lt;SPAN&gt;"HWFU"&lt;/SPAN&gt;)&lt;BR /&gt;MagicConnHWFU.&lt;SPAN&gt;Set&lt;/SPAN&gt;(&lt;SPAN&gt;0&lt;/SPAN&gt;)&lt;BR /&gt;MagicConnHWFU =&amp;nbsp;&lt;SPAN&gt;getParamObj&lt;/SPAN&gt;(doc.&lt;SPAN&gt;GetElement&lt;/SPAN&gt;(MagicConnector.&lt;SPAN&gt;GetTypeId&lt;/SPAN&gt;()),&lt;SPAN&gt;"WFU"&lt;/SPAN&gt;)&lt;BR /&gt;MagicConnHWFU.&lt;SPAN&gt;Set&lt;/SPAN&gt;(&lt;SPAN&gt;0&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;try&lt;/SPAN&gt;:&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;connecfrom =&amp;nbsp;&lt;SPAN&gt;list&lt;/SPAN&gt;(MagicConnector.MEPModel.ConnectorManager.UnusedConnectors)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;connecfrom[&lt;SPAN&gt;0&lt;/SPAN&gt;].&lt;SPAN&gt;ConnectTo&lt;/SPAN&gt;(Connecto)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;listout.&lt;SPAN&gt;append&lt;/SPAN&gt;([MagicConnector,&lt;SPAN&gt;"connect OK"&lt;/SPAN&gt;,Connecto,connecfrom[&lt;SPAN&gt;0&lt;/SPAN&gt;]])&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;SPAN&gt;except&lt;/SPAN&gt;:&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;connecfrom =&amp;nbsp;&lt;SPAN&gt;list&lt;/SPAN&gt;(MagicConnector.MEPModel.ConnectorManager.UnusedConnectors)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;listout.&lt;SPAN&gt;append&lt;/SPAN&gt;([MagicConnector,&lt;SPAN&gt;"connect fail"&lt;/SPAN&gt;,Connecto,connecfrom[&lt;SPAN&gt;0&lt;/SPAN&gt;]])&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;TransactionManager.Instance.&lt;SPAN&gt;TransactionTaskDone&lt;/SPAN&gt;()&lt;BR /&gt;&lt;SPAN&gt;# Assign your output to the OUT variable.&lt;/SPAN&gt;&lt;BR /&gt;OUT = listout&lt;/P&gt;</description>
      <pubDate>Thu, 23 Mar 2023 01:55:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/connectto-revit-api-method-to-behave-similar-to-the-revit-ui/idc-p/11840418#M50446</guid>
      <dc:creator>richard.laroche</dc:creator>
      <dc:date>2023-03-23T01:55:59Z</dc:date>
    </item>
    <item>
      <title>Re: ConnectTo Revit API method to behave similar to the Revit UI connection of mechanical elements.</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/connectto-revit-api-method-to-behave-similar-to-the-revit-ui/idc-p/11842021#M50462</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5806790"&gt;@richard.laroche&lt;/a&gt;&lt;/P&gt;&lt;P&gt;Many thanks for your message and sharing videos and code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This Idea is about Revit API functionality which is not&amp;nbsp; same to the Revit UI. "ConnectTo" Method works fine to connect elements only when the &lt;STRONG&gt;connection points are at exact same position between the elements&lt;/STRONG&gt; and when &lt;STRONG&gt;no&amp;nbsp;other modification in geometry size or other parameter is necessary &lt;/STRONG&gt;for the connection to work.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Question:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Could you please confirm if in your first video that the pipe and fitting element are at the correct location having their connection points at exact same position?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;To verify that the "connectTo" method works:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;1. Connect the vertical pipe to the fitting using the Revit UI.&lt;/P&gt;&lt;P&gt;2. Disconnect the Pipe from the Fitting using the Revit UI.&lt;/P&gt;&lt;P&gt;(Now that your elements are in the position having connection points at exact same location and elements do not need adjustment in their geometry and size and other parameters)&lt;/P&gt;&lt;P&gt;3. Try to use the "connectTo" method to connect pipe to fitting.&lt;/P&gt;&lt;P&gt;(This should work)&lt;/P&gt;</description>
      <pubDate>Thu, 23 Mar 2023 12:20:36 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/connectto-revit-api-method-to-behave-similar-to-the-revit-ui/idc-p/11842021#M50462</guid>
      <dc:creator>ABertzouanis9F98Y</dc:creator>
      <dc:date>2023-03-23T12:20:36Z</dc:date>
    </item>
    <item>
      <title>Re: ConnectTo Revit API method to behave similar to the Revit UI connection of mechanical elements.</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/connectto-revit-api-method-to-behave-similar-to-the-revit-ui/idc-p/11842984#M50466</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/10821704"&gt;@ABertzouanis9F98Y&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for checking out my issue.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I changed the XYZ used in the NewFamilyInstance to use the connector origin instead of the pipe face center but they have the exact same XYZ:&lt;/P&gt;&lt;P&gt;pipefacecenterXYZ =&amp;nbsp;list(UnwrapElement(wpipe).ConnectorManager.UnusedConnectors)[0].Origin&lt;/P&gt;&lt;P&gt;pipeconnectorXYZ = list(pipe.ConnectorManager.UnusedConnectors)[0]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;verifying pipefacecenterXYZ.DistanceTo(pipeconnectorXYZ) I get 0. So I know that the pipe connector is really at the face center.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But then I verify my plumbing fixture connector and the distance to the pipe connector, I get something weird for the pipe I showed in my forst video:&lt;BR /&gt;(list(MagicConnector.MEPModel.ConnectorManager.UnusedConnectors)[0].Origin).DistanceTo(pipeconnectorXYZ)/304.8 = 2.0588462975328&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So I tried this test with another pipe where the script actually works without an error (as in my second video) and I got that:&lt;/P&gt;&lt;P&gt;(list(MagicConnector.MEPModel.ConnectorManager.UnusedConnectors)[0].Origin).DistanceTo(pipeconnectorXYZ)/304.8 = 2.1817385470803&lt;/P&gt;&lt;P&gt;But everything still works. So I will assume that this distance isn't the source of the problem.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also checked the family to make sure that the connector was created on the plumbing fixture's origin:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="richardlaroche_0-1679577297662.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1192502i36CCF254097BDD91/image-size/medium?v=v2&amp;amp;px=400" role="button" title="richardlaroche_0-1679577297662.png" alt="richardlaroche_0-1679577297662.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="richardlaroche_1-1679577346820.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1192504iCC8158819DE403C0/image-size/medium?v=v2&amp;amp;px=400" role="button" title="richardlaroche_1-1679577346820.png" alt="richardlaroche_1-1679577346820.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="richardlaroche_2-1679577396976.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1192505i037B2956C8EE1204/image-size/medium?v=v2&amp;amp;px=400" role="button" title="richardlaroche_2-1679577396976.png" alt="richardlaroche_2-1679577396976.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My last assumption is that the problem would be caused by the vertical orientation of the pipes. I only get an error for pipes that have disconnected ends in the vertical position.&lt;div class="lia-vid-container video-embed-center"&gt;&lt;div id="lia-vid-6323162750112w864h540r124" class="lia-video-brightcove-player-container"&gt;&lt;video-js data-video-id="6323162750112" data-account="6057940548001" data-player="default" data-embed="default" class="vjs-fluid" controls="" data-application-id="" style="width: 100%; height: 100%;"&gt;&lt;/video-js&gt;&lt;/div&gt;&lt;script src="https://players.brightcove.net/6057940548001/default_default/index.min.js"&gt;&lt;/script&gt;&lt;a class="video-embed-link" href="https://forums.autodesk.com/t5/video/gallerypage/video-id/6323162750112"&gt;(ver en Mis vídeos)&lt;/a&gt;&lt;/div&gt;&lt;div class="lia-vid-container video-embed-center"&gt;&lt;div id="lia-vid-6323164136112w864h540r260" class="lia-video-brightcove-player-container"&gt;&lt;video-js data-video-id="6323164136112" data-account="6057940548001" data-player="default" data-embed="default" class="vjs-fluid" controls="" data-application-id="" style="width: 100%; height: 100%;"&gt;&lt;/video-js&gt;&lt;/div&gt;&lt;script src="https://players.brightcove.net/6057940548001/default_default/index.min.js"&gt;&lt;/script&gt;&lt;a class="video-embed-link" href="https://forums.autodesk.com/t5/video/gallerypage/video-id/6323164136112"&gt;(ver en Mis vídeos)&lt;/a&gt;&lt;/div&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 23 Mar 2023 17:07:37 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/connectto-revit-api-method-to-behave-similar-to-the-revit-ui/idc-p/11842984#M50466</guid>
      <dc:creator>richard.laroche</dc:creator>
      <dc:date>2023-03-23T17:07:37Z</dc:date>
    </item>
    <item>
      <title>Re: ConnectTo Revit API method to behave similar to the Revit UI connection of mechanical elements.</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/connectto-revit-api-method-to-behave-similar-to-the-revit-ui/idc-p/11843106#M50468</link>
      <description>&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 23 Mar 2023 17:56:34 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/connectto-revit-api-method-to-behave-similar-to-the-revit-ui/idc-p/11843106#M50468</guid>
      <dc:creator>richard.laroche</dc:creator>
      <dc:date>2023-03-23T17:56:34Z</dc:date>
    </item>
    <item>
      <title>Re: ConnectTo Revit API method to behave similar to the Revit UI connection of mechanical elements.</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/connectto-revit-api-method-to-behave-similar-to-the-revit-ui/idc-p/11843108#M50469</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/10821704"&gt;@ABertzouanis9F98Y&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Just to be precise with the question you asked, yes I did try to:&lt;/P&gt;&lt;P&gt;1. Connect the vertical pipe to the fitting using the Revit UI.&lt;/P&gt;&lt;P&gt;2. Disconnect the Pipe from the Fitting using the Revit UI.&lt;/P&gt;&lt;P&gt;3. Try to use the "connectTo" method to connect pipe to fitting.&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It does work. Only problem is that it implies that I have to connect my plumbing fixture manually using the UI, which is exactly what I am trying to automate.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I will try to make other experiments with NewFamilyInstance methods using different arguments.&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 23 Mar 2023 17:55:55 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/connectto-revit-api-method-to-behave-similar-to-the-revit-ui/idc-p/11843108#M50469</guid>
      <dc:creator>richard.laroche</dc:creator>
      <dc:date>2023-03-23T17:55:55Z</dc:date>
    </item>
    <item>
      <title>Re: ConnectTo Revit API method to behave similar to the Revit UI connection of mechanical elements.</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/connectto-revit-api-method-to-behave-similar-to-the-revit-ui/idc-p/11859939#M50629</link>
      <description>&lt;P&gt;Thank you for the explanation and samples. I&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://autodesk.slack.com/archives/C0SR6NAP8/p1680191816198909" target="_blank" rel="nofollow noopener noreferrer"&gt;asked&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;the development team for their opinion and suggestions.&lt;/P&gt;</description>
      <pubDate>Thu, 30 Mar 2023 15:59:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/connectto-revit-api-method-to-behave-similar-to-the-revit-ui/idc-p/11859939#M50629</guid>
      <dc:creator>jeremy_tammik</dc:creator>
      <dc:date>2023-03-30T15:59:59Z</dc:date>
    </item>
    <item>
      <title>Re: ConnectTo Revit API method to behave similar to the Revit UI connection of mechanical elements.</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/connectto-revit-api-method-to-behave-similar-to-the-revit-ui/idc-p/11860340#M50653</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/824630"&gt;@jeremy_tammik&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for looking at this problem.&lt;BR /&gt;To help any person investigating into this, here is what I mentionned to you on another page:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tinkered something that works even though I dont't actually know why it does work.&lt;BR /&gt;I noticed that the FamilyInstance that I spawn always had doc.GetElement(MagicConnector.Id).Location.Point = XYZ(0,0,0)&lt;BR /&gt;All the time, even if I clearly see the object on the face of the pipe in the model.&lt;BR /&gt;So i just added a line of code before the "ConnectTo" and a 1mm "Offset from Host" to the familyinstance:&lt;BR /&gt;MagicConnOffsetfromHost = getParamObj(MagicConnector,"Offset from Host")&lt;BR /&gt;MagicConnOffsetfromHost.Set(1/304.8)&lt;BR /&gt;doc.GetElement(MagicConnector.Id).Location.Move(XYZ(0,0,0))&lt;BR /&gt;connecfrom = list(MagicConnector.MEPModel.ConnectorManager.UnusedConnectors)&lt;BR /&gt;connecfrom[0].ConnectTo(Connecto)&lt;/P&gt;&lt;P&gt;TaDam!&lt;BR /&gt;Now it works with vertical pipes.&lt;/P&gt;&lt;P&gt;I can send you the complete python code if needed.&lt;/P&gt;&lt;P&gt;Thanks for the quick reply!&lt;/P&gt;</description>
      <pubDate>Thu, 30 Mar 2023 18:08:34 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/connectto-revit-api-method-to-behave-similar-to-the-revit-ui/idc-p/11860340#M50653</guid>
      <dc:creator>richard.laroche</dc:creator>
      <dc:date>2023-03-30T18:08:34Z</dc:date>
    </item>
    <item>
      <title>Re: ConnectTo Revit API method to behave similar to the Revit UI connection of mechanical elements.</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/connectto-revit-api-method-to-behave-similar-to-the-revit-ui/idc-p/11862152#M50677</link>
      <description>&lt;P&gt;Many thanks to all for your valuable input and patience with this.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The development team replied:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The ConnectTo API was the barebone connection only. It does not have the rich capability of the UI. It has been a known issue for a long time. We will take this as an API feature request to be prioritized.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Checking the forum discussion, it seems the customer found some workaround to move forward; not sure how that impacts the priority. The underlying issue is real, valid and requires a fair amount of effort. Ideally, we like the UI and API user calling into the same method. Unfortunately, that is not the case of ConnectTo at this point.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We may explore the possibility of putting a wrapper and validation around the internal method RbsEditorUtils::RbsConnectionElementPickEditorSolution to expose that to the API. We logged a development ticket REVIT-205160 for this under MEP Mechanical Routing Solutions.&lt;/P&gt;</description>
      <pubDate>Fri, 31 Mar 2023 10:51:52 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/connectto-revit-api-method-to-behave-similar-to-the-revit-ui/idc-p/11862152#M50677</guid>
      <dc:creator>jeremy_tammik</dc:creator>
      <dc:date>2023-03-31T10:51:52Z</dc:date>
    </item>
  </channel>
</rss>

