Presentation is loading. Please wait.

Presentation is loading. Please wait.

Revit API Techniques for Managing Building Data

Similar presentations


Presentation on theme: "Revit API Techniques for Managing Building Data"— Presentation transcript:

1 Revit API Techniques for Managing Building Data
Mario Guttman

2 Code Examples in C#

3 Introduction to Building Data - 1

4 Introduction to Building Data - 2
Commercial Products Affinity (Trelligence) Onuma Planning System CodeBook dRofus (Nosyko)

5 Ribbon Menu and Connection Screen for RevitDbLink Tool
Introduction to Building Data - 3 WhiteFeet RevitDbLink Ribbon Menu and Connection Screen for RevitDbLink Tool

6 Revit API Customization
Visual Studio Restoring Settings Quick Select Buttons Visual Studio Integrated Development Environment (IDE)

7 Access Objects and Relationships
Structuring Data – 1 Relational Database Design Tables Rows and Columns Keys Primary Foreign Relationships One-to-Many Referential Integrity Normalizing Data Access Objects and Relationships

8 Relational Database Relationship Table Table

9 Table Columns (Fields) Rows (Records) Room Table Room ID Type Floor
Area 10101 Office - A Floor 01 200 20101A Office - B Floor 02 220 20102 30103 Kitchen Floor 03 140 30110 Library 230 20111 Lobby 400 Rows (Records) Room Table

10 Primary Key Field A Primary Key Field uniquely identifies a record.
It must be: Not Null Unique Room ID Type Floor Area 10101 Office - A Floor 01 200 20101A Office - B Floor 02 220 20102 30103 Kitchen Floor 03 140 30110 Library 230 20111 Lobby 400 Room Table

11 Foreign Key A Foreign Key Field
Points to the Primary Key of another table. May be Null. May be a Primary Key. Floor ID Area Floor 01 32200 Floor 02 34220 Floor 03 Room ID Type Floor Area 10101 Office - A Floor 01 200 20101A Office - B Floor 02 220 20102 Floor Table Room Table

12 One-to-Many Relationship
A One-to-many Relationship is defined by a Foreign Key. A value can only occur once on the “one” side. A value may occur many times on the “many side. Floor ID Area Floor 01 32200 Floor 02 34220 Floor 03 1 Floor Table Room ID Type Floor Area 10101 Office - A Floor 01 200 20101A Office - B 220 20102 Room Table

13 Referential Integrity
Referential Integrity requires that the “one” side exist before the “many” side is used. Changes can be cascaded from the one to the many. Deletions can cascade, but will delete the whole record. Floor ID Area Floor 01 32200 Floor 02 34220 Floor 03 1 Room ID Type Floor Area 10101 Office - A Floor 01 200 20101A Office - B 220 40102 Floor Table Cannot use value “Floor 04” here. Room Table

14 Contact Table with Office Addresses
Normalizing Data A table is Not Normalized If it has redundant data. Name Office Address Adam Smith Acme Construction 123 North Main St., Culver City, CA Betty Jones Clark Kent Best Engineering 2100 Flagship Wy., Sacramento, CA Contact Table with Office Addresses The data can be Normalized by using two tables. Name Office Adam Smith Acme Construction Betty Jones Clark Kent Best Engineering Office ID Address Acme Construction 123 North Main St. Culver City, CA Best Engineering 2100 Flagship Wy. Sacramento, CA 1 Contact Table Office Table

15 Structuring Data - 2 Formalizing the Space Program Data From Client
Formatted visually. Excel or hard-copy. Program Characteristics Room Types. Organizational Uses. Space Program Type – Use Pairs. Count each. Space Program

16 Room List with Types and Uses
Rooms Each room instance. Type – Use that room. Room List with Types and Uses

17 DATA TABLE: DOCUMENT: SPACE NEEDS READABLE FORMAT TYPE OF ROOM
UNSTRUCTURED DATA DATA TABLE: SPACE NEEDS TYPE OF ROOM WHO IS USING IT HOW MANY OF EACH CLIENT REQUIREMENTS (EXCEL WORKSHEET) SPACE PROGRAM (ACCESS TABLE)

18 DATA TABLE: INDIVIDUAL ROOMS TYPE OF ROOM WHO IS USING IT
ROOM OBJECTS: GEOMETRY DATA ATTRIBUTES ROOM LIST (ACCESS TABLE) BIM MODEL (REVIT PROJECT)

