350 likes | 486 Vues
Evaluating, Designing and Creating Design Application for AutoCAD Revit Structure: You Can Do This!. Mike King Structural Software Engineer. Intro. Overview of development process PPT and Sample App available online Save questions until the middle and end
E N D
Evaluating, Designing and Creating Design Application for AutoCAD Revit Structure: You Can Do This! Mike King Structural Software Engineer
Intro • Overview of development process • PPT and Sample App available online • Save questions until the middle and end • First half presentation, second half demo • Contact information in handouts • Main idea: Keep it Simple
Outline: Learning Objectives • Bio • Design Problem • Algorithm • Get the Tools • Setup a Project • Revit Data • User Data • Supplemental Data • Calculations • Update Model MODEL APPLICATION EXTERNAL DATA USER INTERFACE
Bio • .NET Software Engineer • Structural Engineering background • Diverse development experience
Identifying a Design Problem What do you want to do? • Clear Scope • Simple Steps • Integrated with Model • Manageable Effort
Identifying a Design Problem • Sample App: Column Design • AISC W-Shape Steel • Axially loaded • Live and dead loads only • Minimal error checking • LRFD 13th edition design • Read from and update model
What is an Algorithm? • Well defined instructions for completing a task • Known start and end states • Simple, clear decisions http://en.wikipedia.org/wiki/Algorithm
Developing an Algorithm • Start with what you need • Work backwards to what you have • Fill in the blanks with what you can get • Iteratively break down each step until it requires almost no thought
Developing an Algorithm Column Design Compressive Strength (LRFD 13th Edition)
Developing an Algorithm • Known: • Steel Properties (Fy, E) • Shape Properties (Ag, r) • Member Properties (l) • Constants (Øc) • Can Find: • Code Specified (K) • Intermediate Values (Fe, Fcr, Pn) • End Result: Øc Pn
Developing an Algorithm Given: Ag: Gross cross sectional area Fy: Yield stress of steel E: Modulus of elasticity K: Effective length factor l: Column height r: Controlling radius of gyration
Developing an Algorithm Determine Controlling Kl/r [ELSE] [Fe < 0.44Fy]
Developing an Algorithm Calculate Kl/r Given end fixity [FIX/FIX] [PIN/PIN] [FIX/PIN] K = 0.65 K = 0.80 K = 1.00 Retrieve r for current axis Kl/r
Developing an Algorithm Where will the data come from? • AISC Tables: • r • Ag • Revit: • Designation • l • Code: • E • K • Øc • User: • End Fixity • Intermediate bracing • Fy
Developing an Algorithm Design Case: • Calculate service loads (1.2L+1.6D) • Start with smallest section in catalog • Perform analysis • Design works? • Yes: Accept section • No: Next section NOTE: Loads will be entered by the user
Get The Tools • Visual Studio 2008 • Express is OK, Professional is better • http://www.microsoft.com/express/download/ • C# or VB is OK (this class uses C#) • Revit Structure 2010 • Revit Structure SDK • Technically optional, but very helpful • http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=2484975
Revit External Command Setup Your Application (DLL) Revit.exe External Data (w shapes.xml) Revit.ini
Setting Up a Project (demo) • Start Visual Studio • Select File->New Project
Setting Up a Project (demo) • In Solution Explorer • Right click References • Select Add Reference • Browse Tab • Revit Program directory • RevitAPI.dll • OK • Set Copy Local to False in Properties
Setting Up a Project (demo) Create IExternalCommand derived class
Setting Up a Project (demo) Edit the Revit.ini file [ExternalCommands] ECCount=1 ECClassName1=RevitColumnDesign.Command ECAssembly1=C:\Users\Mike\Documents\Visual Studio 2008\Projects\RevitColumnDesign\bin\debug\RevitColumnDesign.dll ECName1=Column Designer
Setting Up a Project (demo) Configure debugger (VS 2008 Pro Only)
Gather Revit Data (demo) • Validate user selection (1 column) • Retrieve column height • Retrieve column section designation Our APP Shape Data
Compile External Data (AISC Shapes Database) • Beware of licensing issues! • No commercial applications • No redistribution • No simultaneous access by multiple people • AISC Steel Construction Manual Companion has XML DB • This app requires a file called “w shapes.xml” in same directory • File must have following format: • Read by SectionDatabase class
Gather Code Data Code Data Our APP Shape Data
Gather Code Data (demo) • Create a static class to hold constants
Create Calculation Engine (demo) • Implement algorithm developed above • Feed in values from Revit, User and Code • Produce column design capacity
Gather User Data Code Data Our APP Shape Data User Data
Gather User Data (demo) • Create a UI • Accept data gathered from Revit model • Gather required user data • Coordinate all data sources and program operation • This is the hub of the application
Create Analyzer and Designer (demo) • Using Calculation Engine, check capacity of current section • Using Calculation Engine, try all sections from lightest to heaviest to find most efficient
Update Model (demo) • Update selected column with new designation New Sizes Our APP Shape Data User Data Code Data
Questions? Mike King mike.king@odehengineers.com