This is Jeremy Tammik's Typepad Profile.
Join Typepad and start following Jeremy Tammik's activity
Jeremy Tammik
Switzerland
Interests: rock climbing
Recent Activity
We make further enhancements to the on-going project to determine gross and net areas and volumes, obviously a fundamental issue to BIM. And I have more news to share as well: Playing with my WebGL viewer WebGL Developers meetup in... Continue reading
Posted 2 days ago at The Building Coder
Dear Jordi, I am very glad it works for you now! Thank you for your appreciation! I will do my best. Have you checked out my new, second, blog yet? http://the3dwebcoder.typepad.com I hope that is of interest to you as well! Cheers, Jeremy
:-)
Dear Arnošt, Thank you very much for the warning! For my purposes, just viewing with zero precision or fidelity requirements, I am perfectly happy with this. For all other uses, take heed, my friends! Cheers, Jeremy.
Dear Dale, Look here now: http://thebuildingcoder.typepad.com/blog/2015/04/exporting-3d-element-geometry-to-a-webgl-viewer.html Did I promise too much? More coming :-) Cheers, Jeremy.
Commented 5 days ago on WebGL 101 – Getting Started at The 3D Web Coder
Yesterday, I discussed how to get started with WebGL and demonstrated a simple 3D viewer making use of the Tiny WebGL helper Library TWGL. Today, I present the TwglExport Revit add-in to select an individual element and populate the viewer... Continue reading
Posted 5 days ago at The Building Coder
Dear Jordi, In theory, it might be ever so slightly more efficient to use this instead: Line axeX = Line.CreateBound( XYZ.Zero, XYZ.BasisX ); Line axeY = Line.CreateBound( XYZ.Zero, XYZ.BasisY ); Line axeZ = Line.CreateBound( XYZ.Zero, XYZ.BasisZ ); The last one, axeZ, is the one I was thinking of, yes. Glad to hear you have found a solution. Yup, if you are working with very large coordinates, it will indeed often help to move the whole problem closer to the origin. Cheers, Jeremy.
Dear Madhu, I have not the slightest idea what macro you are talking about, so I cannot help with that. Are you aware of the AvoidObstruction SDK sample? That is of course not a macro, but an add-in. It is discussed in numerous earlier posts on The Building Coder and its implementation is explained in its readme file ReadMe_AvoidObstruction.rtf. Cheers, Jeremy.
Dear Håkon, I raised an issue for your suggestions: https://github.com/jeremytammik/SpatialElementGeometryCalculator/issues/1 Cheers, Jeremy.
Dear Geert, I hope and believe that the SpatialElementGeometryCalculator class can answer all of the questions you raise. Can you please take a look at the following much more recent discussion and let us know whether that helps solve them and addresses all your needs? http://thebuildingcoder.typepad.com/blog/2015/03/findinserts-retrieves-all-openings-in-all-wall-types.html e553e16897883301b7c7789a82970b Please also note the relevant additional questions raised and addressed there in the comment by Håkon Clausen. I hope this helps. Cheers, Jeremy.
Commented 5 days ago on Room and Wall Adjacency at The Building Coder
Dear Håkon, Those sound like two absolutely valid points, and your solution to fix them looks very promising to me. I see that you added some other functionality that you do not explicitly mention, such as a dictionary of the affected walls. Could you possibly fork the SpatialElementGeometryCalculator GitHub repository, add your changes to that, and create a pull request for me to merge them back in to take a closer look at? https://github.com/jeremytammik/SpatialElementGeometryCalculator I think your improvements are very important and will be of great interest to others as well. Thank you! Cheers, Jeremy.
Alexander Ignatovich, Александр Игнатович, of Investicionnaya Venchurnaya Companiya, took another and deeper look at The Building Coder sample external command CmdWallProfile that I originally implemented in 2008 to retrieve the wall elevation profile and my colleague Katsuaki Takamizawa modified to... Continue reading
Posted Apr 10, 2015 at The Building Coder
Yesterday, I implemented and published a simple Node.js web server to display an SVG polygon. In that post, you can define the polygon path manually in a text box and invoke the web server by clicking a button. Obviously, the... Continue reading
Posted Apr 9, 2015 at The Building Coder
Lots of stuff going on; I have a hard time keeping up. Due to popular request, I updated the RvtVa3c readme. I am continuing to answer issues on the Revit API discussion forum as well as ADN cases. I am... Continue reading
Posted Apr 8, 2015 at The Building Coder
Dear Matt, I am very glad to hear it! Thank you for letting us know. Cheers, Jeremy.
Commented Apr 7, 2015 on List All Import Instances at The Building Coder
Dear Jordi, Wow, how nice, luck you. I love Brittany! You are forced to specify a rotation axis when you call the ElementTransformUtils.RotateElements method. That axis will always determine the axis of rotation, including the center point of the rotation, so it should give you absolutely all you need. What axis are you specifying? To rotate in the XY plane around the origin, you can use a line from the origin, (0,0,0) = XYZ.Zero, to an arbitrary point on the Z axis, e.g. (0,0,1) = XYZ.BasisZ. Cheers, Jeremy.
Dear Locost7, The StructuralConnectionType element id is probably not generated randomly. Instead, I imagine that Revit is generating a new StructuralConnectionType element for you, and that is its element id. You can check this by using the element lister: http://thebuildingcoder.typepad.com/blog/2014/09/debugging-and-maintaining-the-image-relationship.html#2 You can also simply snoop the current database in RevitLookup and manually check whether a new StructuralConnectionType element has been added. If the newly generated StructuralConnectionType element is identical to another StructuralConnectionType element that you already have in your project and would like to reuse, you can probably do so through the following steps: 1. Make a note of the newly generated element id X. 2. Determine the element id Y of the StructuralConnectionType that you would like to reuse for your new moment connection type Z. 3. Assign Y to Z, e.g. using the Element.ChangeTypeId method. 4. Delete X, e.g. using the Document.Delete method. I hope this helps. Please let us know how you end up solving this. Thank you! Cheers, Jeremy.
Commented Apr 7, 2015 on ElementId Parameter Value at The Building Coder
I hope you had a wonderful time over Easter. I returned from my team meeting and subsequent brief holiday in the snow and am confronted with a long list of unanswered Revit API discussion forum issues. I answered a dozen... Continue reading
Posted Apr 7, 2015 at The Building Coder
Here is an illuminating explanation by Arnošt Löbel and Martin Schmid on some Revit API development trends that have already been underway for a couple of releases. Before I get to them, a quick report from our ADN team meeting:... Continue reading
Posted Apr 2, 2015 at The Building Coder
Have you ever wondered whether you have any duplicate imported CAD instances in your model? My colleague Nikolay Shulga from the Revit development team implemented a nice little end user utility to answer this question. By the way, Nikolay and... Continue reading
Posted Apr 1, 2015 at The Building Coder
Dear Modar, Please be aware that a Revit element may display completely differently in different views, e.g. plan, elevation, 3D, section, etc. The bounding box has to include the extents of all possible views. If you wish to obtain more accurate limits on the element extents, you might retrieve, parse and tessellate the 3D geometry and calculate the maximum and minimum points of all the vertices produced. The concrete setout points add-in shows how to determine all geometry vertices: http://thebuildingcoder.typepad.com/blog/2014/11/concrete-setout-points-for-revit-structure-2015.html I implemented a whole bunch of utility classes and methods to retrieve and sort unique vertices from element geometry here in the past. This discussion mentions a few of them: http://thebuildingcoder.typepad.com/blog/2012/03/melbourne-day-two.html#2 I hope this helps. Cheers, Jeremy.