19 Linking Revit to a Database - 1
Using Access and Revit Windows Memory Space Revit: 64-bit. Access: 32-bit. Connection OLE: ACE (JET) Drivers. COM: Interop Mode. ACE Pass-through Service Service TCP-IP interface. 32-BIT ACCESS OLE – ACE DRIVER SERVICE – ACE PASS-THROUGH TCP/IP PROTOCOL 64-BIT REVIT ACE Pass-through Service

20 Linking Revit to a Database - 2
RevitDbLink Overview The “Link” The “Link” is actually a logical relationship, based on conventions in both programs.

21 Linking Revit to a Database - 3
RevitDbLink Overview Main Menu Synchronization Menu The Main Menu (left) is used to select the link and query data. The results are shown on the Synchronization Menu (right), where discrepancies can be resolved.

22 Code Example 1 Working with Data Linking to a Database Access.
SQL Server. Using Excel Data Objects in C# Database Tables - Named Columns Excel Worksheet – Fields in First Row

23 CREATING A DATABASE CONNECTION
Set connection type. Build connection string. Create connection.

24 Make Data Objects. Define: Primary Key. Update/Delete Commands. Work with data. Update database

25 CONNECTING TO EXCEL Define Excel objects. Link to Excel Session:
Start new session. “Bind” to existing or start new session.

26 HIDING EXCEL APPLICATION
Define “ShowWindow” call to Windows. Apply it to every “Excel” process Use minimize option.

27 WORKING WITH EXCEL WORKSHEETS
Get a list of existing worksheets. Use a Worksheet: Existing. New.

28 Define C# data objects. Use the first row of the Excel worksheet to create columns in the data table.

29 For the remaining rows in Excel:
Get a row from Excel. Make a row in the data table. For each column in Excel: Get the Excel value. Set the row value. Add the row to the data table.

30 WORKING WITH DATA IN C# Create a data table. Add columns.
Create a new row. Work with the rows.

31 Planning Groups Derived from Space Program
Creating Areas and Solid Forms - 1 Abstracting Major Spaces Major Planning Groups Space Requirements Classification Planning Groups Derived from Space Program

32 Place Unplaced Areas Menu
Creating Areas and Solid Forms - 2 Importing Areas Unplaced Areas Parameters Key Value. Descriptive Name. Classification Required Area Floor Revit Schedule Place Unplaced Areas Menu

33 Areas Placed as Squares and using a Planning Module
Creating Areas and Solid Forms - 3 Placing Areas Area Boundary Lines Shape Squares. Modular Rectangle. Classification Color Areas Placed as Squares and using a Planning Module

34 Creating Areas and Solid Forms - 4
Parti Site Constraints Plan Dimensions Number of Floors Floor Heights Building Geometry Constraints

35 Areas Moved to Plan Locations
Creating Areas and Solid Forms - 5 Manipulating Areas Areas Moved to Plan Locations

36 Areas Converted to Solid Forms
Creating Areas and Solid Forms - 6 Converting Areas to Solid Forms Standard Block Shape Area extremities. Height, Width, Depth. Extruded Boundary Area boundary. Fixed Height Areas Converted to Solid Forms

37 Basic Area and Massing Diagram
Creating Areas and Solid Forms - 7 Basic Area and Massing Diagram

38 Solid Families Made From Areas and Rooms
Code Example 2 Making Solids Based On Areas. Rooms. Family Standard Rectangle. Extrusion. Setting Material Solid Families Made From Areas and Rooms

39 MAKING SOLID SHAPE FROM ROOM
Use an existing room. Create a new family. Make a new material.

40 OPTION 1: A PRE-DEFINED RECTANGULAR SOLID
Get the location and dimensions of the room. Create a family instance. Adjust dimensions. Set material.

41 OPTION 2: A UNIQUE FAMILY USING AN EXTRUSION
Get room shape: Room boundary: list of curves. Each curve: list of segments. Create CurveArrays. Build CurveArrArray.

42 Create new family. Add extrusion of CurveArrArray. Get or make a subcategory.

43 BOTH OPTIONS: APPLY MATERIAL AND SAVE FAMILY
Apply the material to the subcategory. Save the Family to a file.

44 BOTH OPTIONS: MAKE AN INSTANCE OF FAMILY
Load the new family: Use the saved file. Delete the file. Get the family symbol. Create a new instance: Use family symbol. Location (0, 0, 0).

45 BOTH OPTIONS: TRANSFER PARAMETER VALUES
Get the parameters: Room – Source. Family – Target. Transfer values: Get source value. Convert data type. Set target value.

46 Creating Rooms - 1

47 Creating Rooms - 2 Computing Rooms from Program Database
Rooms in Access

48 Unplaced Rooms in Revit
Creating Rooms - 3 Importing Unplaced Rooms Unplaced Rooms in Revit

49 Rooms Placed in an Array and then Moved to the Plan
Creating Rooms - 4 Placing Rooms Array of Squares Tagged Moved to Plan Rooms Placed in an Array and then Moved to the Plan

50 Creating Rooms - 5 Validating Program with Database Discrepancy
No Database Record. No Model Element. Unequal Values. Actions No Action. Update Model. Update Database. Synchronization of the Model and the Database

51 Creating Rooms - 6

52 Sized Rooms Placed and Dragged to Location
Code Example 3 Placing Elements Based On Areas. Rooms. Boundary Area Boundary Lines Walls Room Separation Lines. Parameters Copying Values. Classification. Sized Rooms Placed and Dragged to Location

53 PLACING UNPLACED AREAS
Get the unplaced area. Calculate points: Square. Required area. Build a curve array of lines.

54 Construct an area boundary line:
Use the curve array. Place new area inside boundary. Transfer the parameter values. Delete the unplaced area. Tag the area.

55 PLACING UNPLACED ROOMS
Option 1: walls. Option 2: room separator lines. Make new room. Delete the unplaced room.

56 Room Data Sheets Workflows
Alternative Methods Revit Views. Tagged Views. Sheets Access Images. Report. Room Data Sheets Workflows

57 Batch Process - Creating Views
Room Data Sheets - 2 Creating Room Views 2D Crop. 3D Section. Visibility Naming Batch Process - Creating Views

58 Batch Process - Tagging Views
Room Data Sheets - 3 Tagging Rooms Room Tag Labels Parameters Batch Process - Tagging Views

59 Batch Process - Placing Views on Sheets
Room Data Sheets - 4 Placing Views on Sheets Frame Titles Batch Process - Placing Views on Sheets

60 Batch Process - Exporting Images
Room Data Sheets - 5 Exporting Images Raster Type File Name Batch Process - Exporting Images

61 Room Data sheet Access Report
Room Data Sheets - 6 Access Report Data Controls Images Controls Control Source Naming. Room Data sheet Access Report

62 Cropped Room Views Made Automatically
Code Example 4 Making Views Space Around Room 2D View 2D Crop Box. 3D View 3D Section Box. 2D Crop. View Template Cropped Room Views Made Automatically

63 CROPPING A 2D VIEW Use bounding box of subject element.
Create new bounding box. Set new box size with margins. Create a new view and apply the bounding box to it.

64 SECTIONING A 3D VIEW Create a new 3D bounding box :
Get 3D bounds of the subject element. Create new 3D box with margins. Make a new 3D view. Apply the section box.

65 CROPPING A 3D VIEW IN 2D Get the room to crop to.
Get the closed shell of the room. Get all vertices: For each object in the shell. For each edge in the object. For each vertex in the edge.

66 Make the new view. Get the inverse of the view transform. Project all of the verticies. Find the extreme X and Y points.

67 Create new bounding box with margin.
Add the crop box to the view.

68 SETTING UNDERLAY AND APPLYING A VIEW TEMPLATE
Set the underlay to none. Apply a view template.

69 Color Fill Plan with Calculated Values
Color Fill Plans - 1 Flattening Relational Data Related Tables Room. Room Type. Room Type Category Calculating Parameter Values Math Roll up areas. String Concatenate. Color Fill Plan with Calculated Values

70 Room Data sheet Access Report
Color Fill Plans - 2 Σ SUM ROOM AREA: BY ROOM TYPE CATEGORY BY FLOOR ROOM ROOM TYPE ROOM TYPE CATEGORY DESCRIPTION Room Data sheet Access Report

71 Color Fill Plans - 3 Math Calculation Tool

72 Signage Interactive Selection Multi-line Text Edit Specialty Equipment

73


Download ppt "Revit API Techniques for Managing Building Data"

Similar presentations


Ads by Google