topologicpy 0.7.6__py3-none-any.whl → 0.7.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
topologicpy/Grid.py CHANGED
@@ -215,7 +215,13 @@ class Grid():
215
215
 
216
216
 
217
217
  @staticmethod
218
- def VerticesByDistances(face=None, origin=None, uRange=[-0.5,-0.25,0, 0.25,0.5], vRange=[-0.5,-0.25,0,0.25,0.5], clip=False, tolerance=0.0001):
218
+ def VerticesByDistances(face=None,
219
+ origin=None,
220
+ uRange: list = [-0.5,-0.25,0, 0.25,0.5],
221
+ vRange: list = [-0.5,-0.25,0,0.25,0.5],
222
+ clip: bool = False,
223
+ mantissa: int = 6,
224
+ tolerance: float = 0.0001):
219
225
  """
220
226
  Creates a grid (cluster of vertices).
221
227
 
@@ -231,6 +237,8 @@ class Grid():
231
237
  A list of distances for the *v* grid lines from the vOrigin. The default is [-0.5,-0.25,0, 0.25,0.5].
232
238
  clip : bool , optional
233
239
  If True the grid will be clipped by the shape of the input face. The default is False.
240
+ mantissa : int , optional
241
+ The desired length of the mantissa. The default is 6.
234
242
  tolerance : float , optional
235
243
  The desired tolerance. The default is 0.0001.
236
244
 
@@ -247,6 +255,7 @@ class Grid():
247
255
  from topologicpy.Topology import Topology
248
256
  from topologicpy.Dictionary import Dictionary
249
257
  from topologicpy.Vector import Vector
258
+
250
259
  if len(uRange) < 1 or len(vRange) < 1:
251
260
  return None
252
261
  if not origin:
@@ -266,8 +275,8 @@ class Grid():
266
275
  v3 = Vertex.ByCoordinates(0, 0, 0)
267
276
  v4 = Vertex.ByCoordinates(0,max(vRange),0)
268
277
 
269
- uVector = [v2.X()-v1.X(), v2.Y()-v1.Y(),v2.Z()-v1.Z()]
270
- vVector = [v4.X()-v3.X(), v4.Y()-v3.Y(),v4.Z()-v3.Z()]
278
+ uVector = [Vertex.X(v2, mantissa=mantissa)-Vertex.X(v1, mantissa=mantissa), Vertex.Y(v2, mantissa=mantissa)-Vertex.Y(v1, mantissa=mantissa),Vertex.Z(v2, mantissa=mantissa)-Vertex.Z(v1, mantissa=mantissa)]
279
+ vVector = [Vertex.X(v4, mantissa=mantissa)-Vertex.X(v3, mantissa=mantissa), Vertex.Y(v4, mantissa=mantissa)-Vertex.Y(v3, mantissa=mantissa),Vertex.Z(v4, mantissa=mantissa)-Vertex.Z(v3, mantissa=mantissa)]
271
280
  gridVertices = []
272
281
  if len(uRange) > 0:
273
282
  uRange.sort()
@@ -277,7 +286,7 @@ class Grid():
277
286
  for v in vRange:
278
287
  uTempVec = Vector.Multiply(uuVector, u, tolerance)
279
288
  vTempVec = Vector.Multiply(uvVector, v, tolerance)
280
- gridVertex = Vertex.ByCoordinates(origin.X()+uTempVec[0], origin.Y()+vTempVec[1], origin.Z()+uTempVec[2])
289
+ gridVertex = Vertex.ByCoordinates(Vertex.X(origin, mantissa=mantissa)+uTempVec[0], Vertex.Y(origin, mantissa=mantissa)+vTempVec[1], Vertex.Z(origin, mantissa=mantissa)+uTempVec[2])
281
290
  if clip and Topology.IsInstance(face, "Face"):
282
291
  gridVertex = gridVertex.Intersect(face, False)
283
292
  if Topology.IsInstance(gridVertex, "Vertex"):
topologicpy/Topology.py CHANGED
@@ -6718,7 +6718,7 @@ class Topology():
6718
6718
  tolerance : float , optional
6719
6719
  The desired tolerance. The default is 0.0001.
6720
6720
  numWorkers : int, optional
6721
- Number of workers run in parallel to process.
6721
+ Number of workers run in parallel to process. The default is None which sets the number to twice the number of CPU cores.
6722
6722
 
6723
6723
  Returns
6724
6724
  -------
topologicpy/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = '0.7.6'
1
+ __version__ = '0.7.9'
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Wassim Jabi
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,112 @@
1
+ Metadata-Version: 2.1
2
+ Name: topologicpy
3
+ Version: 0.7.9
4
+ Summary: An Advanced Spatial Modelling and Analysis Software Library for Architecture, Engineering, and Construction.
5
+ Author-email: Wassim Jabi <wassim.jabi@gmail.com>
6
+ License: MIT License
7
+
8
+ Copyright (c) 2024 Wassim Jabi
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ Project-URL: Homepage, https://github.com/wassimj/TopologicPy
29
+ Project-URL: Bug Tracker, https://github.com/wassimj/TopologicPy/issues
30
+ Project-URL: Documentation, https://topologic.app/topologicpy_doc/
31
+ Classifier: Programming Language :: Python :: 3
32
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
33
+ Classifier: Operating System :: OS Independent
34
+ Requires-Python: <3.14,>=3.8
35
+ Description-Content-Type: text/markdown
36
+ License-File: LICENSE
37
+ Requires-Dist: numpy >=1.18.0
38
+ Requires-Dist: scipy >=1.4.1
39
+ Requires-Dist: pandas
40
+ Requires-Dist: tqdm
41
+ Requires-Dist: plotly
42
+ Requires-Dist: lark
43
+ Requires-Dist: topologic-core >=7.0.1
44
+ Provides-Extra: test
45
+ Requires-Dist: pytest-xdist >=2.4.0 ; extra == 'test'
46
+
47
+ # topologicpy
48
+
49
+ <img src="https://topologic.app/wp-content/uploads/2023/02/topologicpy-logo-no-loop.gif" alt="topologicpy logo" width="250" loop="1">
50
+
51
+ # An Advanced Spatial Modelling and Analysis Software Library for Architecture, Engineering, and Construction
52
+
53
+ ## Introduction
54
+ Welcome to topologicpy (rhymes with apple pie). topologicpy is an open-source python 3 implementation of [Topologic](https://topologic.app) which is a powerful spatial modelling and analysis software library that revolutionizes the way you design architectural spaces, buildings, and artefacts. Topologic's advanced features enable you to create hierarchical and topological information-rich 3D representations that offer unprecedented flexibility and control in your design process. With the integration of geometry, topology, information, and artificial intelligence, Topologic enriches Building Information Models with Building *Intelligence* Models.
55
+
56
+ Two of Topologic's main strengths are its support for *defeaturing* and *encoded meshing*. By simplifying the geometry of a model and removing small or unnecessary details not needed for analysis, defeaturing allows for faster and more accurate analysis while maintaining topological consistency. This feature enables you to transform low-quality, heavy BIM models into high-quality, lightweight representations ready for rigorous analysis effortlessly. Encoded meshing allows you to use the same base elements available in your commercial BIM platform to cleanly build 3D information-encoded models that match your exacting specifications.
57
+
58
+ Topologic's versatility extends to entities with mixed dimensionalities, enabling structural models, for example, to be represented coherently. Lines can represent columns and beams, surfaces can represent walls and slabs, and volumes can represent solids. Even non-building entities like structural loads can be efficiently attached to the structure. This approach creates mixed-dimensional models that are highly compatible with structural analysis simulation software.
59
+
60
+ Topologic's graph-based representation makes it a natural fit for integrating with Graph Machine Learning (GML), an exciting new branch of artificial intelligence. With GML, you can process vast amounts of connected data and extract valuable insights quickly and accurately. Topologic's intelligent algorithms for graph and node classification take GML to the next level by using the extracted data to classify building typologies, predict associations, and complete missing information in building information models. This integration empowers you to leverage the historical knowledge embedded in your databases and make informed decisions about your current design projects. With Topologic and GML, you can streamline your workflow, enhance your productivity, and achieve your project goals with greater efficiency and precision.
61
+
62
+ Experience Topologic's comprehensive and well-documented Application Protocol Interface (API) and enjoy the freedom and flexibility that Topologic offers in your architectural design process. Topologic uses cutting-edge C++-based non-manifold topology (NMT) core technology ([Open CASCADE](https://www.opencascade.com/)), and python bindings. Interacting with Topologic is easily accomplished through a command-Line interface and scripts, visual data flow programming (VDFP) plugins for popular BIM software, and cloud-based interfaces through [Streamlit](https://streamlit.io/). You can easily interact with Topologic in various ways to perform design and analysis tasks or even seamlessly customize and embed it in your own in-house software and workflows. Plus, Topologic includes several industry-standard methods for data transport including IFC, OBJ, BREP, HBJSON, CSV, as well serializing through cloud-based services such as [Speckle](https://speckle.systems/).
63
+
64
+ Topologic’s open-source philosophy and licensing ([AGPLv3](https://www.gnu.org/licenses/agpl-3.0.en.html)) enables you to achieve your design vision with minimal incremental costs, ensuring a high return on investment. You control and own your information outright, and nothing is ever trapped in an expensive subscription model. Topologic empowers you to build and share data apps with ease, giving you the flexibility to choose between local or cloud-based options and the peace of mind to focus on what matters most.
65
+
66
+ Join the revolution in architectural design with Topologic. Try it today and see the difference for yourself.
67
+
68
+ ## Installation
69
+ topologicpy can be installed using the **pip** command as such:
70
+
71
+ `pip install topologicpy --upgrade`
72
+
73
+ ## Prerequisites
74
+
75
+ topologicpy depends on the following python libraries which will be installed automatically from pip:
76
+
77
+ <details>
78
+ <summary>
79
+ <b>Expand to view dependencies</b>
80
+ </summary>
81
+ * [numpy](http://numpy.org) >= 1.24.0
82
+ * [scipy](http://scipy.org) >= 1.10.0
83
+ * [plotly](http://plotly.com/) >= 5.11.0
84
+ * [ifcopenshell](http://ifcopenshell.org/) >=0.7.9
85
+ * [ipfshttpclient](https://pypi.org/project/ipfshttpclient/) >= 0.7.0
86
+ * [web3](https://web3py.readthedocs.io/en/stable/) >=5.30.0
87
+ * [openstudio](https://openstudio.net/) >= 3.4.0
88
+ * [topologic_core](https://pypi.org/project/topologic_core/) >= 6.0.6
89
+ * [lbt-ladybug](https://pypi.org/project/lbt-ladybug/) >= 0.25.161
90
+ * [lbt-honeybee](https://pypi.org/project/lbt-honeybee/) >= 0.6.12
91
+ * [honeybee-energy](https://pypi.org/project/honeybee-energy/) >= 1.91.49
92
+ * [json](https://docs.python.org/3/library/json.html) >= 2.0.9
93
+ * [py2neo](https://py2neo.org/) >= 2021.2.3
94
+ * [pyvisgraph](https://github.com/TaipanRex/pyvisgraph) >= 0.2.1
95
+ * [specklepy](https://github.com/specklesystems/specklepy) >= 2.7.6
96
+ * [pandas](https://pandas.pydata.org/) >= 1.4.2
97
+ * [scipy](https://scipy.org/) >= 1.8.1
98
+ * [dgl](https://github.com/dmlc/dgl) >= 0.8.2
99
+
100
+ </details>
101
+
102
+ ## How to start using Topologic
103
+ 1. Open your favourite python editor ([jupyter notebook](https://jupyter.org/) is highly recommended)
104
+ 1. Type 'import topologicpy'
105
+ 1. Start using the API
106
+
107
+ ## API Documentation
108
+ API documentation can be found at [https://topologic.app/topologicpy_doc/](https://topologic.app/topologicpy_doc/)
109
+
110
+ topologicpy: &copy; 2023 Wassim Jabi
111
+
112
+ Topologic: &copy; 2023 Cardiff University and UCL
@@ -9,8 +9,8 @@ topologicpy/Dictionary.py,sha256=pMbfE2RYGCNpVr2x58qiHRc-aBWnp1jLlyzwS9nz6-w,258
9
9
  topologicpy/Edge.py,sha256=KCQm9QfwjsYO4yKE4p4elpha9c4MY6EWAEaK_6mTAjo,52239
10
10
  topologicpy/EnergyModel.py,sha256=ni0H1JgvLl1-q90yK9Sm1qj5P1fTuidlimEIcwuj6qE,53287
11
11
  topologicpy/Face.py,sha256=uPVVFF6CLzEW2JaTllQJp7nBsS2w3wAz7qwfujWTQAk,97474
12
- topologicpy/Graph.py,sha256=pw1nG4z1CZJshA7dACPRUHvOkAyQ6pV1U758MU0Z9xM,369948
13
- topologicpy/Grid.py,sha256=9izbPCocfS0SoI31_D5lUFlzTYwFPHJAfBhYQ1CyPqE,17770
12
+ topologicpy/Graph.py,sha256=IFEGU0MCE4_fPe2j8sx1vuXPKMjGaov5wTlgRAwB7ns,384631
13
+ topologicpy/Grid.py,sha256=2uDFDxg4NqROC-7bNi1BjK5Uz__BPH13afJ-VDBRW0M,18466
14
14
  topologicpy/Helper.py,sha256=07V9IFu5ilMpvAdZVhIbdBOjBJSRTtJ0BfR1IoRaRXU,17743
15
15
  topologicpy/Honeybee.py,sha256=dlr5OEH93q51ZmEgvi8PXGfCHBDAjIZ1cm38Rft1Bz4,20235
16
16
  topologicpy/Matrix.py,sha256=VV-kbT0Qt5QO38HRFJmD4IMnQUzYbLjBF4xaFAqLh3Q,8352
@@ -20,14 +20,14 @@ topologicpy/Polyskel.py,sha256=MYHKFOQBlUNqoUhAdOcKRIHpSk0dWWVrZgXK34NkvFM,15936
20
20
  topologicpy/Shell.py,sha256=uPf5Ch8wQ-pbKvXMY_DV9tPXyz4BPmofFVYdIzbWFh4,76960
21
21
  topologicpy/Speckle.py,sha256=rUS6PCaxIjEF5_fUruxvMH47FMKg-ohcoU0qAUb-yNM,14267
22
22
  topologicpy/Sun.py,sha256=3tYb8kssU882lE1gEWg2mxDvCCY_LAVElkyUT6wa-ZU,36935
23
- topologicpy/Topology.py,sha256=SymcisEpNIuqpKiBoz7zJrLtS_28R5GDbG-SiwJOirY,308743
23
+ topologicpy/Topology.py,sha256=sXvhiMShOjOp0aILjEU6uNDqKm3zEAEdrN_IJgDK47c,308819
24
24
  topologicpy/Vector.py,sha256=2OXmty9CKZZzfsg5T4ckml-lPUUvgDvqokcKDsZVN9Y,29806
25
25
  topologicpy/Vertex.py,sha256=WjQZf-r8h_Cjwkt_qNN483FCUql20fbv72Ymiq7ZYtw,67462
26
26
  topologicpy/Wire.py,sha256=efqePp91BvAdj4JitSW_f-xeGoTFg_AxP5g5pmbBVFw,139047
27
27
  topologicpy/__init__.py,sha256=D7ky87CAQMiS2KE6YLvcTLkTgA2PY7rASe6Z23pjp9k,872
28
- topologicpy/version.py,sha256=d_J-fGYyd_4FzGfbl6boN5XBrvTLiweHV0VC0aFvYVY,22
29
- topologicpy-0.7.6.dist-info/LICENSE,sha256=TfPDBt3ar0uv_f9cqCDMZ5rIzW3CY8anRRd4PkL6ejs,34522
30
- topologicpy-0.7.6.dist-info/METADATA,sha256=rZXhsrENM1-_IUT73GdvtHvZc99fdVrTw-F0eNy6TJE,46950
31
- topologicpy-0.7.6.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
32
- topologicpy-0.7.6.dist-info/top_level.txt,sha256=J30bDzW92Ob7hw3zA8V34Jlp-vvsfIkGzkr8sqvb4Uw,12
33
- topologicpy-0.7.6.dist-info/RECORD,,
28
+ topologicpy/version.py,sha256=zKmTTl0oKv8UEnjDkiAKOUL5t2pURpcJX_sqiJZHBIc,22
29
+ topologicpy-0.7.9.dist-info/LICENSE,sha256=BRNw73R2WdDBICtwhI3wm3cxsaVqLTAGuRwrTltcfxs,1068
30
+ topologicpy-0.7.9.dist-info/METADATA,sha256=tHxNNM7xU92yefkBRv_hIHib5vZyWKzyazZCTIJeE0s,8404
31
+ topologicpy-0.7.9.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
32
+ topologicpy-0.7.9.dist-info/top_level.txt,sha256=J30bDzW92Ob7hw3zA8V34Jlp-vvsfIkGzkr8sqvb4Uw,12
33
+ topologicpy-0.7.9.dist-info/RECORD,,