Skip to content

Commit c1b1474

Browse files
committed
Some MD fixes to fit on a 80 characters window + some fixes.
1 parent b467648 commit c1b1474

File tree

4 files changed

+146
-65
lines changed

4 files changed

+146
-65
lines changed

BUILDSOURCE.md

+33-14
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,43 @@
11
# Build Rhino.Inside Revit from source
2-
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
32

4-
### Prerequisites
5-
* Git ([download](https://git-scm.com/downloads))
6-
* Visual Studio 2019 (16.0 or above) ([download](https://visualstudio.microsoft.com/downloads/))
7-
* .NET Framework Developer Pack (4.6.1, 4.6.2, 4.7, 4.8) ([download](https://www.microsoft.com/net/download/visual-studio-sdks))
8-
* Rhino WIP ([download](https://www.rhino3d.com/download/rhino/wip))
9-
* Autodesk Revit 2018-2021 ([download](https://www.autodesk.com/products/revit/free-trial))
10-
* Add this link to your bookmarks 😉 ([API docs](https://www.apidocs.co/apps/))
3+
These instructions will get you a copy of the project up and running on your
4+
local machine for development and testing purposes.
5+
6+
## Prerequisites
7+
8+
* Git
9+
([download](https://git-scm.com/downloads))
10+
* Visual Studio 2019 (16.0 or above)
11+
([download](https://visualstudio.microsoft.com/downloads/))
12+
* .NET Framework Developer Pack (4.6.1, 4.6.2, 4.7, 4.8)
13+
([download](https://www.microsoft.com/net/download/visual-studio-sdks))
14+
* Rhino 7
15+
([download](https://www.rhino3d.com/download/rhino/7.0))
16+
* Autodesk Revit 2018-2022
17+
([download](https://www.autodesk.com/products/revit/free-trial))
18+
* Add this link to your bookmarks 😉
19+
([API docs](https://www.apidocs.co/apps/))
1120

1221
## Getting Source & Build
22+
1323
1. Clone the repository. At the command prompt, enter the following command:
14-
```
15-
git clone --recursive https://github.com/mcneel/rhino.inside-revit.git
16-
```
24+
25+
```console
26+
git clone --recursive https://github.com/mcneel/rhino.inside-revit.git
27+
```
28+
1729
2. In Visual Studio, open `rhino.inside-revit\src\RhinoInside.Revit.sln`.
18-
3. Set the Solution Configuration drop-down to the **Debug <revit_version>**, with Revit version you have installed or want to test. This will properly link the correct Revit API libraries to the project.
30+
3. Set the Solution Configuration drop-down to the **Debug <revit_version>**,
31+
with Revit version you have installed or want to test. This will properly link
32+
the correct Revit API libraries to the project.
1933
4. Navigate to _Build_ > _Build Solution_ to begin your build.
2034

2135
## Installing & Uninstalling
22-
The project is configured to copy .addin file as well as output files to the folder `%APPDATA%\Autodesk\Revit\Addins\<revit_version>\RhinoInside.Revit\` folder in order to make Revit load this add-on next time it runs.
2336

24-
In order to uninstall it you can use Visual Studio _Build_ > _Clean Solution_ command or just navigate to the folder `%APPDATA%\Autodesk\Revit\Addins\<revit_version>` and remove the file `RhinoInside.Revit.addin` and the folder `RhinoInside.Revit/`
37+
The project is configured to copy .addin file as well as output files to the folder
38+
`%APPDATA%\Autodesk\Revit\Addins\<revit_version>\RhinoInside.Revit\`
39+
folder in order to make Revit load this add-in next time it runs.
40+
41+
In order to uninstall it you can use Visual Studio _Build_ > _Clean Solution_ command
42+
or just navigate to the folder `%APPDATA%\Autodesk\Revit\Addins\<revit_version>`
43+
and remove the file `RhinoInside.Revit.addin` and the folder `RhinoInside.Revit`.

CONVENTIONS.md

+69-25
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,81 @@
11
# Development Conventions
22

3-
- Use [Microsoft C# Coding Convention](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions).
3+
Use [Microsoft C# Coding Convention](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions).
44

55
## User Interface
6-
It's a goal to achieve a one to one correspondance betwen what the user can read in Revit UI and in Rhino.Inside Revit UI.
6+
7+
It's a goal to achieve a one to one correspondance betwen what the user can
8+
read Revit UI and in Rhino.Inside Revit UI.
79

810
- **Try to adhere as close as possible to Revit terminology.**
9-
- Try to classify information using same grouping strategies Revit user is already familiar. *For Example use Disciplines, Categories, Families, etc…*
11+
- Try to classify information using same grouping strategies Revit user is
12+
already familiar.
13+
*For Example use Disciplines, Categories, Families, etc…*
14+
15+
## Grasshopper
16+
17+
**Grasshopper operates in Rhino model units**.
18+
No unit conversion should be necessary on Grasshopper definition by the user,
19+
so all necesary conversions should be done in the component.
20+
This means all components should always output values, like length or geometry
21+
values, in Rhino model units. This way all components can expect Rhino model
22+
units as input. This includes radians for angles.
23+
24+
Do not create CRUD components for data types that are already handled by
25+
Rhino and Grasshopper ecosystem.
26+
*e.g. Do not create a component that extracts wall endpoints.
27+
Extract the base curve of the wall as a Rhino curve, and then use existing
28+
Grasshopper components to grab the curve end points*.
29+
30+
Implement type conversions when the conversion is not ambiguous.
31+
*e.g. 'Wall' to 'Curve', 'Level' to 'Plane', 'Grid' to 'Curve'.*
1032

11-
### Grasshopper:
33+
### Versioning
1234

13-
- Do not create CRUD components for data types that are already handled by Rhino and Grasshopper ecosystem e.g. Do not create a component that extracts wall endpoints. Extract the base curve of the wall as a Rhino curve, and then use existing Grasshopper components to grab the curve end points.
14-
- Implement type conversions when the conversion is not ambiguous. *For Example 'Wall' to 'Curve', 'Level' to 'Plane', 'Grid' to 'Curve'.*
15-
- **Grasshopper operates in Rhino model units**. No unit conversion should be necessary on Grasshopper definition by the user, so all necesary conversions should be done in the component. This means all components should always output values, like length or geometry values, in Rhino model units. This way all components can expect Rhino model units as input. This includes radians for angles.
16-
- **Components should have same set of parameters in all Revit versions**, emulating a default behaviour when the feature is not available on a specific version. *For Example slanted angle on a wall in versions prior to 2021 should return 0° instead of Null*.
17-
- Components that are wrapping features completly missing on a specific Revit version should not be available at all unless correct handling is implemented. *For Example 'Add Topography (Mesh)' component is unavailable before Revit 2020*.
18-
- Component Exposure should be 'Hidden'.
19-
- The component shoud behave as if it was 'Disabled' but showing an error message like *'This component needs Revit 2020 or newer to run'*.
35+
Components should have same set of parameters in all Revit versions,
36+
emulating a default behaviour when the feature is not available on a specific
37+
version.
38+
*e.g. Slanted angle on a wall in versions prior to 2021 should return
39+
0° instead of Null*.
2040

21-
#### Parameters naming:
22-
- **Use singular form for nouns**. *For Example 'Wall' instead of 'Walls'.*
23-
- Use `Type Name` for floating parameters. *For example 'Wall', 'Level', 'Element Type'.*
41+
Components that are wrapping features completly missing on a specific Revit
42+
version should not be available at all unless correct handling is implemented.
43+
For Example 'Add Topography (Mesh)' component is unavailable before Revit 2020.
44+
45+
- Component `Exposure` should be `Hidden`.
46+
- The component shoud behave as if it was 'Disabled' but showing an error
47+
message like: *“This component needs Revit 2020 or newer to run”*.
48+
49+
### Parameters naming
50+
51+
- **Use singular form for nouns**.
52+
*e.g. 'Wall' instead of 'Walls'*.
53+
- Use `Type Name` for floating parameters.
54+
*e.g. 'Wall', 'Level', 'Element Type'*.
2455

25-
#### Components naming:
26-
- **Use singular form for nouns** instead of plural form as your first choice. For example 'Deconstruct Brep' instead of 'Deconstruct Breps'.
27-
- Use `{Action} {Noun}` as the prefered form. *For example 'Divide Curve' instead of 'Curve Divide'.*
56+
### Components naming
57+
58+
- **Use singular form for nouns** instead of plural form as your first
59+
choice.
60+
*For example 'Deconstruct Brep' instead of 'Deconstruct Breps'*.
61+
- Use `{Action} {Noun}` as the prefered form.
62+
*e.g. 'Divide Curve' instead of 'Curve Divide'*.
2863
- Use Type Name as Noun when there is a clear primary one.
29-
- Use `Construct {Type Name}` to components that construct an object from its constituen parts.
30-
- Use `Deconstruct {Type Name}` to components that deconstruct an object into its constituen parts.
31-
- Use `{Type Name} {Property Name}` when the component partially deconstruct an object like a property accessor. *For example 'Curve Domain' or 'Element Geometry'.*
32-
- Use `Add {Type Name}` for components that add a new Element to a Revit model. For example 'Add Level'.
64+
- Use `Construct {Type Name}` to components that construct an object from its
65+
constituen parts.
66+
- Use `Deconstruct {Type Name}` to components that deconstruct an object into
67+
its constituen parts.
68+
- Use `{Type Name} {Property Name}` when the component partially deconstruct an
69+
object like a property accessor.
70+
*e.g. 'Curve Domain' or 'Element Geometry'*.
71+
- Use `Add {Type Name}` for components that add a new Element to a Revit model.
72+
*For example 'Add Level'*.
3373
- Component Parameters
34-
- Use only alphanumeric characters and avoid characters like question or exclamation marks.
35-
- Use singular when the parameter access is `item`, plural when is `list` or `tree`.
36-
- Use the type name as the first choice, *For example 'Color' in 'Add Material'.*
37-
- **If it is reflecting a Revit element parameter use the exact same name Revit uses in English.**
74+
- Use only alphanumeric characters and avoid characters like question or
75+
exclamation marks.
76+
- Use singular when the parameter access is `item`, plural when is `list` or
77+
`tree`.
78+
- Use the type name as the first choice.
79+
*For example 'Color' in 'Add Material'*.
80+
- **If it is reflecting a Revit element parameter use the exact same name
81+
Revit uses in English.**

README.md

+35-15
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,49 @@
11
<img src="docs/assets/img/logo.svg" width="128px"/>
2-
<h1>Rhino.Inside®.Revit</h1>
3-
<p>
4-
<a href="https://ci.appveyor.com/project/mcneel/rhino-inside-revit/branch/master"><img src="https://ci.appveyor.com/api/projects/status/9ot0iyjqwb1jdn6m/branch/master?svg=true"></a>
5-
</p>
6-
<p>Please see the <a href="https://www.rhino3d.com/inside/revit/">Rhino.Inside.Revit Wiki</a> for more information on how to use the project. Sections listed below provide more information about the codebase for the developers who want to contribute to this project or the Wiki.
7-
</p>
2+
3+
# Rhino.Inside® Revit
4+
5+
[![Build status](https://ci.appveyor.com/api/projects/status/9ot0iyjqwb1jdn6m/branch/master?svg=true)](https://ci.appveyor.com/project/mcneel/rhino-inside-revit/branch/master)
6+
7+
Please see the [Rhino.Inside.Revit Wiki](https://www.rhino3d.com/inside/revit/)
8+
for more information on how to use the project. Sections listed below provide
9+
more information about the codebase for the developers who want to contribute to
10+
this project or the Wiki.
811

912
## Overview
1013

11-
The Rhino.Inside® Technology allows Rhino, Grasshopper, and their add-ons to be embedded within other products. This repository is the Rhino.Inside® for Autodesk Revit®, named Rhino.Inside.Revit
14+
The Rhino.Inside® Technology allows Rhino, Grasshopper, and their add-ons to be
15+
embedded within other products.
16+
This repository is the Rhino.Inside® for Autodesk Revit®, named Rhino.Inside.Revit.
1217

1318
## Architecture
1419

1520
See Wiki pages below for more information about the architecture of this project.
1621

17-
- [Architecture](https://www.rhino3d.com/inside/revit/beta/reference/rir-arch) for more information
22+
- [Architecture](https://www.rhino3d.com/inside/revit/beta/reference/rir-arch)
1823

1924
## Build Process
2025

21-
McNeel team is using internal [AppVeyor-based](https://www.appveyor.com/docs/) build systems to build this project branches. If you need custom builds, you are encouraged to fork the project and adapt to your own CI/CD system.
26+
McNeel team is using internal [AppVeyor-based](https://www.appveyor.com/docs/)
27+
build systems to build this project branches. If you need custom builds, you
28+
are encouraged to fork the project and adapt to your own CI/CD system.
2229

2330
### Building from Source
2431

25-
See [Building from Source](BUILDSOURCE.md) page for instructions on how to build the project from source.
32+
See [Building from Source](BUILDSOURCE.md) page for instructions on how to
33+
build the project from source.
2634

2735
## Installer
2836

29-
The installer is generated using [WiX toolset](https://wixtoolset.org/) (see `src/RhinoInside.Revit.Setup.sln`) and is updated automatically on every new build. See the [Rhino.Inside.Revit Wiki](https://www.rhino3d.com/inside/revit/) homepage to download them most recent installers.
37+
The installer is generated using [WiX toolset](https://wixtoolset.org/)
38+
(see `src/RhinoInside.Revit.Setup.sln`) and is updated automatically on
39+
every new build.
40+
See the [Rhino.Inside.Revit Wiki](https://www.rhino3d.com/inside/revit/)
41+
homepage to download them most recent installers.
3042

3143
## Wiki
3244

33-
The `docs/` directory in this repo contains the contents of [Rhino.Inside.Revit Wiki](https://www.rhino3d.com/inside/revit/).
45+
The `docs/` directory in this repo contains the contents of
46+
[Rhino.Inside.Revit Wiki](https://www.rhino3d.com/inside/revit/).
3447

3548
See [Wiki Readme](docs/readme.md) for more information.
3649

@@ -42,12 +55,19 @@ See [Artwork Readme](art/README.md) for more information.
4255

4356
## Development Conventions
4457

45-
See [Development Conventions](CONVENTIONS.md) page for conventions and guidelines in contributing to the codebase.
58+
See [Development Conventions](CONVENTIONS.md) page for conventions and
59+
guidelines in contributing to the codebase.
4660

4761
## API Docs
4862

49-
Currently the project does not have any documentation for the API. This is an area that needs improvement. [The Wiki has a reference page for the API](https://www.rhino3d.com/inside/revit/beta/reference/rir-api).
63+
Currently the project does not have any documentation for the API.
64+
This is an area that needs improvement.
65+
The Wiki has a [reference page](https://www.rhino3d.com/inside/revit/beta/reference/rir-api)
66+
for the API.
5067

5168
## Known Issues
5269

53-
Known issues with the product are listed at [References > Known Issues](https://www.rhino3d.com/inside/revit/beta/reference/known-issues) on the Wiki. Please keep this page updated when new and persistent issues are identified.
70+
Known issues with the product are listed at
71+
[References > Known Issues](https://www.rhino3d.com/inside/revit/beta/reference/known-issues)
72+
on the Wiki.
73+
Please keep this page updated when new and persistent issues are identified.
+9-11
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
11
# Extensions
22

3-
This folder contains extension methods for classes not defined in this
4-
assembly and classes that from a logical point of view belong to an
5-
external namespace.
3+
This folder contains extension methods for classes not defined in this assembly
4+
and classes that from a logical point of view belong to an external namespace.
65

7-
This code is for **internal** use only, if you are considering to expose
8-
any class here DO move this class to a namespace under your control.
6+
This code is for **internal** use only, if you are considering to expose any
7+
class here DO move this class to a namespace under your control.
98

109
✔️ DO put extension methods in the same namespace as the extended type and
11-
declare all _sponsor_ classes as `internal` in order to prevent conflicts
12-
in case this assembly is referenced from another one.
13-
14-
❌ DO NOT mix types from this assembly in the extension methods declared
15-
here. This folder is for adding functionality that the external assembly might
16-
have but does not have.
10+
declare all *sponsor* classes as `internal` in order to prevent conflicts in
11+
case this assembly is referenced from another one.
1712

13+
❌ DO NOT mix types from this assembly in the extension methods declared here.
14+
This folder is for adding functionality that the external assembly might have
15+
but does not have.
1816

1917
#### See also
2018
[Microsoft Extension Methods Design Gidelines](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/extension-methods)

0 commit comments

Comments
 (0)