<?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>topic Re: How to execute BooleanOperations on Revit-Solid by AutoCAD? in Revit API Forum</title>
    <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12193945#M10302</link>
    <description>&lt;P&gt;Well, after a few days of development.. My decision to transfer Boolean operations from Revit C# to OpenCascade C++ is starting to bring results!&lt;BR /&gt;Of course, there are still problems with data transformation and backward compatibility (there is still a lot of work to be done on this), but in general, the solution has the right to life.&lt;BR /&gt;Here I want to address the question of how soon it will be possible to solve the problem with Boolean operations in Revit? If it's not a matter of two weeks, apparently I will have to perform further operations in geometry based on OpenCascade&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Снимок экрана 2023-08-24 160728.jpg" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1257608i8C011623A0E9049B/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Снимок экрана 2023-08-24 160728.jpg" alt="Снимок экрана 2023-08-24 160728.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;</description>
    <pubDate>Thu, 24 Aug 2023 13:16:59 GMT</pubDate>
    <dc:creator>ankofl</dc:creator>
    <dc:date>2023-08-24T13:16:59Z</dc:date>
    <item>
      <title>How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12161537#M10293</link>
      <description>&lt;P&gt;We are all familiar with the problems with Boolean operations on solid objects. A lot of exceptions occur during the operations of union, intersection and subtraction. In one of the branches, it was proposed to export Revit-Solid to Cascad-Colid, perform painful and other operations in it, and upload back only the result of such calculations, or transfer Cascad-Solid back to Revit-Solid.&amp;nbsp;&lt;BR /&gt;SIX years after the beginning of this branch, the developers from Autodesk have not provided us with a working solution to this problem.&lt;BR /&gt;In my opinion, this is too complicated and time-consuming task to translate from Revit to Cascada, and it may be better to export Solid not to Cascad, but to AutoCAD, or rather use the loaded libraries to work with AutoCAD, but perform all operations in the Revit process. The already established export from DWG to RWT speaks in favor of this decision. Maybe it is possible to export Revit-Solid to AutoCAD-Solid and perform Boolean operations already there?&lt;/P&gt;</description>
      <pubDate>Thu, 10 Aug 2023 07:13:03 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12161537#M10293</guid>
      <dc:creator>ankofl</dc:creator>
      <dc:date>2023-08-10T07:13:03Z</dc:date>
    </item>
    <item>
      <title>Re: How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12161963#M10294</link>
      <description>&lt;P&gt;I've manually carried out boolean operations in AutoCad in the past (quite a while ago however) and I think you would likely get the same issues there unless they've updated what AutoCad uses since. People have noted that such operations are more stable in Dynamo since it uses a slightly different system so my focus would be more on that. It did occur to me that the reason could be the unit system. Since Revit uses ft and not a smaller unit such as inches or mm you have smaller number on the LHS of the decimal place and so the floating point errors also shift over. Or to put it another way the decimal part has errors that occur through operations that the integer part doesn't and by using ft you are relying on more decimal places for accuracy of the same real world sized object (around 3 more) than you would be for mm.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;All the units in Dynamo are converted to 'Dynamo Units' before such processing it seems. Would be interesting to test if you get more stability carrying out the operations after scaling the solids up SolidUtils.CreateTransformed (transform with uniform scale). You would likely have an issue if you then scale it back down (an edge too short) but it depends on the purpose of your operation i.e. calculating volume area vs needing to use in geometry. Perhaps I'm just clutching at straws since Dynamo uses it's own library also.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The other issue is that Revit doesn't appear to support all the forms of geometry that AutoCad does so you could end up after such operations in AutoCad having geometry that can't be brought back or is partial.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I think there is already a process in place for the connections which uses Advanced steel. When I looked at that previously it was working with dwgs in the background. Obviously you can Document.Export a dwg/sat use AutoCAD as a com server from the Revit process and Document.Import it back to access the geometry in Revit.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 10 Aug 2023 11:57:05 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12161963#M10294</guid>
      <dc:creator>RPTHOMAS108</dc:creator>
      <dc:date>2023-08-10T11:57:05Z</dc:date>
    </item>
    <item>
      <title>Re: How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12169581#M10295</link>
      <description>&lt;P&gt;Dear RPTHOMAS108, the fact is that in AutoCAD it is impossible to pass a Solid object in the form of dots, triangles, or directly Solid itself. You can only create a Solid in AutoCAD itself using standard tools: extrusion, shift, etc. and then apply Boolean operations on them, such as addition, subtraction and intersection. If I am wrong, and any of the AutoCAD libraries makes it possible to upload Solid to it from Revit, or create Solid based on surfaces or triangles from Revit, I will be glad if you let me know. Otherwise, you will have to create many different methods to export different types of geometry to AutoCAD, which would then perform Boolean and other operations on them!&lt;BR /&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Mon, 14 Aug 2023 12:54:29 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12169581#M10295</guid>
      <dc:creator>ankofl</dc:creator>
      <dc:date>2023-08-14T12:54:29Z</dc:date>
    </item>
    <item>
      <title>Re: How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12170870#M10296</link>
      <description>&lt;P&gt;Not sure about the AutoCAD API not used it for a while but you can open a dwg for sure and export a dwg from Revit also.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I think I would look for methods relating to &lt;A href="https://help.autodesk.com/view/OARX/2022/ENU/?guid=GUID-F51F1C9E-D750-423B-9462-EA1CB2E98E55" target="_blank" rel="noopener"&gt;SATs&lt;/A&gt;. e.g. &lt;A href="https://help.autodesk.com/view/OARX/2022/ENU/?guid=GUID-5B441D77-BE99-454A-AAE3-9E19731B07D5" target="_blank" rel="noopener"&gt;Document.Import&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Although generally I would probably leave AutoCAD out of the process.&lt;/P&gt;&lt;P&gt;&lt;A href="https://help.autodesk.com/view/OARX/2022/ENU/?guid=GUID-5D961150-1635-45ED-99CC-3C0222FDB2C3" target="_blank" rel="noopener"&gt;AutoCAD 2022 Developer and ObjectARX Help | Boolean Method (ActiveX) | Autodesk&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Most (if not all) of what you do via ActiveX/VBA can be accessed via COM, although VBA examples are VB6 but would be easy to convert to VB.Net and therefore C#. Then instead of using&amp;nbsp;ThisDrawing/ThisApplication you would be creating a reference to such via COM. So I don't think it is imposable just wouldn't be the first direction I take with this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would try and look more closely at what Dynamo is doing since those components now come with Revit and AutoCAD doesn't. Even if they do have access to AutoCAD it doesn't mean they've installed it along with Revit.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also as noted I've got a lot of 3d modelling experience as a user of AutoCad and like in Revit API Boolean operations either work or they don't (you need a good overlap of volume for certain operations to work). I think it comes down to if the faces become degenerate due to vertices merging (some libraries are better at cleaning up such things).&lt;/P&gt;</description>
      <pubDate>Tue, 15 Aug 2023 00:07:11 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12170870#M10296</guid>
      <dc:creator>RPTHOMAS108</dc:creator>
      <dc:date>2023-08-15T00:07:11Z</dc:date>
    </item>
    <item>
      <title>Re: How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12172319#M10297</link>
      <description>&lt;P&gt;Thanks for the information.&lt;BR /&gt;To be honest, I don't quite understand how to transfer Boolean operations from Revit to Dynamo, and even more so how this will solve the problem, since they both rely on the same mechanisms.&lt;BR /&gt;In another branch, there was an idea about transferring Revit geometry to OpenCascade geometry, and performing further Boolean operations already in the OpenCascade system. It looks like I'll have to stop at this option&lt;/P&gt;</description>
      <pubDate>Tue, 15 Aug 2023 14:46:48 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12172319#M10297</guid>
      <dc:creator>ankofl</dc:creator>
      <dc:date>2023-08-15T14:46:48Z</dc:date>
    </item>
    <item>
      <title>Re: How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12174193#M10298</link>
      <description>&lt;P&gt;I think Dynamo is using a different library it has the whole proto geometry thing with you having to convert between Dynamo geometry and Revit API geometry.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There are also more functions for manipulating geometry. The Revit API just exposes what Revit uses internally and those things often have their quirks.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/DynamoDS/DynamoRevit/blob/master/src/Libraries/RevitNodes/GeometryConversion/RevitToProtoSolid.cs" target="_blank" rel="noopener"&gt;Revit to ProtoSolid&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If we were able to pick out every single bit like this or just the bits we needed for a task then we could perhaps utilise the library in the API without Dynamo. Instead of this people focus their efforts in trying to load all the other dependencies of Dynamo just so they can do with the API what they do with Dynamo. They start with Dynamo 'oh this is so easy' they progress to the API then comes the repeated question 'how do I do this that I am doing in Dynamo with the API?' What can be said, nothing other than 'Dynamo is more end user orientated and if you want to solve the same problem as a developer you have to go back to first principles.' It is a frustration that Dynamo geometry operations are so easy in comparison.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;C:\Program Files\Autodesk\Revit 2024\AddIns\DynamoForRevit\libg_229_0_0&lt;/P&gt;&lt;P&gt;C:\Program Files\Autodesk\Revit 2024\AddIns\DynamoForRevit\LibG.Interface.dll&lt;BR /&gt;C:\Program Files\Autodesk\Revit 2024\AddIns\DynamoForRevit\ProtoGeometry.dll&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2023 09:45:04 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12174193#M10298</guid>
      <dc:creator>RPTHOMAS108</dc:creator>
      <dc:date>2023-08-16T09:45:04Z</dc:date>
    </item>
    <item>
      <title>Re: How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12190928#M10299</link>
      <description>&lt;P&gt;I sincerely hope that the correction of Boolean operations on solids in the Revit Api will happen in the near future, because at the moment the development of our own solution transferring Boolean operations from C# Revit to C++ OpenCascade looks excessively forced.&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Снимок экрана 2023-08-23 153911.jpg" style="width: 999px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1256941i423A829FB29DCE8B/image-size/large?v=v2&amp;amp;px=999" role="button" title="Снимок экрана 2023-08-23 153911.jpg" alt="Снимок экрана 2023-08-23 153911.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 23 Aug 2023 12:45:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12190928#M10299</guid>
      <dc:creator>ankofl</dc:creator>
      <dc:date>2023-08-23T12:45:59Z</dc:date>
    </item>
    <item>
      <title>Re: How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12190947#M10300</link>
      <description>&lt;P&gt;Yup, valid concern, and sorry about the slow progress. I &lt;A href="https://autodesk.slack.com/archives/C0SR6NAP8/p1692795094855239" target="_blank"&gt;asked&lt;/A&gt; the development team for an update for you.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 23 Aug 2023 12:53:12 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12190947#M10300</guid>
      <dc:creator>jeremy_tammik</dc:creator>
      <dc:date>2023-08-23T12:53:12Z</dc:date>
    </item>
    <item>
      <title>Re: How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12193785#M10301</link>
      <description>&lt;P&gt;They say: Unfortunately, we haven't had a chance to make progress on the front but are definitely aware of the issues. We have also had quite a few recent problem reports elsewhere related to failed Boolean operations.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;By the way, a data set of issues with Booleans in the Revit API context might be nice to have.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Bringing the geometry into Dynamo and doing the operations there would be my recommendation, as it allows the user to see the intermediate steps when there is any kind of failure, which would make things easier to troubleshoot. They would want to learn the Dynamo intricacies, and of course running in the context of Dynamo means they aren't developing an add-in anymore but a Dynamo graph (in which they can call the Revit API).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 24 Aug 2023 12:28:17 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12193785#M10301</guid>
      <dc:creator>jeremy_tammik</dc:creator>
      <dc:date>2023-08-24T12:28:17Z</dc:date>
    </item>
    <item>
      <title>Re: How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12193945#M10302</link>
      <description>&lt;P&gt;Well, after a few days of development.. My decision to transfer Boolean operations from Revit C# to OpenCascade C++ is starting to bring results!&lt;BR /&gt;Of course, there are still problems with data transformation and backward compatibility (there is still a lot of work to be done on this), but in general, the solution has the right to life.&lt;BR /&gt;Here I want to address the question of how soon it will be possible to solve the problem with Boolean operations in Revit? If it's not a matter of two weeks, apparently I will have to perform further operations in geometry based on OpenCascade&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Снимок экрана 2023-08-24 160728.jpg" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1257608i8C011623A0E9049B/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Снимок экрана 2023-08-24 160728.jpg" alt="Снимок экрана 2023-08-24 160728.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;</description>
      <pubDate>Thu, 24 Aug 2023 13:16:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12193945#M10302</guid>
      <dc:creator>ankofl</dc:creator>
      <dc:date>2023-08-24T13:16:59Z</dc:date>
    </item>
    <item>
      <title>Re: How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12332515#M10303</link>
      <description>&lt;P&gt;Воз и ныне там...&lt;/P&gt;</description>
      <pubDate>Thu, 26 Oct 2023 11:26:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12332515#M10303</guid>
      <dc:creator>ankofl</dc:creator>
      <dc:date>2023-10-26T11:26:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12570580#M10305</link>
      <description>&lt;P&gt;Is this a response from ChatGPT to raise the reputation of the participant? If not, can you describe in more detail the conversion of Solid objects from Revit to AutoCAD and the result back?&lt;/P&gt;</description>
      <pubDate>Tue, 20 Feb 2024 07:02:47 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12570580#M10305</guid>
      <dc:creator>ankofl</dc:creator>
      <dc:date>2024-02-20T07:02:47Z</dc:date>
    </item>
    <item>
      <title>Re: How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12570658#M10306</link>
      <description>&lt;P&gt;My sentiments exactly. Where is the &lt;EM&gt;Unlike&lt;/EM&gt; button?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;By the way, congratulations on your success with OpenCascade! The &amp;nbsp;timeframe for progress on development of improvements to the built-in Boolean solid operations is probably a lot larger than two weeks, so your path is definitely worth pursuing if you need an immediate solution. I would love to share the technical details of your approach on the blog, if you are interested in that. Good luck and have fun!&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 20 Feb 2024 07:39:34 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/12570658#M10306</guid>
      <dc:creator>jeremy_tammik</dc:creator>
      <dc:date>2024-02-20T07:39:34Z</dc:date>
    </item>
    <item>
      <title>Re: How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/13005223#M10307</link>
      <description>&lt;P&gt;&lt;SPAN class=""&gt;Dear&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/824630"&gt;@jeremy_tammik&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Well&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;SPAN&gt; it &lt;/SPAN&gt;&lt;SPAN class=""&gt;seems&lt;/SPAN&gt; &lt;SPAN class=""&gt;I&lt;/SPAN&gt;&lt;SPAN&gt;'m &lt;/SPAN&gt;&lt;SPAN class=""&gt;finally&lt;/SPAN&gt; &lt;SPAN class=""&gt;close&lt;/SPAN&gt; &lt;SPAN class=""&gt;to&lt;/SPAN&gt;&lt;SPAN&gt; a &lt;/SPAN&gt;&lt;SPAN class=""&gt;solution&lt;/SPAN&gt; &lt;SPAN class=""&gt;that&lt;/SPAN&gt; &lt;SPAN class=""&gt;suits&lt;/SPAN&gt; &lt;SPAN class=""&gt;me&lt;BR /&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;STRONG&gt;UPD 08.09.2024:&lt;/STRONG&gt;&lt;BR /&gt;&lt;U&gt;&lt;EM&gt;&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/EM&gt;&lt;EM&gt;&lt;STRONG&gt;Create .off file from revit-solid:&lt;BR /&gt;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;public static bool WriteOff(this Solid solid, out List&amp;lt;string&amp;gt; listString)
		{
			listString = ["OFF"];

			if(solid.CreateMesh(out var listVectors, out var listTri))
			{
				listString.Add($"{listVectors.Count} {listTri.Count} 0");
				listString.Add($"");

				foreach (var p in listVectors)
				{
					listString.Add(p.Write());
				}

				foreach (var v in listTri)
				{
					listString.Add($"3  {v.iA} {v.iB} {v.iC}");
				}

				return true;
			}
			return false;
		}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;U&gt;&lt;EM&gt;&lt;STRONG&gt;and this:&lt;BR /&gt;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;public static bool CreateMesh(this Solid solid, out List&amp;lt;XYZ&amp;gt; listVectors, out List&amp;lt;Tri&amp;gt; listTri)
		{
			double k = UnitUtils.ConvertFromInternalUnits(1, UnitTypeId.Meters);
			listVectors = [];
			listTri = [];

			bool allPlanar = true;

			int indV = 0;
			foreach (Face face in solid.Faces)
			{
				if (face is PlanarFace pFace)
				{
					Mesh mesh = pFace.Triangulate();
					for (int tN = 0; tN &amp;lt; mesh.NumTriangles; tN++)
					{
						var tri = mesh.get_Triangle(tN);

						var pT = new int[3];

						for (int vN = 0; vN &amp;lt; 3; vN++)
						{
							var p = tri.get_Vertex(vN) * k;

							if (p.Contain(listVectors, out XYZ pF, out int index))
							{
								pT[vN] = index;
							}
							else
							{
								pT[vN] = indV;
								listVectors.Add(p);
								indV++;
							}
						}

						listTri.Add(new(pT[2], pT[1], pT[0]));
					}
				}
				else
				{
					allPlanar = false;
				}
			}

			return allPlanar;
		}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;U&gt;&lt;EM&gt;&lt;STRONG&gt;Load .off file&lt;/STRONG&gt;&lt;/EM&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;#pragma once

bool load_from(const char* path, Mesh&amp;amp; output) {
    output.clear();
    std::ifstream input;
    input.open(path);
    if (!input) {
        return false;
    }
    else if (!(input &amp;gt;&amp;gt; output)) {
        return false;
    }

    input.close();
    return true;
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Execute boolean&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;#pragma once

bool boolean_simple(Mesh m1, Mesh m2, b_t type, Mesh&amp;amp; out) {    
    out.clear();
    int code = 0;    
    if (!CGAL::is_triangle_mesh(m1)) {
        PMP::triangulate_faces(m1);
    }
    if (!CGAL::is_triangle_mesh(m2)) {
        PMP::triangulate_faces(m2);
    }
    if (type == b_t::join) {
        if (!PMP::corefine_and_compute_union(m1, m2, out)){
            std::cout &amp;lt;&amp;lt; "fail_join ";
            return false;
        }
    }
    else if (type == b_t::inter) {
        if (!PMP::corefine_and_compute_intersection(m1, m2, out)){
            std::cout &amp;lt;&amp;lt; "fail_inter ";
            return false;
        }
    }    
    else if (type == b_t::dif) {
        if (!PMP::corefine_and_compute_difference(m1, m2, out)) {
            std::cout &amp;lt;&amp;lt; "fail_dif ";
            return false;
        }
    }  
    else {
        throw;
    }
    return true;
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;U&gt;&lt;EM&gt;&lt;STRONG&gt;&lt;BR /&gt;Save .off file:&lt;BR /&gt;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;#pragma once
#include &amp;lt;CGAL/Polygon_mesh_processing/IO/polygon_mesh_io.h&amp;gt;

bool save_to(const std::string path, Mesh input) {
    if (!CGAL::is_valid_polygon_mesh(input)) {
        return false;
    }
    try {
        if (CGAL::IO::write_polygon_mesh(path + ".off", input, CGAL::parameters::stream_precision(17))) {
            return true;
        }
        else {
            return false;
        }
    }
    catch (const std::exception&amp;amp; e) {
        std::cout &amp;lt;&amp;lt; "save_to: exception!" &amp;lt;&amp;lt; std::endl;
    }    
    return false;
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;SPAN class=""&gt;Then&lt;/SPAN&gt; &lt;SPAN class=""&gt;you&lt;/SPAN&gt; &lt;SPAN class=""&gt;can&lt;/SPAN&gt; &lt;SPAN class=""&gt;upload&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;off&lt;/SPAN&gt; &lt;SPAN class=""&gt;file&lt;/SPAN&gt; &lt;SPAN class=""&gt;back&lt;/SPAN&gt; &lt;SPAN class=""&gt;to&lt;/SPAN&gt; &lt;SPAN class=""&gt;revit&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;or&lt;/SPAN&gt; &lt;SPAN class=""&gt;do&lt;/SPAN&gt; &lt;SPAN class=""&gt;other&lt;/SPAN&gt; &lt;SPAN class=""&gt;manipulations&lt;/SPAN&gt; &lt;SPAN class=""&gt;with&lt;/SPAN&gt; &lt;SPAN class=""&gt;it&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt; &lt;SPAN class=""&gt;However&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;SPAN&gt; as &lt;/SPAN&gt;&lt;SPAN class=""&gt;far&lt;/SPAN&gt;&lt;SPAN&gt; as &lt;/SPAN&gt;&lt;SPAN class=""&gt;I&lt;/SPAN&gt; &lt;SPAN class=""&gt;know&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;API&lt;/SPAN&gt; &lt;SPAN class=""&gt;Revit&lt;/SPAN&gt;&lt;SPAN&gt; does &lt;/SPAN&gt;&lt;SPAN class=""&gt;not&lt;/SPAN&gt; &lt;SPAN class=""&gt;allow&lt;/SPAN&gt;&lt;SPAN&gt; you to &lt;/SPAN&gt;&lt;SPAN class=""&gt;create&lt;/SPAN&gt;&lt;SPAN&gt; a full-&lt;/SPAN&gt;&lt;SPAN class=""&gt;fledged&lt;/SPAN&gt; &lt;SPAN class=""&gt;Solid&lt;/SPAN&gt; &lt;SPAN class=""&gt;object&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;but&lt;/SPAN&gt; &lt;SPAN class=""&gt;only&lt;/SPAN&gt;&lt;SPAN&gt; a &lt;/SPAN&gt;&lt;SPAN class=""&gt;triangular&lt;/SPAN&gt; &lt;SPAN class=""&gt;grid&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;i.e.&lt;/SPAN&gt; &lt;SPAN class=""&gt;you&lt;/SPAN&gt; &lt;SPAN class=""&gt;can&lt;/SPAN&gt; &lt;SPAN class=""&gt;upload&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt;&lt;SPAN&gt; grid &lt;/SPAN&gt;&lt;SPAN class=""&gt;obtained&lt;/SPAN&gt; &lt;SPAN class=""&gt;through&lt;/SPAN&gt;&lt;SPAN&gt; CGAL to &lt;/SPAN&gt;&lt;SPAN class=""&gt;Revit&lt;/SPAN&gt; &lt;SPAN class=""&gt;for&lt;/SPAN&gt; &lt;SPAN class=""&gt;viewing&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;but&lt;/SPAN&gt;&lt;SPAN&gt; you will &lt;/SPAN&gt;&lt;SPAN class=""&gt;not&lt;/SPAN&gt;&lt;SPAN&gt; be &lt;/SPAN&gt;&lt;SPAN class=""&gt;able&lt;/SPAN&gt; &lt;SPAN class=""&gt;to&lt;/SPAN&gt; &lt;SPAN class=""&gt;perform&lt;/SPAN&gt; &lt;SPAN class=""&gt;further&lt;/SPAN&gt; &lt;SPAN class=""&gt;operations&lt;/SPAN&gt; &lt;SPAN class=""&gt;on&lt;/SPAN&gt; &lt;SPAN class=""&gt;solid&lt;/SPAN&gt;&lt;SPAN&gt; with it&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;but&lt;/SPAN&gt; &lt;SPAN class=""&gt;only&lt;/SPAN&gt; &lt;SPAN class=""&gt;view&lt;/SPAN&gt; &lt;SPAN class=""&gt;its&lt;/SPAN&gt; &lt;SPAN class=""&gt;geometry&lt;/SPAN&gt; &lt;SPAN class=""&gt;through&lt;/SPAN&gt; &lt;SPAN class=""&gt;DirectShape&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 08 Sep 2024 19:59:56 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/13005223#M10307</guid>
      <dc:creator>ankofl</dc:creator>
      <dc:date>2024-09-08T19:59:56Z</dc:date>
    </item>
    <item>
      <title>Re: How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/13007969#M10308</link>
      <description>&lt;P&gt;Wow! Congratulations! That looks like a brilliant solution. Thank you for sharing it. Regarding your final sentences, I believe you can in fact generate solid shapes in your DirectShape object by using the&amp;nbsp;BRepBuilder class; it allows direct construction of geometry objects including solids, closed and open shells, etc.:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.revitapidocs.com/2024/94c1fef4-2933-ce67-9c2d-361cbf8a42b4.htm" target="_blank"&gt;https://www.revitapidocs.com/2024/94c1fef4-2933-ce67-9c2d-361cbf8a42b4.htm&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 08 Sep 2024 20:12:28 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/13007969#M10308</guid>
      <dc:creator>jeremy_tammik</dc:creator>
      <dc:date>2024-09-08T20:12:28Z</dc:date>
    </item>
    <item>
      <title>Re: How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/13037444#M10309</link>
      <description>&lt;P&gt;Thank you again for sharing this. I put it into context and shared it on the blog for wider recognition:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://thebuildingcoder.typepad.com/blog/2024/09/solid-boolean-operation-alternatives.html" target="_blank"&gt;https://thebuildingcoder.typepad.com/blog/2024/09/solid-boolean-operation-alternatives.html&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Do you have anything to correct or more to add since last? Thank you!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 23 Sep 2024 06:13:00 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/13037444#M10309</guid>
      <dc:creator>jeremy_tammik</dc:creator>
      <dc:date>2024-09-23T06:13:00Z</dc:date>
    </item>
    <item>
      <title>Re: How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/13038084#M10310</link>
      <description>&lt;P&gt;&lt;SPAN class=""&gt;Good&lt;/SPAN&gt; &lt;SPAN class=""&gt;afternoon&lt;/SPAN&gt;&lt;SPAN class=""&gt;!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class=""&gt;Thank&lt;/SPAN&gt;&lt;SPAN&gt; you so much &lt;/SPAN&gt;&lt;SPAN class=""&gt;for&lt;/SPAN&gt; &lt;SPAN class=""&gt;mentioning&lt;/SPAN&gt; &lt;SPAN class=""&gt;my&lt;/SPAN&gt; &lt;SPAN class=""&gt;answer&lt;/SPAN&gt; &lt;SPAN class=""&gt;in&lt;/SPAN&gt; &lt;SPAN class=""&gt;your&lt;/SPAN&gt; &lt;SPAN class=""&gt;blog&lt;/SPAN&gt;&lt;SPAN class=""&gt;!&lt;/SPAN&gt; &lt;SPAN class=""&gt;It&lt;/SPAN&gt;&lt;SPAN&gt;'s &lt;/SPAN&gt;&lt;SPAN class=""&gt;very&lt;/SPAN&gt; &lt;SPAN class=""&gt;nice&lt;/SPAN&gt;&lt;SPAN class=""&gt;!&lt;/SPAN&gt; &lt;SPAN class=""&gt;At&lt;/SPAN&gt; &lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;moment&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN class=""&gt;my&lt;/SPAN&gt; &lt;SPAN class=""&gt;main&lt;/SPAN&gt; &lt;SPAN class=""&gt;task&lt;/SPAN&gt; &lt;SPAN class=""&gt;in&lt;/SPAN&gt;&lt;SPAN&gt; my &lt;/SPAN&gt;&lt;SPAN class=""&gt;current&lt;/SPAN&gt; &lt;SPAN class=""&gt;job&lt;/SPAN&gt; &lt;SPAN class=""&gt;is&lt;/SPAN&gt;&lt;SPAN&gt; to &lt;/SPAN&gt;&lt;SPAN class=""&gt;finish&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;program&lt;/SPAN&gt; &lt;SPAN class=""&gt;for&lt;/SPAN&gt; &lt;SPAN class=""&gt;creating&lt;/SPAN&gt;&lt;SPAN&gt; an &lt;/SPAN&gt;&lt;SPAN class=""&gt;energy&lt;/SPAN&gt; &lt;SPAN class=""&gt;model&lt;/SPAN&gt;&lt;SPAN&gt; of a &lt;/SPAN&gt;&lt;SPAN class=""&gt;building&lt;/SPAN&gt; &lt;SPAN class=""&gt;and&lt;/SPAN&gt; &lt;SPAN class=""&gt;calculating&lt;/SPAN&gt; &lt;SPAN class=""&gt;heat&lt;/SPAN&gt;&lt;SPAN&gt; loss &lt;/SPAN&gt;&lt;SPAN class=""&gt;with&lt;/SPAN&gt; &lt;SPAN class=""&gt;its&lt;/SPAN&gt; &lt;SPAN class=""&gt;help&lt;/SPAN&gt; &lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;the &lt;/SPAN&gt;&lt;SPAN class=""&gt;required&lt;/SPAN&gt; &lt;SPAN class=""&gt;amount&lt;/SPAN&gt;&lt;SPAN&gt; of &lt;/SPAN&gt;&lt;SPAN class=""&gt;energy&lt;/SPAN&gt; &lt;SPAN class=""&gt;and&lt;/SPAN&gt; &lt;SPAN class=""&gt;maintaining&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;internal&lt;/SPAN&gt; &lt;SPAN class=""&gt;temperature&lt;/SPAN&gt; &lt;SPAN class=""&gt;in&lt;/SPAN&gt; &lt;SPAN class=""&gt;rooms&lt;/SPAN&gt; &lt;SPAN class=""&gt;at&lt;/SPAN&gt;&lt;SPAN&gt; a &lt;/SPAN&gt;&lt;SPAN class=""&gt;given&lt;/SPAN&gt; &lt;SPAN class=""&gt;temperature&lt;/SPAN&gt; &lt;SPAN class=""&gt;outside&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;SPAN&gt; taking into &lt;/SPAN&gt;&lt;SPAN class=""&gt;account&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;thermal&lt;/SPAN&gt; &lt;SPAN class=""&gt;resistance&lt;/SPAN&gt;&lt;SPAN&gt; to &lt;/SPAN&gt;&lt;SPAN class=""&gt;heat&lt;/SPAN&gt;&lt;SPAN&gt; transfer of &lt;/SPAN&gt;&lt;SPAN class=""&gt;building&lt;/SPAN&gt; &lt;SPAN class=""&gt;structures&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt; &lt;SPAN class=""&gt;At&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;current&lt;/SPAN&gt; &lt;SPAN class=""&gt;stage&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN class=""&gt;I&lt;/SPAN&gt;&lt;SPAN&gt; have &lt;/SPAN&gt;&lt;SPAN class=""&gt;implemented&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;intersection&lt;/SPAN&gt;&lt;SPAN&gt; of &lt;/SPAN&gt;&lt;SPAN class=""&gt;3D&lt;/SPAN&gt; &lt;SPAN class=""&gt;surfaces&lt;/SPAN&gt; &lt;SPAN class=""&gt;in&lt;/SPAN&gt; &lt;SPAN class=""&gt;2D&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;SPAN&gt; and &lt;/SPAN&gt;&lt;SPAN class=""&gt;then&lt;/SPAN&gt; &lt;SPAN class=""&gt;converting&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;result&lt;/SPAN&gt; &lt;SPAN class=""&gt;back&lt;/SPAN&gt; &lt;SPAN class=""&gt;to&lt;/SPAN&gt; &lt;SPAN class=""&gt;3D&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN&gt; The &lt;/SPAN&gt;&lt;SPAN class=""&gt;result&lt;/SPAN&gt; &lt;SPAN class=""&gt;can&lt;/SPAN&gt;&lt;SPAN&gt; be &lt;/SPAN&gt;&lt;SPAN class=""&gt;seen&lt;/SPAN&gt;&lt;SPAN&gt; in &lt;/SPAN&gt;&lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;screenshot&lt;/SPAN&gt; &lt;SPAN class=""&gt;below&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;it&lt;/SPAN&gt; &lt;SPAN class=""&gt;shows&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;intersection&lt;/SPAN&gt;&lt;SPAN&gt; of &lt;/SPAN&gt;&lt;SPAN class=""&gt;indoor&lt;/SPAN&gt; &lt;SPAN class=""&gt;surfaces&lt;/SPAN&gt; &lt;SPAN class=""&gt;with&lt;/SPAN&gt; &lt;SPAN class=""&gt;outdoor&lt;/SPAN&gt; &lt;SPAN class=""&gt;space&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ankofl_0-1727090569374.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1412496i065B4E3B6ADE03D7/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ankofl_0-1727090569374.png" alt="ankofl_0-1727090569374.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN class=""&gt;What&lt;/SPAN&gt;&lt;SPAN&gt; am &lt;/SPAN&gt;&lt;SPAN class=""&gt;I&lt;/SPAN&gt; &lt;SPAN class=""&gt;doing&lt;/SPAN&gt; &lt;SPAN class=""&gt;all&lt;/SPAN&gt;&lt;SPAN&gt; this &lt;/SPAN&gt;&lt;SPAN class=""&gt;for&lt;/SPAN&gt;&lt;SPAN class=""&gt;?&lt;/SPAN&gt; &lt;SPAN class=""&gt;Since&lt;/SPAN&gt; &lt;SPAN class=""&gt;my&lt;/SPAN&gt; &lt;SPAN class=""&gt;last&lt;/SPAN&gt; &lt;SPAN class=""&gt;post&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN class=""&gt;I&lt;/SPAN&gt;&lt;SPAN&gt; have &lt;/SPAN&gt;&lt;SPAN class=""&gt;actually&lt;/SPAN&gt; &lt;SPAN class=""&gt;been&lt;/SPAN&gt; &lt;SPAN class=""&gt;busy&lt;/SPAN&gt; &lt;SPAN class=""&gt;implementing&lt;/SPAN&gt; &lt;SPAN class=""&gt;these&lt;/SPAN&gt; &lt;SPAN class=""&gt;intersections&lt;/SPAN&gt; &lt;SPAN class=""&gt;in&lt;/SPAN&gt; &lt;SPAN class=""&gt;3D&lt;/SPAN&gt;&lt;SPAN class=""&gt;/&lt;/SPAN&gt;&lt;SPAN class=""&gt;2D&lt;/SPAN&gt; &lt;SPAN class=""&gt;from&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;beginning&lt;/SPAN&gt; &lt;SPAN class=""&gt;to&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;end&lt;/SPAN&gt;&lt;SPAN&gt; of &lt;/SPAN&gt;&lt;SPAN class=""&gt;each&lt;/SPAN&gt; &lt;SPAN class=""&gt;working&lt;/SPAN&gt; &lt;SPAN class=""&gt;day&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN class=""&gt;I&lt;/SPAN&gt;&lt;SPAN&gt; am &lt;/SPAN&gt;&lt;SPAN class=""&gt;very&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;very&lt;/SPAN&gt; &lt;SPAN class=""&gt;grateful&lt;/SPAN&gt;&lt;SPAN&gt; to &lt;/SPAN&gt;&lt;SPAN class=""&gt;you&lt;/SPAN&gt; &lt;SPAN class=""&gt;for&lt;/SPAN&gt;&lt;SPAN&gt; the&amp;nbsp;&lt;A href="https://www.revitapidocs.com/2024/94c1fef4-2933-ce67-9c2d-361cbf8a42b4.htm" target="_blank" rel="noopener"&gt;BRepBuilder Class&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=""&gt;link&lt;/SPAN&gt;&lt;SPAN&gt; to &lt;/SPAN&gt;&lt;SPAN class=""&gt;the&lt;/SPAN&gt; &lt;SPAN class=""&gt;article&lt;/SPAN&gt; &lt;SPAN class=""&gt;on&lt;/SPAN&gt; &lt;SPAN class=""&gt;creating&lt;/SPAN&gt;&lt;SPAN&gt; a &lt;/SPAN&gt;&lt;SPAN class=""&gt;Solid&lt;/SPAN&gt; &lt;SPAN class=""&gt;object&lt;/SPAN&gt; &lt;SPAN class=""&gt;using&lt;/SPAN&gt; &lt;SPAN class=""&gt;BRepBuilder&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;and&lt;/SPAN&gt; &lt;SPAN class=""&gt;I&lt;/SPAN&gt;&lt;SPAN&gt; can&lt;/SPAN&gt;&lt;SPAN class=""&gt;'t&lt;/SPAN&gt; &lt;SPAN class=""&gt;wait&lt;/SPAN&gt;&lt;SPAN&gt; to &lt;/SPAN&gt;&lt;SPAN class=""&gt;try&lt;/SPAN&gt;&lt;SPAN&gt; to &lt;/SPAN&gt;&lt;SPAN class=""&gt;recreate&lt;/SPAN&gt;&lt;SPAN&gt; a &lt;/SPAN&gt;&lt;SPAN class=""&gt;Solid&lt;/SPAN&gt; &lt;SPAN class=""&gt;object&lt;/SPAN&gt; &lt;SPAN class=""&gt;from&lt;/SPAN&gt; &lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN class=""&gt;OFF&lt;/SPAN&gt; &lt;SPAN class=""&gt;file&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class=""&gt;This&lt;/SPAN&gt;&lt;SPAN&gt; will &lt;/SPAN&gt;&lt;SPAN class=""&gt;definitely&lt;/SPAN&gt; &lt;SPAN class=""&gt;be&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;first&lt;/SPAN&gt; &lt;SPAN class=""&gt;thing&lt;/SPAN&gt; &lt;SPAN class=""&gt;I&lt;/SPAN&gt;&lt;SPAN&gt;'ll &lt;/SPAN&gt;&lt;SPAN class=""&gt;do&lt;/SPAN&gt; &lt;SPAN class=""&gt;as&lt;/SPAN&gt; &lt;SPAN class=""&gt;soon&lt;/SPAN&gt;&lt;SPAN&gt; as &lt;/SPAN&gt;&lt;SPAN class=""&gt;I&lt;/SPAN&gt; &lt;SPAN class=""&gt;have&lt;/SPAN&gt; &lt;SPAN class=""&gt;some&lt;/SPAN&gt; &lt;SPAN class=""&gt;free&lt;/SPAN&gt; &lt;SPAN class=""&gt;time&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;Of &lt;/SPAN&gt;&lt;SPAN class=""&gt;course&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;I&lt;/SPAN&gt;&lt;SPAN&gt; will &lt;/SPAN&gt;&lt;SPAN class=""&gt;post&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;results&lt;/SPAN&gt;&lt;SPAN&gt; of the &lt;/SPAN&gt;&lt;SPAN class=""&gt;work&lt;/SPAN&gt; &lt;SPAN class=""&gt;on&lt;/SPAN&gt; &lt;SPAN class=""&gt;creating&lt;/SPAN&gt;&lt;SPAN&gt; a &lt;/SPAN&gt;&lt;SPAN class=""&gt;Solid&lt;/SPAN&gt; &lt;SPAN class=""&gt;object&lt;/SPAN&gt; &lt;SPAN class=""&gt;from&lt;/SPAN&gt;&lt;SPAN&gt; an &lt;/SPAN&gt;&lt;SPAN class=""&gt;OFF&lt;/SPAN&gt; &lt;SPAN class=""&gt;file&lt;/SPAN&gt; &lt;SPAN class=""&gt;here&lt;/SPAN&gt; &lt;SPAN class=""&gt;as&lt;/SPAN&gt; &lt;SPAN class=""&gt;soon&lt;/SPAN&gt;&lt;SPAN&gt; as &lt;/SPAN&gt;&lt;SPAN class=""&gt;they&lt;/SPAN&gt; &lt;SPAN class=""&gt;are&lt;/SPAN&gt; &lt;SPAN class=""&gt;ready&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN class=""&gt;Thank you&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/824630"&gt;@jeremy_tammik&lt;/a&gt;,&amp;nbsp;for &lt;/SPAN&gt;&lt;SPAN class=""&gt;blogging&lt;/SPAN&gt; &lt;SPAN class=""&gt;and&lt;/SPAN&gt; &lt;SPAN class=""&gt;taking&lt;/SPAN&gt; &lt;SPAN class=""&gt;your&lt;/SPAN&gt; &lt;SPAN class=""&gt;time&lt;/SPAN&gt;&lt;SPAN&gt; with &lt;/SPAN&gt;&lt;SPAN class=""&gt;us&lt;/SPAN&gt;&lt;SPAN class=""&gt;!&lt;/SPAN&gt; &lt;SPAN class=""&gt;Your&lt;/SPAN&gt; &lt;SPAN class=""&gt;help&lt;/SPAN&gt;&lt;SPAN&gt; is &lt;/SPAN&gt;&lt;SPAN class=""&gt;very&lt;/SPAN&gt; &lt;SPAN class=""&gt;valuable&lt;/SPAN&gt; &lt;SPAN class=""&gt;to&lt;/SPAN&gt; &lt;SPAN class=""&gt;us&lt;/SPAN&gt;&lt;SPAN class=""&gt;!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 23 Sep 2024 11:39:20 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/13038084#M10310</guid>
      <dc:creator>ankofl</dc:creator>
      <dc:date>2024-09-23T11:39:20Z</dc:date>
    </item>
    <item>
      <title>Re: How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/13038121#M10311</link>
      <description>&lt;P&gt;Brilliant! Glad to hear you are making such good progress, and happy to be of help. I added you motivation and nice picture to the post as well... &amp;nbsp;&lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 23 Sep 2024 11:57:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/13038121#M10311</guid>
      <dc:creator>jeremy_tammik</dc:creator>
      <dc:date>2024-09-23T11:57:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/13038429#M10312</link>
      <description>&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;Thank you! )&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;One&lt;/SPAN&gt; &lt;SPAN class=""&gt;of&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;users&lt;/SPAN&gt; &lt;SPAN class=""&gt;asked&lt;/SPAN&gt; &lt;SPAN class=""&gt;me&lt;/SPAN&gt;&lt;SPAN&gt; a &lt;/SPAN&gt;&lt;SPAN class=""&gt;question&lt;/SPAN&gt; &lt;SPAN class=""&gt;in&lt;/SPAN&gt;&lt;SPAN&gt; a &lt;/SPAN&gt;&lt;SPAN class=""&gt;personal&lt;/SPAN&gt; &lt;SPAN class=""&gt;message&lt;/SPAN&gt; &lt;SPAN class=""&gt;about&lt;/SPAN&gt; &lt;SPAN class=""&gt;using&lt;/SPAN&gt; &lt;SPAN class=""&gt;CGAL&lt;/SPAN&gt; &lt;SPAN class=""&gt;in&lt;/SPAN&gt; &lt;SPAN class=""&gt;Revit&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt; &lt;SPAN class=""&gt;I&lt;/SPAN&gt; &lt;SPAN class=""&gt;tried&lt;/SPAN&gt;&lt;SPAN&gt; to &lt;/SPAN&gt;&lt;SPAN class=""&gt;send&lt;/SPAN&gt; &lt;SPAN class=""&gt;him&lt;/SPAN&gt;&lt;SPAN&gt; a &lt;/SPAN&gt;&lt;SPAN class=""&gt;reply&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;but&lt;/SPAN&gt; &lt;SPAN class=""&gt;first&lt;/SPAN&gt;&lt;SPAN&gt; I &lt;/SPAN&gt;&lt;SPAN class=""&gt;got&lt;/SPAN&gt;&lt;SPAN&gt; a &lt;/SPAN&gt;&lt;SPAN class=""&gt;strange&lt;/SPAN&gt; &lt;SPAN class=""&gt;error&lt;/SPAN&gt; &lt;SPAN class=""&gt;about&lt;/SPAN&gt; &lt;SPAN class=""&gt;invalid&lt;/SPAN&gt;&lt;SPAN&gt; tag&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;to be &lt;/SPAN&gt;&lt;SPAN class=""&gt;honest&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN class=""&gt;I&lt;/SPAN&gt; &lt;SPAN class=""&gt;get&lt;/SPAN&gt;&lt;SPAN&gt; it &lt;/SPAN&gt;&lt;SPAN class=""&gt;when&lt;/SPAN&gt;&lt;SPAN&gt; I &lt;/SPAN&gt;&lt;SPAN class=""&gt;try&lt;/SPAN&gt;&lt;SPAN&gt; to &lt;/SPAN&gt;&lt;SPAN class=""&gt;send&lt;/SPAN&gt; &lt;SPAN class=""&gt;every&lt;/SPAN&gt; &lt;SPAN class=""&gt;response&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;SPAN&gt; for &lt;/SPAN&gt;&lt;SPAN class=""&gt;example&lt;/SPAN&gt; &lt;SPAN class=""&gt;in&lt;/SPAN&gt; &lt;SPAN class=""&gt;this&lt;/SPAN&gt; &lt;SPAN class=""&gt;forum&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN class=""&gt;branch&lt;/SPAN&gt;&lt;SPAN class=""&gt;)&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;but&lt;/SPAN&gt; &lt;SPAN class=""&gt;here&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN class=""&gt;when&lt;/SPAN&gt; &lt;SPAN class=""&gt;I&lt;/SPAN&gt; &lt;SPAN class=""&gt;click&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;"&lt;/SPAN&gt;&lt;SPAN class=""&gt;Post&lt;/SPAN&gt;&lt;SPAN class=""&gt;"&lt;/SPAN&gt;&lt;SPAN&gt; button again, the &lt;/SPAN&gt;&lt;SPAN class=""&gt;error&lt;/SPAN&gt; &lt;SPAN class=""&gt;disappears&lt;/SPAN&gt; &lt;SPAN class=""&gt;and&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;message&lt;/SPAN&gt;&lt;SPAN&gt; is &lt;/SPAN&gt;&lt;SPAN class=""&gt;successfully&lt;/SPAN&gt; &lt;SPAN class=""&gt;sent&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ankofl_2-1727098974195.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1412559i94B02ECB4C1AFBEE/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ankofl_2-1727098974195.png" alt="ankofl_2-1727098974195.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;But&lt;/SPAN&gt; &lt;SPAN class=""&gt;when&lt;/SPAN&gt;&lt;SPAN&gt; I &lt;/SPAN&gt;&lt;SPAN class=""&gt;try&lt;/SPAN&gt;&lt;SPAN&gt; to &lt;/SPAN&gt;&lt;SPAN class=""&gt;click&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;"&lt;/SPAN&gt;&lt;SPAN class=""&gt;Post&lt;/SPAN&gt;&lt;SPAN class=""&gt;"&lt;/SPAN&gt;&lt;SPAN&gt; button &lt;/SPAN&gt;&lt;SPAN class=""&gt;again&lt;/SPAN&gt; &lt;SPAN class=""&gt;to&lt;/SPAN&gt; &lt;SPAN class=""&gt;send&lt;/SPAN&gt;&lt;SPAN&gt; a &lt;/SPAN&gt;&lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;message&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN class=""&gt;a&lt;/SPAN&gt; &lt;SPAN class=""&gt;second&lt;/SPAN&gt; &lt;SPAN class=""&gt;error&lt;/SPAN&gt;&lt;SPAN&gt; occurs&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;about&lt;/SPAN&gt; &lt;SPAN class=""&gt;exceeding&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;message&lt;/SPAN&gt; &lt;SPAN class=""&gt;limit&lt;/SPAN&gt; &lt;SPAN class=""&gt;at&lt;/SPAN&gt; &lt;SPAN class=""&gt;this&lt;/SPAN&gt; &lt;SPAN class=""&gt;point&lt;/SPAN&gt;&lt;SPAN&gt; in &lt;/SPAN&gt;&lt;SPAN class=""&gt;time&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;although&lt;/SPAN&gt; &lt;SPAN class=""&gt;this&lt;/SPAN&gt; &lt;SPAN class=""&gt;was&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;first&lt;/SPAN&gt; &lt;SPAN class=""&gt;message&lt;/SPAN&gt; &lt;SPAN class=""&gt;I&lt;/SPAN&gt; &lt;SPAN class=""&gt;tried&lt;/SPAN&gt;&lt;SPAN&gt; to &lt;/SPAN&gt;&lt;SPAN class=""&gt;send&lt;/SPAN&gt; &lt;SPAN class=""&gt;today&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ankofl_1-1727098861108.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1412558iEBF2FECFF93CC22B/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ankofl_1-1727098861108.png" alt="ankofl_1-1727098861108.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;In&lt;/SPAN&gt; &lt;SPAN class=""&gt;any&lt;/SPAN&gt; &lt;SPAN class=""&gt;case&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;now&lt;/SPAN&gt; &lt;SPAN class=""&gt;I&lt;/SPAN&gt;&lt;SPAN&gt; do &lt;/SPAN&gt;&lt;SPAN class=""&gt;not&lt;/SPAN&gt;&lt;SPAN&gt; have the &lt;/SPAN&gt;&lt;SPAN class=""&gt;opportunity&lt;/SPAN&gt;&lt;SPAN&gt; to &lt;/SPAN&gt;&lt;SPAN class=""&gt;reply&lt;/SPAN&gt;&lt;SPAN&gt; to the &lt;/SPAN&gt;&lt;SPAN class=""&gt;user&lt;/SPAN&gt; &lt;SPAN class=""&gt;with&lt;/SPAN&gt;&lt;SPAN&gt; a &lt;/SPAN&gt;&lt;SPAN class=""&gt;personal&lt;/SPAN&gt; &lt;SPAN class=""&gt;message&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;and&lt;/SPAN&gt; &lt;SPAN class=""&gt;given&lt;/SPAN&gt; &lt;SPAN class=""&gt;that&lt;/SPAN&gt; &lt;SPAN class=""&gt;this&lt;/SPAN&gt; &lt;SPAN class=""&gt;information&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;SPAN&gt; I &lt;/SPAN&gt;&lt;SPAN class=""&gt;think&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;will&lt;/SPAN&gt;&lt;SPAN&gt; be &lt;/SPAN&gt;&lt;SPAN class=""&gt;useful&lt;/SPAN&gt;&lt;SPAN&gt; to &lt;/SPAN&gt;&lt;SPAN class=""&gt;everyone&lt;/SPAN&gt; &lt;SPAN class=""&gt;who&lt;/SPAN&gt;&lt;SPAN&gt; has &lt;/SPAN&gt;&lt;SPAN class=""&gt;read&lt;/SPAN&gt; &lt;SPAN class=""&gt;this&lt;/SPAN&gt; &lt;SPAN class=""&gt;topic&lt;/SPAN&gt; &lt;SPAN class=""&gt;up&lt;/SPAN&gt;&lt;SPAN&gt; to &lt;/SPAN&gt;&lt;SPAN class=""&gt;this&lt;/SPAN&gt; &lt;SPAN class=""&gt;point&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;I&lt;/SPAN&gt;&lt;SPAN&gt; will &lt;/SPAN&gt;&lt;SPAN class=""&gt;post&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;answer&lt;/SPAN&gt; &lt;SPAN class=""&gt;here&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;To&lt;/SPAN&gt;&lt;SPAN&gt; tell the &lt;/SPAN&gt;&lt;SPAN class=""&gt;truth&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;CGAL&lt;/SPAN&gt;&lt;SPAN&gt; is &lt;/SPAN&gt;&lt;SPAN class=""&gt;distributed&lt;/SPAN&gt; &lt;SPAN class=""&gt;under&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;GPLv3&lt;/SPAN&gt; &lt;SPAN class=""&gt;license&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;which&lt;/SPAN&gt;&lt;SPAN&gt; is &lt;/SPAN&gt;&lt;SPAN class=""&gt;incompatible&lt;/SPAN&gt; &lt;SPAN class=""&gt;with&lt;/SPAN&gt; &lt;SPAN class=""&gt;REvit&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;which&lt;/SPAN&gt; &lt;SPAN class=""&gt;means&lt;/SPAN&gt; &lt;SPAN class=""&gt;we&lt;/SPAN&gt;&lt;SPAN&gt; do &lt;/SPAN&gt;&lt;SPAN class=""&gt;not&lt;/SPAN&gt; &lt;SPAN class=""&gt;have&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;right&lt;/SPAN&gt;&lt;SPAN&gt; to &lt;/SPAN&gt;&lt;SPAN class=""&gt;directly&lt;/SPAN&gt; &lt;SPAN class=""&gt;call&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;SPAN&gt; for &lt;/SPAN&gt;&lt;SPAN class=""&gt;example&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN class=""&gt;through&lt;/SPAN&gt; &lt;SPAN class=""&gt;[&lt;/SPAN&gt;&lt;SPAN class=""&gt;DllImport&lt;/SPAN&gt;&lt;SPAN class=""&gt;]&lt;/SPAN&gt; &lt;SPAN class=""&gt;cpp&lt;/SPAN&gt;&lt;SPAN class=""&gt;-&lt;/SPAN&gt;&lt;SPAN class=""&gt;dll&lt;/SPAN&gt; &lt;SPAN class=""&gt;from&lt;/SPAN&gt; &lt;SPAN class=""&gt;RevitAPI&lt;/SPAN&gt;&lt;SPAN class=""&gt;.&lt;/SPAN&gt;&lt;SPAN&gt; Of &lt;/SPAN&gt;&lt;SPAN class=""&gt;course&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;SPAN&gt; GeometryFactory &lt;/SPAN&gt;&lt;SPAN class=""&gt;has&lt;/SPAN&gt; &lt;SPAN class=""&gt;a&lt;/SPAN&gt; &lt;SPAN class=""&gt;commercial&lt;/SPAN&gt;&lt;SPAN&gt; CGAL &lt;/SPAN&gt;&lt;SPAN class=""&gt;license&lt;/SPAN&gt; &lt;SPAN class=""&gt;that&lt;/SPAN&gt; &lt;SPAN class=""&gt;allows&lt;/SPAN&gt; &lt;SPAN class=""&gt;it&lt;/SPAN&gt;&lt;SPAN&gt; to be &lt;/SPAN&gt;&lt;SPAN class=""&gt;done&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt; &lt;SPAN class=""&gt;but&lt;/SPAN&gt; &lt;SPAN class=""&gt;when&lt;/SPAN&gt; &lt;SPAN class=""&gt;I&lt;/SPAN&gt; &lt;SPAN class=""&gt;wrote&lt;/SPAN&gt; &lt;SPAN class=""&gt;them&lt;/SPAN&gt;&lt;SPAN&gt; an &lt;/SPAN&gt;&lt;SPAN class=""&gt;appeal&lt;/SPAN&gt; &lt;SPAN class=""&gt;asking&lt;/SPAN&gt; &lt;SPAN class=""&gt;about&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;license&lt;/SPAN&gt; &lt;SPAN class=""&gt;price&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;SPAN&gt; I &lt;/SPAN&gt;&lt;SPAN class=""&gt;received&lt;/SPAN&gt;&lt;SPAN&gt; the &lt;/SPAN&gt;&lt;SPAN class=""&gt;following&lt;/SPAN&gt; &lt;SPAN class=""&gt;response:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;Hi Andrey,

I didn't reply earlier as I am on a business trip.

We in general do not reply to people asking for prices when it is a gmail,
yahoo, or yandex email address. We want to know who we deal with.
With the war in Ukraine we are even more interested who we license
and what will be done with it.  I hope on your understanding, and
please don't take it personal.

We sell the different CGAL components for a one-time license fee,
typically for several 10K Euro.  Their functionality must not directly be
re-exposed. What I mean we do not allow Unity-Boolean-operations
just being a wrapper around CGAL-Boolean-operations.

Best,

Andreas

Андрей Колесов
2 июля в 15:39
Good afternoon!

How much does a commercial license for your CGAL product cost?

-- 
Andreas Fabri, PhD
Chief Officer, GeometryFactory
Editor, The CGAL Project

phone: +33.492.954.912    skype: andreas.fabri&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;At that moment&lt;SPAN&gt;, &lt;/SPAN&gt;I&lt;SPAN&gt; was &lt;/SPAN&gt;interested&lt;SPAN&gt; in &lt;/SPAN&gt;interacting with CGAL through Unity (&lt;SPAN&gt;a &lt;/SPAN&gt;game engine, but in&lt;SPAN&gt; a &lt;/SPAN&gt;legal and technical context it would&lt;SPAN&gt; be &lt;/SPAN&gt;similar to using it in Revit). And even if you comply&lt;SPAN&gt; with &lt;/SPAN&gt;their terms&lt;SPAN&gt; of &lt;/SPAN&gt;use, ten thousand euros per year&lt;SPAN&gt; is &lt;/SPAN&gt;probably not the amount you would like&lt;SPAN&gt; to &lt;/SPAN&gt;spend on&lt;SPAN&gt; a &lt;/SPAN&gt;commercial&lt;SPAN&gt; CGAL &lt;/SPAN&gt;license.&lt;BR /&gt;&lt;BR /&gt;Therefore, in this case&lt;SPAN&gt;, it &lt;/SPAN&gt;remains only&lt;SPAN&gt; to &lt;/SPAN&gt;use CGAL as&lt;SPAN&gt; a &lt;/SPAN&gt;separate application running in&lt;SPAN&gt; a &lt;/SPAN&gt;separate process, without transmitting and receiving any arguments and call results from it.&lt;BR /&gt;&lt;BR /&gt;In this case&lt;SPAN&gt;, &lt;/SPAN&gt;all communication should&lt;SPAN&gt; take &lt;/SPAN&gt;place&lt;SPAN&gt; in &lt;/SPAN&gt;standard ways through&lt;SPAN&gt; the &lt;/SPAN&gt;computer&lt;SPAN&gt;'s &lt;/SPAN&gt;file system.&lt;BR /&gt;&lt;BR /&gt;I.e&lt;SPAN&gt;. &lt;/SPAN&gt;created .off&lt;SPAN&gt; the &lt;/SPAN&gt;file,&lt;SPAN&gt; we &lt;/SPAN&gt;launched&lt;SPAN&gt; the &lt;/SPAN&gt;cpp-exe program in&lt;SPAN&gt; a &lt;/SPAN&gt;separate process, waited&lt;SPAN&gt; for &lt;/SPAN&gt;its execution during which it should independently record&lt;SPAN&gt; the &lt;/SPAN&gt;output.off&lt;SPAN&gt; the &lt;/SPAN&gt;file, and after closing&lt;SPAN&gt; the &lt;/SPAN&gt;process, if&lt;SPAN&gt; the &lt;/SPAN&gt;output file&lt;SPAN&gt; has &lt;/SPAN&gt;been created, read it and recreate&lt;SPAN&gt; the &lt;/SPAN&gt;geometry based on it again. If&lt;SPAN&gt; the &lt;/SPAN&gt;file&lt;SPAN&gt; was &lt;/SPAN&gt;not created, return false or something&lt;SPAN&gt; like &lt;/SPAN&gt;that from the method.&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I &lt;/SPAN&gt;hope, it&lt;SPAN&gt;&amp;nbsp;was &lt;/SPAN&gt;able&lt;SPAN&gt; to &lt;/SPAN&gt;help someone&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 23 Sep 2024 13:51:55 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/13038429#M10312</guid>
      <dc:creator>ankofl</dc:creator>
      <dc:date>2024-09-23T13:51:55Z</dc:date>
    </item>
    <item>
      <title>Re: How to execute BooleanOperations on Revit-Solid by AutoCAD?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/13038454#M10313</link>
      <description>&lt;P&gt;Thank you for the clarification and clear and useful explanation of how you can deal with the licensing restrictions. I remember now that licensing limitations were a stumbling block for me too decades ago when exploring the usage of LEDA, now part of CGAL.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 23 Sep 2024 14:01:46 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-execute-booleanoperations-on-revit-solid-by-autocad/m-p/13038454#M10313</guid>
      <dc:creator>jeremy_tammik</dc:creator>
      <dc:date>2024-09-23T14:01:46Z</dc:date>
    </item>
  </channel>
</rss>

