Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Taskboard #1

Open
21 of 50 tasks
ian-quinn opened this issue Jan 17, 2021 · 7 comments
Open
21 of 50 tasks

Taskboard #1

ian-quinn opened this issue Jan 17, 2021 · 7 comments
Assignees

Comments

@ian-quinn
Copy link
Owner

ian-quinn commented Jan 17, 2021

Info & drawing boundary

  • Basic demo for the extrusion of walls and columns (from multiple floorplans linked in DWG).
  • Get information from linked/imported DWG other than the exploded one. Geometry instances are read via RevitAPI while semantic texts are channeled by Teigha. (limited to DWG version 2010 or below)
  • Detailed check on the type of geometry objects. If not shattered lines, explode them. (Line, PolyLine, Arc, Solid, GeometryInstance)
  • Align elements in the floorplan based on plan axes other than the relative position to drawing borders.
  • Cluster DWG information of each level by detecting the drawing border and title block (inside DWG layer "FRAME").
  • Fuzzy detection when there's no border or FRAME layer. Identify the type of drawing. Note that the drawing border may be nested blocks.
  • Robust level identification in case of names like "-2F", "二十层", "25-1F & 25-3F". (Text with largest font size / at certain area)
  • Based on opensource DXF extraction engine netDxf other than Teigha, util the RevitAPI exposing imported CAD text model.
  • Extract text info from block reference / proxy object / text / mtext ...
  • How to solve external reference?
  • Skim out 3D info of CAD
  • Level mark identification to avoid a default setting of floor height
  • Extract info from component details drawings.

Space boundary

  • Detect regions based on intersected stray lines. The split of intersected lines may fail at T-type junction, which has been improved by adding a tiny extension neglectable (by 1%) to the lines.
  • Name spaces by the enclosed text note (Layer "ROOM").
  • Create floors according to wall encasement or Boolean-union regions.
  • Generate wall axes in case of variable thickness. (and wall family type)
  • Join axes that span windows, doors, columns, and variant-thickness wall junctions.
  • Merge overlapping axes while retaining wall types.
  • Align wall axes mesh grid to floorplan axis. Need axes identification.
  • Curtain wall as space boundary
  • Add virtual room boundary when encountered with semi-open space or minor gaps
  • Solve extension gaps
  • Fire zone identification and projection

Instances

  • Insert windows on wall surfaces.
  • Create rectangular column types with any size and deflection.
  • Create a new column family based on closed PolyLine.
  • Create rooms with Name from CAD
  • Recognize door block and door types by their different characteristics
  • Reuse unique shaped column types
  • Create round columns
  • Semantic information injection
  • AI in space function label assignment

Usability

  • Load family mannually
  • Multi-language support (Family or family template name)
  • Error handling
  • Processing bar
  • Pause model checking of Revit

Code improvement

  • Upgrade UI Ribbon with some stacked buttons.
  • Upgrade buttons with customized icons.
  • Add a WPF dataform for user settings.
  • Upgrade the project structure. (Separate Util, Algo, App, Cmd, Execution)
  • Load sources inside the project. May solve the 'System.IO.FileNotFoundException'...
  • UV and XYZ coordinates.
  • Better use of Curve & Line types
  • Nomenclature (FRAME, WALL, COLUMN, SPACE, AXIS...)
  • Avoid multiple open & close of DXF, too many iterations
  • Dump memory immediately

Mission impossible

  • Elevation drawing identification and data fusion
  • CAD to gxXML / IDF for energy modeling
@ian-quinn ian-quinn pinned this issue Jan 17, 2021
@ian-quinn ian-quinn unpinned this issue Jan 17, 2021
@Yennutiebat
Copy link

Hey man this project is awesome, how many days did you spend coding it? And how long have you been programming with the Revit API?

@ian-quinn
Copy link
Owner Author

Thanks Henk! The project has been coded irregularly and altogether takes 2-3 months I presume. This is the first time I play with RevitAPI and C#. The addin is quite buggy and less automated, but I have to head for BIM-BEM geometry translation stuff with so many tasks undone :(

@MostafaWageh-Miro
Copy link

Hello Yikun Can you tell me please how you learn Revit api im enthusiast about this field and i hope to improve my skills

@ian-quinn
Copy link
Owner Author

I'm sort of task-oriented. For certain developing quest, I just google for solutions and stitch them together. StackOverflow and The Building Coder blog are really helpful, and the Autodesk developer forum. If not gonna work, then turn to API document for some clues. Basically I'm a rookie on this and cannot provide a systematic roadmap. RevitAPI can be stupid and elegant at the same time so try not to be that enthusiastic :)

@MostafaWageh-Miro
Copy link

Thanks alot for your answer

@DoiCoDoc
Copy link

Might I join test or support some thing? project is very interesting, i'm new BIM trainning develop.

@ian-quinn
Copy link
Owner Author

@DoiCoDoc That would be great!🥳Let's talk about this on whatsapp +43 677 61396995. However, I may not have that much of time till the end of this year...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants