Previous Issue > This Issue Online > Next Issue
Ralph Grabowski's Report on the Business of Computer-Aided Design
Issue #829 > September 2, 2014
Interpreting 3D Models from Formalized 2D Drawings
by Alexander Yampolsky
(Edited by Ralph Grabowski.) Interpreted drawings allow an interpreter program to recognize 2D drawing elements and then generate 3D models. As compared with conventional ones, interpreted drawings are formalized and so require more discipline during creation. The system depends on layers, whose names instruct the interpreter how to manipulate the 2D elements in 3D space.
To show how the interpreted modeling system works, I'll create in AutoCAD 2007 an formalized drawing of a Mansard roof, a complex shape that has four sloping edges. Then I interpret it with an AutoLISP routine to produce the 3D model shown in Figure 1.
Figure 1: Three-D model interpreted from formalized drawing
Interpreted drawings should begin with the named layers shown in Figure 2.
Figure 2: List of layer names required for interpreted drawings
Elements created in these layers are used as the source data for building the 3D model, as well as to generate auxiliary drawings.
Now I am ready to begin making the drawing. I will provide here two examples of how to draw elements and then how the system interprets them.
The first step is the specify the base elevation of the plan, 6m (20 feet).
1. Set layer Plans as current
2. Using the Polyline command, draw a rectangular box
3. Place single-line text to the rectangle: plan 6.000
I have created the Plan interpreted object. (See Figure 3.) I could have written Plan of the mansard at elevation 6.000 or some other inscription. The interpreter will extract just the plan elevation from the text (i.e. the value 6.000); the rest of the text is just for documentation (explaining the meaning of the number).
Figure 3: Plan interpreted object
In this step, I create the coordination axes.
1. Set layer Axis for X as current.
2. Using the Line command, draw a vertical line.
3. Place a single-line text label 1 near one end of the line (lower or upper end).
I have created the Axis for X interpreted object. (See Figure 4.)
4. I add three vertical axes with numbers 2, 3, 4. The x axes divide the drawing space in the x direction.
5. Make Axis for Y the current layer.
6. Repeat by drawing horizontal coordinate axes A, B, C, D to divide the drawing space in Y direction.
Figure 4: Coordination axes on the plan
Each plan must contain at least one X and one Y axis.
The "walls" tool draws rectangular wall panels, while the "front walls" tool draws of walls with arbitrary frontal contour. (See Figure 5.)
1. Set Walls as the current layer.
2. Using the Multiline command, draw two outer walls along axes 1 and 4.
3. Set the current layer as Front walls.
4. Using the Multiline command to draw two front walls along axes A and D.
5. Select the walls along axes А and D and assign the a different color to them, such as green. In this way, we inform the interpreter that these walls are the same by configuration and ground elevation.
Figure 5: Walls on the plan
I have set the locations of walls on the plan. Now, I need additional views, such as sections. These are set on the plan using section lines.
1. Set Section lines as current layer.
2. Use the Polyline command draw a three-segment polygon that crosses the walls along axes 1 and 2. (See Figure 6.)
3. Add text label 1 near the beginning (or end) of the polygon.
This is the interpreted object Section line. Walls created by the Walls tool must cross the section line. Transversal cross-sections of the walls should be shown on the corresponding section view. Transversal sections are not useful for facade walls having arbitrary configuration; we have to see the wall frontal view. That's why I put a section line with the label 2 in parallel to the facade wall at a certain distance from it (at most 1.5 m). It isn't obligatory to set section line for both facade walls. The model of the second wall will be generated based on the example of the first wall.
Figure 6: Section lines on plan
In this step, I create the interpreted object Section. (See Figure 7.)
1. Set Sections as current layer.
2. Using the Polyline command, draw a rectangular box.
3. Within the box, add the text section 1-1.
4. Each section has to contain at least one coordination axis, which is set on the plan (axis for X or axis for Y) and one elevation mark (Z coordination axis). Set the Axis for X as current layer, and then draw coordinate axis 1.
5. Set current layer Axis for Z. Using the Polyline command, draw a three-segment polyline:
6. Label the polyline with text label 6.000. I have created interpreted object coordinate axis for Z.
7. Set the current layer 0, and then draw coordination axes 2, 3, 4. Add the horizontal line showing level 6.000 on the section.
I use layer 0 to locate auxiliary objects that simplify the process of the drawing creation and understanding. The interpreter will extract the section number (i.e. 1) from the text section 1-1 so that this section corresponds to the section line designated by label 1 on the plan.
Figure 7: Coordinate axes on the section
Wall and Roof Lines on Section
Now I can start drawing wall and roof outlines on the sections. Section view 1-1 will contain cross-sections of the walls lying along the axes 1 and 4. Set the current layer as Walls and then draw the cross-sections using the Multiline command. (See Figure 8.)
Figure 8: Wall cross-sections on the section
Switch the current layer to Front walls and then draw the roof outline using the Polyline command. (See Figure 9.)
Figure 9: Frontal view of the facade wall on the section
Now it is possible to use 3D interpreter to see how the designed structure will look like. Taking the source drawing as shown in Figure 10...
Figure 10: Source drawing of the mansard walls
...I run the 3d-c.lsp routine to generate the 3D model of mansard wall -- at this point in the design. (See Figure 11.)
Figure 11: Model of mansard walls at this stage of drawing
Columns and Beams
Supporting columns are drawn with polylines as cross-sections on layer Columns. (See Figure 12.)
Figure 12: Columns on the plan
Two columns will be seen on section 1-1 and so will be completely defined for modeling. Other columns will be modeled per sample of the columns located on the axis C. To not clutter the drawing, I create a new plan with the title plan 6.500 on which I draw beams (and later the rafters and covering). On layer Beams, use the Multiline command to draw two wall plates along axes 1 and 4 and two beams along axes 2 and 3. The exact length does not matter right now.
Figure 13: Beams on the plan
Section line 1 crosses beams in transversal direction. Beam cross-sections will be seen in section 1-1 and, hence, beams will be completely defined from the viewpoint of their modeling.
Column and Beam Sections
On layer Columns, draw these columns near axes 2 and 3 using the Multiline command. Beams will be seen with their transversal sections on the section 1-1. On layer Beams, and draw the double-tee profile over the wall near the axis 1 using the Polyline command. I copy the double tee profile at necessary elevations near the axes 2, 3, 4. (See Figure 14.)
Figure 14: Columns and beams on the section
I run the interpreter to check the model. (See Figure 15.)
Figure 15: Supporting frame of the mansard shown in 3D
Article continues following this advertisement...
Sponsor: Solid Edge
Try Solid Edge for Free
Now you can try a fully loaded version of Solid Edge with no obligation.
Discover how the Solid Edge 3D design system provides the speed and simplicity of direct modeling with the flexibility and control of parametric design -- all in one easy-to-use package.
Download the 45-Day trial. Or call 800-807-2200
Article now continues...
Laying the Rafters
On layer Rafters, draw rafters with the Multiline command from the overhang to the roof ridge. A third projection is needed: the rafter cross-section on layer Cutting lines (for local section lines). and then draw the three-segment polygon using the Polyline command so that it intersects the rafter at an angle 90 degrees. Add text label 10. (See Figure 16.)
Figure 16: Rafters on the plan
On layer Rafters draw the rafter of the right roof slope using the Multiline command. (See Figure 17.)
Figure 17: Rafter on the section
To depict the cross-section of the rafter, I create section 10-10 on layer Rafters. (See Figure 18.)
Figure 18: Cross-section of the rafter
Section views corresponding to local section lines do not have coordination axes, and are drawn at a scale of 10:1. As rafters are marked in one color on the plan, all of them will be modeled following the example of the defined rafter. Let me check how the model looks now. (See Figure 19.)
Figure 19: Model of the mansard with rafters
Aperture Framing for Dormer
Without getting into details, here are the views for the aperture framing on plan 6.500 (see Figure 20)...
Figure 20: Aperture framing in the roof on the plan
...and on section 1-1 (see Figure 21).
Figure 21: Aperture framing in the roof on the section
The roof frame is completed, as shown by the 3D model. (See Figure 22.)
Figure 22: Roof frame of the mansard
Completing the Roof
My design foresees sloping roof with two half hips and a dormer. On layer Ramps, use the Polyline command to draw the following closed contours (see Figure 23):
Figure 23: Hipped roof with the dormer
Drawing of slopes (ramps) should be started from the edges, which are horizontal relatively the plan plane. Section lines should intersect these edges.
Covering the Roof
To cover the roof, draw cross-sections of two main slopes on the existing section view 2-2 using the Multiline command (see Figure 24)...
Figure 24: Cross-sections of the covering main slopes
...and cross-sections of two dormer slopes on new section view 3-3, plus the cross-section of the half hip slope in new section view 4-4. (See Figures 25 and 26.)
Figure 25: Cross-sections of dormer slopes
Figure 26: Cross-section of the half hip slope
The tutorial of the mansard design is complete. These are all the source drawings, consisting of two plans, four sections, and one local section. (See Figure 27.)
Figure 27: Source drawings of the mansard
And here is a 3D model of the mansard generated by the LISP routine. (See Figure 28.)
Figure 28: Below view of the 3D model of the mansard
The tutorial drawing mansard.dwg can downloaded from and the shareware AutoCAD application "3D-interpreter of working drawings" may be downloaded from :
Alexander Yampolsky is chief specialist at Stroyekspertiza LLC, a company in Tula, Russia that designs. Mr Yampolsky is interested in solving the problems of CAD. A previous article of his appeared in upFront.eZine (http://www.upfrontezine.com/2008/upf-582.htm#c): "CAD Systems Based on Hierarchical Data Schemes."
And One More Thing...
GRAPHISOFT releases its BIM presentation app, BIMx Docs, on Android phones and tablets at Google Play. "This release makes BIMx Docs available on the largest installed base of any mobile OS in the world," says the company. There are two versions: for free you can opens hyper-models in 3D-only demo mode; make an in-app purchase of $50 and unlock all functions. https://play.google.com/store/search?q=bimx
For More News
WorldCAD Access: blogging nearly daily with articles about CAD and tips about computers; available on RSS and through email alerts:
Tenlinks Daily: 5x weekly newsletter of press release headlines and article synopses; delivered by email
@upfrontezine: news, updates, and commentry from upFront.eZine throughout the day on Twitter
Thank You to Our Subscribers & Donators
These great people support upFront.eZine through their contributions. Thank you!
To donate by PayPal, click http://www.upfrontezine.com and then choose the Donate $25 (personal) or Donate $500 (corporate) button.
Letters to the Editor
Re: Seen At Siggraph Vancouver 2014
It always seems cool to the person that created it: "As long as they don't spell it eSRI -- on second thought, that looks cool.” That's how we got in this mess! (grin)
- Ken Elliott
The editor replies: Yah, what with upFront.eZine and all.
Mr Elliott responds: Well, upFront.eZine is one of the few exceptions.Great job, BTW.
Great article. In light of your comment about it being hard for a CAD reporter to ferret out information, I'm sending you the attached, yet unpublished blog on the DS CATIA POC that was displayed in our NVIDIA booth last week. It was the first time this was shown anywhere. Wondering your feedback at the time as to why you decided not to include it in the story below? Hoping you'll consider a post about it now!
- Gail Lagun
The editor replies: It was not, unfortunately, shown to me during the booth tour I received from nVidia. The demo showed users launching Dassault Systemes' 3DEXPERIENCE dashboard from a laptop and then running programs like CATIA, SIMULIA, DELMIA, SOLIDWORKS as if they were running on a workstation. This was accomplished by the Kepler architecture in nVidia's GPUs that have hardware support for video streaming standard H.264, and so this lets GRID servers hosted thousands of miles away to operate atlow latency.
Re: How Dassault Systemes Achieved Success
I benefited from reading about "The Dassault Eay." I can attest that their observations are correct regarding defining a product. I liked their three rules enough to print them out and put them on my bulletin board. I need to think about those when considering big picture CAD development.
- R. P.
Very intriguing publication on Dassault's long-standing history in the aviation, 2D & 3D space. I thought I knew a lot about Dassault's history, but not to this extent. As always, thank you for the great read, Ralph!
- Lauren Vu
I am happy to see "How Dassault Systems Achieved Success" published in upFront.eZine. Naturally, I immediately translated the article for isicad.ru. Here is it: http://isicad.ru/ru/articles.php?article_num=17140 . In the preface, I wrote that LEDAS and I are proud to be acquainted to Francis for already quite a long time. Also, I mentioned that the upFront.eZine version is very valuable since it specified especially clearly some fundamental principles of product development and sales.
- David Levin
"When companies look at joint ventures of one for or another, they naturally focus on the best features of both parts and see the gains to be made by combining them. It's so easy to overlook the possibility that you'll get a combination of the WORST features of both, which can lead to finger pointing and failure."
- Alfred Poor
upFront.eZine is published every Tuesday, except for during summer and Christmas vacations. Editor: Ralph Grabowski. This newsletter is read by 10,000 subscribers in 70 countries. Your comments are welcome at firstname.lastname@example.org! Deadline for submissions is every Monday morning.
Send the message 'subscribe upfront' to email@example.com. All 800+ back issues at www.upfrontezine.com/welcome.htm.
To Change Address
Send both your old and new email addresses to firstname.lastname@example.org.
Send the message 'unsubscribe upfront' to email@example.com. I appreciate knowing reasons for unsubscribing.
US$680 per two weeks, and up. Wanted ads by the unemployed are free. Other rates available. For our Media Kit, email firstname.lastname@example.org.
- - -
Entire contents copyright 2014 by upFront.eZine Publishing, Ltd. All rights reserved worldwide. Letters sent to the editor are subject to publication. Article reprint fee: $840. All trademarks belong to their respective holders. "upFront.eZine," "The Business of CAD," and "WorldCAD Access" are trademarks of upFront.eZine Publishing, Ltd. Letters to the editor may be edited for clarity and brevity. Translations and opinions expressed are not necessarily shared by upFront.eZine Publishing, Ltd.